以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 信号闪烁 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=168952) |
-- 作者:jzt666 -- 发布时间:2019/3/25 10:32:16 -- 信号闪烁 SS:=1; ////////////////////////////////////// M1:=STKINDI(\'\',\'MAZDY.M1\',0,4,0); M2:=STKINDI(\'\',\'MAZDY.M2\',0,4,0); M3:=STKINDI(\'\',\'MAZDY.M3\',0,4,0); ////////////////////////////////////// DTPL:=M1>M2 AND M2>M3; KTPL:=M1<M2 AND M2<M3; MA5:=EMA(CLOSE,5); MA10:=EMA(CLOSE,15); JC:=CROSS(MA5,MA10); SC:=CROSS(MA10,MA5); BUYCOND1:=DTPL AND JC; BUYSHORTCOND1:=KTPL AND SC; SELLCOND1:=CROSS(M2,M1); SELLSHORTCOND1:=CROSS(M1,M2); TT1:=TIME>0600 AND TIME<2359 OR TIME<0000 AND TIME<0330; IF TIME>=042000 AND TIME<=042500 THEN BEGIN SELL(1 AND HOLDING>0,SS,MARKET); SELLSHORT(1 AND HOLDING<0,SS,MARKET); END SELL(SELLCOND1 AND HOLDING>0,SS,MARKET); SELLSHORT(SELLSHORTCOND1 AND HOLDING<0,SS,MARKET); IF TT1 THEN BEGIN BUY(BUYCOND1 AND HOLDING=0,SS,MARKET); BUYSHORT(BUYSHORTCOND1 AND HOLDING=0,SS,MARKET); END T:TIME,LINETHICK0; 日期:DATE,LINETHICK0; //M1:=STKINDI(\'\',\'MAZDY.M1\',0,4,0); //M2:=STKINDI(\'\',\'MAZDY.M2\',0,4,0); //M3:=STKINDI(\'\',\'MAZDY.M3\',0,4,0); //MAZDY //M1:EMA(CLOSE,5); //M2:EMA(CLOSE,15); //M3:EMA(CLOSE,30); //M4:=EMA(CLOSE,60); //M5:=EMA(CLOSE,90); 老师你好,模型信号闪烁,请检查一下,道指一分钟 在模拟交易时出现信号开仓了,也看到模拟账户有单子 可是一会又消失了,账户上单子也没了,反复出现几次, 平仓也是同样问题,什么原因,能解决吗?
|
-- 作者:FireScript -- 发布时间:2019/3/25 10:55:54 -- 你当前周期是什么周期呢?你代码中可能造成闪烁的主要是 M1:=STKINDI(\'\',\'MAZDY.M1\',0,4,0); M2:=STKINDI(\'\',\'MAZDY.M2\',0,4,0); M3:=STKINDI(\'\',\'MAZDY.M3\',0,4,0); 这三个引用的地方。 具体得话取决于你的交易周期以及上面这个mazay里面的代码。另外就是固定轮询模式下上面代码最容易闪烁。 建议从被引用的指标里面查找问题。 综上需要你提供: 1.被引用指标的代码 2.当前交易周期 3.交易模式是固定轮询还是走完K线。 另外我想问下你说的账号上有单子是指图表上出现了信号还是说就是实际下单到模拟账号的?因为如果真实下单到模拟账号了,是不可能又消失得,下过了就是下过了。 |
-- 作者:jzt666 -- 发布时间:2019/3/25 11:02:12 -- 当前是一分钟(在道指一分钟K线上交易) 引用的三条均线
M1:EMA(CLOSE,5); M2:EMA(CLOSE,15); M3:EMA(CLOSE,30); |
-- 作者:jzt666 -- 发布时间:2019/3/25 11:07:44 -- 是k线走完,老师你模拟交易看看就能发现问题 |
-- 作者:FireScript -- 发布时间:2019/3/25 11:30:11 -- 是否有交易日志呢?提供下这段的交易日志吧。 另外图表记录这里是否有记录呢: 2楼这里我想确认下: “另外我想问下你说的账号上有单子是指图表上出现了信号还是说就是实际下单到模拟账号的?因为如果真实下单到模拟账号了,是不可能又消失得,下过了就是下过了”
|
-- 作者:jzt666 -- 发布时间:2019/3/25 13:15:39 -- 信号闪烁回复 2019-03-22 13:08:18.262 【图表】YM06 运行完毕 2019-03-22 13:08:18.263 【图表】框架:YM06 触发下单 BUY 品种 YM06 下单K线 2019.03.22 13:09:00 公式:金钱豹2019B一分钟 窗格ID:Window2 代码行:43 2019-03-22 13:08:18.264 【图表】模型下单 1 2019-03-22 13:08:18.266 【图表】下单系数调整后 手数:1 2019-03-22 13:08:18.267 【图表】直接下单 2019-03-22 13:08:18.270 【图表】YM06 运行完毕 2019-03-22 13:08:18.270 【下单】YM06 价0.000000 量1 买卖0 类型1 开平0 账户70006339 Formula 1 2019-03-22 13:08:18.271 【下单】已提交,订单ID :1 2019-03-22 13:08:18.296 【指令】收到回报指令 ID = 1 2019-03-22 13:08:18.328 【回报】70006339 : YM06 - 已报单 1 价格:0 开 买 2019-03-22 13:08:18.367 【指令】收到成交回报指令 ORDERID = 1 2019-03-22 13:08:18.368 【指令】平仓计量 EBuy:0 ESell:0 2019-03-22 13:08:18.374 【回报】70006339 : YM1906 - 已成交 1 价格:25985 开 买 2019-03-22 13:08:18.376 【回报】70006339 : YM1906 - 全部成交 1 2019-03-22 13:08:18.377 【指令】收到回报指令 ID = 1 2019-03-22 13:09:10.259 【图表】YM06 运行完毕
|
-- 作者:jzt666 -- 发布时间:2019/3/25 13:16:28 -- 2019-03-22 14:14:21.263 【图表】YM06 运行完毕 2019-03-22 14:15:19.315 【图表】框架:YM06 触发下单 BUYSHORT 品种 YM06 下单K线 2019.03.22 14:16:00 公式:金钱豹2019A一分钟 窗格ID:Window1 代码行:41 2019-03-22 14:15:19.317 【图表】模型下单 1 2019-03-22 14:15:19.318 【图表】下单系数调整后 手数:1 2019-03-22 14:15:19.319 【图表】直接下单 2019-03-22 14:15:19.323 【图表】YM06 运行完毕 2019-03-22 14:15:19.323 【图表】YM06 运行完毕 2019-03-22 14:15:19.324 【下单】YM06 价0.000000 量1 买卖1 类型1 开平0 账户70006339 Formula 1 2019-03-22 14:15:19.325 【下单】已提交,订单ID :2 2019-03-22 14:15:19.360 【指令】收到回报指令 ID = 2 2019-03-22 14:15:19.363 【回报】70006339 : YM06 - 已报单 1 价格:0 开 卖 2019-03-22 14:15:19.433 【指令】收到成交回报指令 ORDERID = 2 2019-03-22 14:15:19.434 【指令】平仓计量 EBuy:0 ESell:0 2019-03-22 14:15:19.437 【回报】70006339 : YM1906 - 已成交 1 价格:25963 开 卖 2019-03-22 14:15:19.439 【回报】70006339 : YM1906 - 全部成交 1 2019-03-22 14:15:19.440 【指令】收到回报指令 ID = 2
|
-- 作者:jzt666 -- 发布时间:2019/3/25 13:17:14 -- 2019-03-22 15:30:11.258 【图表】框架:YM06 触发下单 SELLSHORT 品种 YM06 下单K线 2019.03.22 15:31:00 公式:金钱豹2019A一分钟 窗格ID:Window1 代码行:37 2019-03-22 15:30:11.260 【图表】模型下单 1 2019-03-22 15:30:11.262 【图表】下单系数调整后 手数:1 2019-03-22 15:30:11.264 【图表】实际持仓 0 2019-03-22 15:30:11.265 【图表】YM06 运行完毕 2019-03-22 15:38:12.261 【图表】框架:YM06 触发下单 BUY 品种 YM06 下单K线 2019.03.22 15:39:00 公式:金钱豹2019B一分钟 窗格ID:Window2 代码行:43 2019-03-22 15:38:12.262 【图表】模型下单 1 2019-03-22 15:38:12.264 【图表】下单系数调整后 手数:1 2019-03-22 15:38:12.265 【图表】直接下单 2019-03-22 15:38:12.268 【图表】YM06 运行完毕 2019-03-22 15:38:12.268 【下单】YM06 价0.000000 量1 买卖0 类型1 开平0 账户70006339 Formula 1 2019-03-22 15:38:12.270 【下单】已提交,订单ID :3 2019-03-22 15:38:12.293 【指令】收到回报指令 ID = 3 2019-03-22 15:38:12.298 【回报】70006339 : YM06 - 已报单 1 价格:0 开 买 2019-03-22 15:38:12.365 【指令】收到成交回报指令 ORDERID = 3 2019-03-22 15:38:12.367 【指令】平仓计量 EBuy:0 ESell:0 2019-03-22 15:38:12.374 【回报】70006339 : YM1906 - 已成交 1 价格:25984 开 买 2019-03-22 15:38:12.376 【回报】70006339 : YM1906 - 全部成交 1 2019-03-22 15:38:12.378 【指令】收到回报指令 ID = 3 |
-- 作者:FireScript -- 发布时间:2019/3/25 14:05:55 -- 看日志的话,单子是下单了(只是下单的代码行数和你提供的似乎对应不上,还有其他代码吗?)。 综上现在情况我的判断是这样的:实际下单当时是下单了。但是后续在图表上无法和图表信号对应是吧。 主要问题是在于stkind函数的小周期引用大周期造成的。小引大是很容易造成闪烁的情况的。比如30分钟周期的K上当前满足了条件,但是当前时间是这个30分钟K刚开始的时间点,比如9点30分的K,当前是9点01分,这时候满足条件了但是实际上真到了30分钟之后就不一定满足条件了。你小周期在引用的时候当时满足条件了,但是之后等30分钟走完了就不一定满足了。因此会造成历史信号发生变动。 这种比较好的方式是往历史K做一个偏移,比如: M1:=STKINDI(\'\',\'MAZDY.M1\',0,4,-1); 只是这种情况显然信号是有延后的。
|