以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]一根bar上同时满足止盈和止损,会执行哪个?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=3208)

--  作者:z7c9
--  发布时间:2010/10/12 8:32:33
--  [求助]一根bar上同时满足止盈和止损,会执行哪个?
按照止盈和止损的代码顺序?
--  作者:fly
--  发布时间:2010/10/12 9:37:45
--  

正确


--  作者:z7c9
--  发布时间:2010/10/12 15:02:17
--  
以下是引用fly在2010-10-12 9:37:45的发言:

正确

应该说在回测时是按照代码顺序,实盘时是按照止损和止盈条件谁先满足吧。


--  作者:董小球
--  发布时间:2010/10/12 16:15:37
--  
反正是按顺序执行,如果止损在前 执行了,那么再检测止盈,如果已经没持仓了,那么止盈就就没意义了呗
--  作者:z7c9
--  发布时间:2010/10/12 16:34:21
--  
以下是引用董小球在2010-10-12 16:15:37的发言:
反正是按顺序执行,如果止损在前 执行了,那么再检测止盈,如果已经没持仓了,那么止盈就就没意义了呗

止盈止损都是基于enterprice计算的,历史测试时没跟K线执行一次,当holding=0时,开仓,此时enterprice是前一次的开仓价,无法使用呀。

结论就是金字塔无法在同一根k线上实现先开仓后止盈或止损吧。


--  作者:z7c9
--  发布时间:2010/10/12 16:35:44
--  

比如加上这样的开仓和止盈止损条件,事实上无法在同一根K线实现的。

以下内容为程序代码:

1 le1:=holding=0 and t1 and high>=hh;    
2
3 lx1:=holding>0 and enterprice-low>=m*mindiff;
4 lx2:=holding>0 and high-enterprice>=2*m*mindiff;


--  作者:董小球
--  发布时间:2010/10/12 16:41:13
--  
你吧holding检测的代码直接写到TBUY等函数的括号里,如果都这样放到最前面,初始化过去当然不行了,你要想想代码书写的顺序问题~!
--  作者:z7c9
--  发布时间:2010/10/12 16:50:42
--  
以下是引用董小球在2010-10-12 16:41:13的发言:
你吧holding检测的代码直接写到TBUY等函数的括号里,如果都这样放到最前面,初始化过去当然不行了,你要想想代码书写的顺序问题~!

这么写也不行呀。半年多的数据都没有在同一根bar上开平仓的,不可能有这种情况呀

以下内容为程序代码:

1 hh:hhv(ref(high,1),30);
2 ll:llv(ref(low,1),30);
3
4 buy(holding=0 and high>=hh,1,limitr,hh);
5 sell(holding>0 and enterprice-low>=5*mindiff,limitr,low);


--  作者:fly
--  发布时间:2010/10/13 9:12:43
--  

你可以打印输出,看你这半年,在同一根K线上,是否就满足了你BUY的两个条件,随后又满足了你SELL的条件

 

如果满足,是可以实现同一根bar上开平仓的