以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  帮忙看看两段代码的区别在那?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=167692)

--  作者:baidus12
--  发布时间:2019/1/14 14:50:38
--  帮忙看看两段代码的区别在那?
代码1
if holding>0 and r13>=5 and r13<=7.5 and r12-l>=2  then
begin
sell(1,0,limitr,r12-2);
end

if holding<0 and r14>=5 and r14<=7.5 and h-r11>=2 then
begin
sellshort(1,0,limitr,R11+2);
end

代码2
if holding>0 and r13>=5 and r13<=7.5  then
begin
sell(r12-l>=2,0,limitr,r12-2);
end

if holding<0 and r14>=5 and r14<=7.5   then
begin
sellshort(h-r11>=2,0,limitr,R11+2);
end

--  作者:FireScript
--  发布时间:2019/1/14 14:52:14
--  
 逻辑上可以说是一样的。怎么?实际效果有差异吗?
--  作者:baidus12
--  发布时间:2019/1/14 14:55:51
--  
代码1 是不是 and r13>=5 and r13<=7.5 and r12-l>=2  这3个条件同时满足了 `不分先后`就执行 平仓 
代码2 是吧是 先满足 and r13>=5 and r13<=7.5 这个 后满足r12-l>=2 才执行平仓??

--  作者:baidus12
--  发布时间:2019/1/14 14:59:38
--  
因为这个是移动止盈代码  按照设计应该是 先 满足r13>=5 and r13<=7.5 这个条件 然后后面 r12-l>=2  这个满足才会平仓 
代码1 在实盘过程 是可以的 先满足 r12-l>=2 后满足r13>=5 and r13<=7.5  这个条件 也可以 

这样的话跟设计就不相符了

--  作者:baidus12
--  发布时间:2019/1/14 15:01:49
--  
我想问的是 代码2的话是否能过按照设计来执行呢 就是满足了 r13>=5 and r13<=7.5 条件之后 在判断r12-l>=2 这个回调点数呢
--  作者:FireScript
--  发布时间:2019/1/14 15:02:51
--  
 代码1 那几个条件是需要在同一个K上同时满足才行。而代码2其实也是一样的。只是判断的先后顺序不同而已。结果都是一样的。
[此贴子已经被作者于2019/1/14 15:02:59编辑过]

--  作者:baidus12
--  发布时间:2019/1/14 15:10:33
--  
但是这样的话就跟设计原理有区别了 
代码的意思就是盈利5到7.5个点 然后 回调2个点 就执行平仓
现在用代码1的话是 没有满足 5到7.5个点 而是先回调了2个点 之后满足了 5到7.5这个 也会平仓
能不能给个代码就是 先满足前面 然后在进入后面的呢

--  作者:FireScript
--  发布时间:2019/1/14 15:38:21
--  
得看你  r13 ,r12的计算方式了,因为正常你这样已经满足需求了。

zgyl:=(HHV(H,ENTERBARS)-CLOSE);//最高盈利
dqyl:c-ENTERPRICE;//当前盈利

if zgyl>=5*MINDIFF  and zgyl<=7.5*MINDIFF and  dqyl<zgyl-2*MINDIFF and holding>0  then .....

最高盈利这个肯定是至少是发生在当前或当前之前的位置上,相当于先条件成立了。