END //IF
WHILE (HIGH>MYENTRYPRICE+0.5*N) AND TURTLEUNITS<4 DO BEGIN
MYENTRYPRICE := IF(OPEN>MYENTRYPRICE+0.5*N ,OPEN ,MYENTRYPRICE+0.5*N ) ;
MYENTRYPRICE := CEILING(MYENTRYPRICE/MINDIFF)*MINDIFF ;
BUY( _DEBUG, POSNUM, LIMITR, MYENTRYPRICE);
TURTLEUNITS := TURTLEUNITS+1 ;
BUYORDERTHISBAR := 1;
END //WHILE
以上是程序中多头对buyorderthisbar的所有赋值。。我现在面临的疑问是多头离场条件中:
LONGX1 := (LOW < T10LO) ;
IF LONGX1 AND BUYORDERTHISBAR=0 THEN BEGIN
MYEXITPRICE := IF(OPEN<T10LO-MINDIFF ,OPEN ,T10LO-MINDIFF ) ;
SELL( _DEBUG ,0,LIMITR,MYEXITPRICE);
POSITION := 0 ;
TURTLEUNITS := 0 ;
END
多头离场条件中,buyorderthisbar的判断条件是等于0,,,可是在之前的对buyorderthisbar的赋值中,都是在建立多头仓位或者加仓后,都赋值为1。。而只有在建仓和加仓都是成功的之后才能离场,所以这里的buyorderthisbar的判断条件似乎应该是1。。。。。这里我看了好几次没看懂,初次学习编程方面的东西,麻烦管理员帮忙解释一下,谢谢。。
PS:上面的所有程序片段都来自于金字塔软件自带的 交易系统——》系统交易——》双向海龟交易策略 里面的程序例子。
抱歉,2楼回复有误。
BUYORDERTHISBAR 的作用是用于判断当前k线位置是否有开仓动作。作用域仅限在当前k线,目的是防止同一根k上出现开平两个动作。
POSITION是全局变量用于记录仓位的状态。