以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=171104) |
-- 作者:xhbsy007 -- 发布时间:2019/7/17 16:03:25 -- 请老师看下代码哪里有问题 老师:请帮忙看下这个代码盈利5跳后不止盈?(固定轮询)美原油 KD:=REF(high>=REF(high,1),1) ; KK:=REF(high<REF(high,1),1);
//开多止盈5 IF H-ENTERPRICE>=5*MINDIFF and
holding>0 THEN BEGIN SELL(1,0,MARKET),orderQueue; END
//开空止盈5 IF ENTERPRICE-low>=5*MINDIFF and
holding<0 THEN BEGIN sellshort(1,0,MARKET),orderQueue; END
//开多止损20 IF ENTERPRICE-low>=20*MINDIFF and
holding>0 THEN BEGIN SELL(1,0,MARKET),orderQueue; END
//开空止损20 IF HIGH-ENTERPRICE>=20*MINDIFF and
holding<0 THEN BEGIN sellshort(1,0,MARKET),orderQueue; END
//------------------开多 if (KD AND HOLDING=0) then begin BUY(1 ,手数,marketr),orderQueue; end //-----------------开空 if (KK AND HOLDING=0) then begin BUYSHORT(1,手数,marketr),orderQueue;
end
//-----------------------------k走完提前2秒平仓 abb:=(time0-timetot0(dynainfo(207))<=2)
or not(islastbar); //tq是设定的提前下单的秒数 if abb then begin sell(1,0,MARKET),orderQueue; sellshort(1,0,MARKET),orderQueue; END |
-- 作者:FireScript -- 发布时间:2019/7/17 16:38:27 -- 有没有输出当时的条件呢。因为我看你用的止盈是按照H-ENTERPRICE>=5*MINDIFF 这个计算的。最好把条件单独输出下看的比较直观点。代码逻辑上应该没有影响到止盈止损的执行。 [此贴子已经被作者于2019/7/17 16:39:23编辑过]
|
-- 作者:xhbsy007 -- 发布时间:2019/7/17 16:44:35 -- 止盈可以用 ENTERPRICE 吗? AvGENTERPRICE 还是用这个合适?条件单独输出?看日志吗?从哪里看 |
-- 作者:FireScript -- 发布时间:2019/7/17 16:52:01 -- 2个函数都可以啊。如果有加仓用AvGENTERPRICE比较好。 不是日志输出,是把条件当做一个变量输出下。 类似这样: //开多止盈5 cd:H-ENTERPRICE>=2*MINDIFF and holding>0; IF cd THEN BEGIN SELL(1,0,MARKET),orderQueue; END 然后你代码里面点数设置的不是很合理吧。美原油的话,设置3-4个点差不多。否则平仓条件都触发了,也触发不了止盈止损。
|
-- 作者:FireScript -- 发布时间:2019/7/17 16:53:00 -- 另外就是可以这样: IF ENTERPRICE-low>=2*MINDIFF and holding<0 THEN BEGIN 止盈2:sellshort(1,0,MARKET),orderQueue; END 这样可以在图表上看到止盈止损的字样。 比较明显。
|