请问下面两个程序模块在金字塔里面的最后导致卖出数量会有区别吗?
程序A:
VARIABLE : T=12 ;
U := 0 ;
WHILE T>0 DO BEGIN
U := U + 1 ;
T := T-1 ;
END
IF U>0 THEN BEGIN
SELL( 1 ,U,LIMITR,CLOSE);
END
程序B:
VARIABLE : T=12 ;
WHILE T>0 DO BEGIN
SELL( 1 ,1,LIMITR,CLOSE);
T := T-1 ;
END
不一样,A在第一个K上卖12手,B就一手,虽然B在信号显示上是多个卖信号,但是实际交易时候一个K同一行交易语句只能触发一次。
你好,我还不是很理解。。我的想法是在程序A是一次性卖出,程序B是分成很多单卖出。。。两者最终的卖出数量是一样多的。。
实际交易时候一个K同一行交易语句只能触发一次。
这句话不是很理解。。。在一个K线上只能卖出一次吗???可是我程序里设定是循环卖出12次。。。这个在金字塔里面是无效的吗??
有一个基本限制在这里,一个K上同一个交易语句实际下单时候只能触发一次。因此把下单语句写在循环里面是无法达到你要的目的的。A的确是全卖了,B只能卖一手,也就是sell第一次执行的时候。
并且你上面A和B实际有效执行只在第一个K上。这是因为全局变量第在一个K之后都是0了。而U又是普通变量,每个K上都会被重新初始化一次。按照你那个条件就会只在第一个K上能执行到sell语句。
你看下这个函数吧:ALLOWREPEAT 。可以突破上面所提到的限制。但是不推荐使用。
金字塔自带的例子程序,海龟交易里面有这个程序段
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
这里面也使用了循环来买入,,这个买入语句也属于交易语句吧??为什么这里就能在一个K线上用循环多次下单呢??
这个代码在图表上看信号,也是有多个重复信号,但是实际下单是无法重复下多次的。这个海龟例子也是一样的。并没有能重复下单。这个循环未必是针对哪个下单语句的,可能是其他变量的计算之类的。
意思就是,循环语句不能用在下单上面???如果我要在同一个K线上多次下单在图表系统里面应该怎么办?
ALLOWREPEAT
表示是否允许指令在同一个周期内反复发出信号
例如:
TBUY(COND,1,MKT),ALLOWREPEAT;
表示满足条件后市价开仓,并允许在固定预警周期内反复开仓.
注意:
该函数只有在TBUY,TSELL,TBUYSHORT,TSELLSHORT,PLAYSOUND,SENDMAIL,SENDMSG这几个函数中使用有效
所属函数组:后台程式化交易(专业版)
这个ALLOWREPEAT只能在后台程式化交易中使用啊??有没有在图表系统上重复下单的方法??