运行模式为在序列计算下,反馈测试正常!为什么不开仓呢?求解答!
//本模型运行于后台程序化模式
ZH1:'609234';
PZ1:'AU06';
VARIABLE:A=0,Y=0,T=0;
//条件判断
MA5:MA(CLOSE,5);
MA10:MA(CLOSE,10);
CONDBUY:=CROSS(MA5,MA10);
//开仓做多一次
IF Y=0 THEN BEGIN
TBUY(CONDBUY AND TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10,1,MKT,0,0,ZH1,PZ1 );
EXTGBDATASET( 'T',1 );
END
//循环开仓做多
IF Y=1 THEN BEGIN
TBUY(T=0 AND TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10,1,MKT,0,0,ZH1,PZ1 );
EXTGBDATASET( 'T',1 );
END
//移动止损模块部分*******************************
//A有三种数值状态:1,0,最新价;
//当A=1时表示当前有持仓,A=0时表示移动止损执行完毕,A=最新价时用于比较价格是否回落
//将A赋值为1,表示当前有持仓
IF TBUYHOLDINGEX( '','' ,0 )>0 AND EXTGBDATA('a' )=0 THEN BEGIN
EXTGBDATASET( 'a',1 );
END
//使A始终表示监控开始后的最高价
IF DYNAINFO( 7)>EXTGBDATA('a' ) and EXTGBDATA('a' )>0 THEN BEGIN
EXTGBDATASET( 'a',DYNAINFO( 7));
END
//发现价格回落止损,并将A赋值为0表示移动止损动作完成
IF EXTGBDATA('a' )-DYNAINFO( 7)>5*MINDIFF and EXTGBDATA('a' )>0 THEN BEGIN
TSELL(1,1,MKT );
EXTGBDATASET( 'a',0);
END
//*******************************
//循环开仓做空
IF Y=1 THEN BEGIN
TBUYSHORT(T=1 AND TSELLHOLDINGEX( ZH1,PZ1 ,0 )<10,1,MKT,0,0,ZH1,PZ1 );
EXTGBDATASET( 'T',0 );
END
//移动止损模块部分*******************************
//A有三种数值状态:1,0,最新价;
//当A=1时表示当前有持仓,A=0时表示移动止损执行完毕,A=最新价时用于比较价格是否回落
//将A赋值为1,表示当前有持仓
IF TSELLHOLDINGEX( '','' ,0 )>0 AND EXTGBDATA('a' )=0 THEN BEGIN
EXTGBDATASET( 'a',1 );
END
//使A始终表示监控开始后的最高价
IF DYNAINFO( 7)>EXTGBDATA('a' ) and EXTGBDATA('a' )>0 THEN BEGIN
EXTGBDATASET( 'a',DYNAINFO( 7));
END
//发现价格回落止损,并将A赋值为0表示移动止损动作完成
IF EXTGBDATA('a' )-DYNAINFO( 7)>5*MINDIFF and EXTGBDATA('a' )>0 THEN BEGIN
TSELLSHORT(1,1,MKT );
EXTGBDATASET( 'a',0);
END
//*******************************