想精细一下加仓的条件,
IF HOLDING=1 AND COND1 THEN BUY(1,1,MARKET);
IF HOLDING=2 AND COND2 THEN BUY(1,1,MARKET);
发现语句2好像不起作用,程序还是根据语句1来加第二仓的!有知道的吗?
没人知道?
举个例子吧!
BUYCOND1:CROSS(MA(C,10),MA(C,30));
BUYCOND2:CROSS(MA(C,10),MA(C,20));
BUYCOND3:CROSS(MA(C,5),MA(C,10));
SELLCOND:CROSS(MA(C,30),MA(C,10));
IF HOLDING>0 AND SELLCOND THEN SELL(1,0,MARKET);
IF HOLDING=0 AND BUYCOND1 THEN BUY(1,1,MARKET);
IF HOLDING=1 AND BUYCOND2 THEN BUY(1,1,MARKET);
IF HOLDING=2 AND BUYCOND3 THEN BUY(1,1,MARKET);
DRAWICON(BUYCOND3 AND HOLDING=1,LOW,17);
DRAWICON(BUYCOND3 AND HOLDING=2,LOW,1);
看最后两句,只有HOLDING持仓不同,结果在图上也有菱形图标显示,证明程序也能读HOLDING,但为何BUYCOND3不开仓呢?
你试试将那个CROSS(MA(C,5),MA(C,10))换成
ma(c,5)>ma(c,10) and ref(ma(c,5),1)<ref(ma(c,10),1).
因为有可能他们相隔很近,却没有穿过。
你试试将那个CROSS(MA(C,5),MA(C,10))换成
ma(c,5)>ma(c,10) and ref(ma(c,5),1)<ref(ma(c,10),1).
因为有可能他们相隔很近,却没有穿过。
DRAWICON(BUYCOND3 AND HOLDING=1,LOW,17);
DRAWICON(BUYCOND3 AND HOLDING=2,LOW,1);
没穿过会有记号出来?
客服看到了吗?
没执行HOLDING=2的条件,是因为条件不满足.
改为以下,更方便图上查看
BUYCOND1:=CROSS(MA(C,10),MA(C,30));
BUYCOND2:=CROSS(MA(C,10),MA(C,20));
BUYCOND3:=CROSS(MA(C,5),MA(C,10));
SELLCOND:=CROSS(MA(C,30),MA(C,10));
IF HOLDING>0 AND SELLCOND THEN SELL(1,0,MARKET);
//以下代码在IF12合约2012年11月22日的1分钟K线上是有完整执行的
IF HOLDING=0 AND BUYCOND1 THEN 多1:BUY(1,1,MARKET);
IF HOLDING=1 AND BUYCOND2 THEN 多2:BUY(1,1,MARKET);
IF HOLDING=2 AND BUYCOND3 THEN 多3:BUY(1,1,MARKET);