以下是引用fly在2010-10-12 9:37:45的发言:
正确
应该说在回测时是按照代码顺序,实盘时是按照止损和止盈条件谁先满足吧。
反正是按顺序执行,如果止损在前 执行了,那么再检测止盈,如果已经没持仓了,那么止盈就就没意义了呗
以下是引用董小球在2010-10-12 16:15:37的发言:
反正是按顺序执行,如果止损在前 执行了,那么再检测止盈,如果已经没持仓了,那么止盈就就没意义了呗
止盈止损都是基于enterprice计算的,历史测试时没跟K线执行一次,当holding=0时,开仓,此时enterprice是前一次的开仓价,无法使用呀。
结论就是金字塔无法在同一根k线上实现先开仓后止盈或止损吧。
比如加上这样的开仓和止盈止损条件,事实上无法在同一根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;
你吧holding检测的代码直接写到TBUY等函数的括号里,如果都这样放到最前面,初始化过去当然不行了,你要想想代码书写的顺序问题~!
以下是引用董小球在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);
你可以打印输出,看你这半年,在同一根K线上,是否就满足了你BUY的两个条件,随后又满足了你SELL的条件
如果满足,是可以实现同一根bar上开平仓的