以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=160165) |
-- 作者:a100016259 -- 发布时间:2017/12/5 16:31:02 -- [求助]为什么偶尔会有两次重复平仓 大家有碰到这种偶尔会两次平仓的不,确认只触发了一次开仓? 我是采用固定间隔时间刷新的方式 VARIABLE : buying := 0; ...... IF buying = 5 AND in_buying_kline=0 THEN BEGIN
LOSS := IFELSE((buy_price-HIGH)>max_loss,1,0);
IF LOSS=1 THEN
BEGIN
buying :=0;
SELL(1,1,MARKET);
DRAWTEXT(1,CLOSE,\'止损\'),colorred;
END; END; |
-- 作者:FireScript -- 发布时间:2017/12/5 16:36:20 -- 你帖下交易日志。日志里面会记录的很详细的。 |
-- 作者:a100016259 -- 发布时间:2017/12/5 16:42:08 -- 2017-12-05 13:00:10.640 2017.12.05 13:00:10【图表】框架:duo_ce_lue 触发下单 SELL 品种 GC02 下单K线 2017.12.05 06:03:00 公式:黄金.逐笔.分时线.刷多一.1116 窗格ID:Window9 代码行:297 2017-12-05 13:00:10.656 【图表】模型下单 1 2017-12-05 13:00:10.656 【图表】下单系数调整后 手数:1 2017-12-05 13:00:10.656 【图表】实际持仓 2 2017-12-05 13:00:10.656 【图表】直接下单 2017-12-05 13:00:10.656 【图表】GC02 运行完毕 2017-12-05 13:00:10.656 【下单】GC02 价0.000000 量1 买卖1 类型1 开平1 账户70004210 Formula 1 2017-12-05 13:00:10.656 【下单】已提交,订单ID :176 2017-12-05 13:00:10.687 【指令】收到回报指令 ID = 176 2017-12-05 13:00:10.687 【回报】70004210 : GC02 - 已报单 1 价格:0.0 平 卖 2017-12-05 13:00:10.875 【指令】收到成交回报指令 ORDERID = 176 2017-12-05 13:00:10.875 【指令】平仓计量 EBuy:0 ESell:0 2017-12-05 13:00:10.890 【回报】70004210 : GC1802 - 已成交 1 价格:1277.0 平 卖 2017-12-05 13:00:10.890 【回报】70004210 : GC1802 - 全部成交 1 2017-12-05 13:00:10.890 【指令】收到回报指令 ID = 176 ............................. 2017-12-05 13:09:07.640 2017.12.05 13:09:07【图表】框架:duo_ce_lue 触发下单 SELL 品种 GC02 下单K线 2017.12.05 06:12:00 公式:黄金.逐笔.分时线.刷多一.1116 窗格ID:Window9 代码行:297 2017-12-05 13:09:07.640 【图表】模型下单 1 2017-12-05 13:09:07.640 【图表】下单系数调整后 手数:1 2017-12-05 13:09:07.640 【图表】实际持仓 1 2017-12-05 13:09:07.640 【图表】直接下单 2017-12-05 13:09:07.640 【图表】GC02 运行完毕 2017-12-05 13:09:07.640 【下单】GC02 价0.000000 量1 买卖1 类型1 开平1 账户70004210 Formula 1 2017-12-05 13:09:07.640 【下单】已提交,订单ID :177 2017-12-05 13:09:07.656 【指令】收到回报指令 ID = 177 2017-12-05 13:09:07.671 【回报】70004210 : GC02 - 已报单 1 价格:0.0 平 卖 2017-12-05 13:09:07.796 【指令】收到成交回报指令 ORDERID = 177 2017-12-05 13:09:07.796 【指令】平仓计量 EBuy:0 ESell:0 2017-12-05 13:09:07.812 【回报】70004210 : GC1802 - 已成交 1 价格:1277.0 平 卖 2017-12-05 13:09:07.812 【回报】70004210 : GC1802 - 全部成交 1 2017-12-05 13:09:07.812 【指令】收到回报指令 ID = 177
|
-- 作者:a100016259 -- 发布时间:2017/12/5 16:43:52 -- 比较疑惑的是 我通过 buying 控制不重复进行平仓,都在一个 IF 的控制范围内了.. 对了,我是开了框架,同时一个账号跑几个策略 |
-- 作者:FireScript -- 发布时间:2017/12/5 17:17:29 -- 你运行的是什么周期的?你这个应该是出现过信号闪烁了导致的重复下单。固定轮询是有这样的问题的。 |
-- 作者:a100016259 -- 发布时间:2017/12/6 7:59:03 -- 3分钟周期 我通过全局变量 buying 控制,只有买入信号和卖出信号都会触发相应值改变。 信号闪烁一般是在同一个周期内,我这两个卖出信号相隔9分钟,间隔三个周期了。 现在比较大可能是 IF 语句内,buying 值未被改变为 0 , 因为buying =5 我代码里只有买入信号发生的时候才会成立,不太像buying 重新被赋值为 5 |
-- 作者:wenarm -- 发布时间:2017/12/6 8:46:39 -- 闪烁和其k线间隔没有必然关系,第一出现平多动作是在k线中触发的,然后当这根k走完时,有于闪烁,(比如用的close这种)就能造成在走完时信号又回来了, 自然存在后面再次触发是再平一次。 建议你从自己的条件入手,如果有疑问,可以配合debugfile进行跟踪调试输出,它能很好反应出当时的触发状态事,各项得输出条件的结果。 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=49428 或者你贴出完整的代码给我们分析 |