以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  历史数据锁定  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=144518)

--  作者:zero
--  发布时间:2016/12/12 15:14:52
--  历史数据锁定
//变量
VARIABLE:AA=0;

//账户
账户:\'1000\';
套利品种1:\'Y01\';
套利品种2:\'Y02\';

Y1:=dynainfo2(7,套利品种1);
Y2:=dynainfo2(7,套利品种2);

//公式
PMA:=MA(Y1,10)/MA(Y2,10);

//开仓
IF CROSS(Y1,Y2) AND THOLDING=0 THEN BEGIN
TBUYSHORT(1,1,MKT ,0,0,账户,套利品种2 );
TBUY(1,1,MKT ,0,0,账户,套利品种1 );
AA=PMA;//记录开仓时的PMA值,并赋值给变量AA
END

IF CROSS(Y2,Y1) AND THOLDING=0 THEN BEGIN
TBUYSHORT(\'\',1,MKT ,0,0,账户,套利品种1 );
TBUY(\'\',1,MKT ,0,0,账户,套利品种2 );
AA=PMA;//记录开仓时的PMA值,并赋值给变量AA
END

//平仓,当PMA值重新返回开仓时的值平仓
IF CROSS(PMA,AA) THEN BEGIN
TSELL(\'\',1,MKT ,0,0,账户,套利品种1 );
TSELLSHORT(\'\',1,MKT ,0,0,账户,套利品种2 );
AA=0;//变量清零
END

IF CROSS(AA,PMA) THEN BEGIN 
TSELL(\'\',1,MKT ,0,0,账户,套利品种2 );
TSELLSHORT(\'\',1,MKT ,0,0,账户,套利品种1 );
AA=0;//变量清零
END

问题:对变量AA赋值开仓时的PMA值锁定不了当时的值,而是随PMA值变动,怎么办?



--  作者:jinzhe
--  发布时间:2016/12/12 15:27:06
--  
IF CROSS(Y1,Y2) AND THOLDING=0 THEN BEGIN
TBUYSHORT(1,1,MKT ,0,0,账户,套利品种2 );
TBUY(1,1,MKT ,0,0,账户,套利品种1 );
AA=PMA;//记录开仓时的PMA值,并赋值给变量AA
END

 

 

 

类似这样的句子里面,把AA=PMA,都改成AA:=PMA;

不改等于没有赋值