Data
CODA:"ni2005"; //第一腿合约A
CODB:"ni2006"; //第二腿合约B
Vars
Numeric X; //循环变量
Numeric MA1; //均线值1
Numeric MA2; //均线值2
Numeric CP1; //卖买价差
Numeric CP2; //买卖价差
Numeric TKN; //数据区长度
Numeric BIDPA,ASKPA; //A买卖一价
Numeric BIDPB,ASKPB; //B买卖一价
Numeric OPFLG(1); //模型处理标志
Numeric TKFLG; //数据区标志
Var_TickData TKDA; //A数据区
Var_TickData TKDB; //B数据区
Global_Numeric MOFLG; //输出处理标志
Begin
If(OPFLG == 1) //变量赋值
{
BIDPA = CODA.Price("Bid1"); //A买一价
ASKPA = CODA.Price("Ask1"); //A卖一价
BIDPB = CODB.Price("Bid1"); //B买一价
ASKPB = CODB.Price("Ask1"); //B卖一价
TKDA = Def_TickData("ni2005",1,200); //A数据区
TKDB = Def_TickData("ni2006",1,200); //B数据区
CP1 = ASKPA - BIDPB; //卖买价差
CP2 = BIDPA - ASKPB; //买卖价差
If(MOFLG == 0) //如果未执行输出处理
{
Commentary("【数据存储:数据区存储中!】");
MOFLG = 1; //已执行输出处理
}
If(TKDA.State == 1 && TKDB.State == 1) //如果数据区有效
{
If(MOFLG == 1) //如果已执行输出处理
{
Commentary("【数据存储:数据区已有效!】");
MOFLG = 2; //已完成输出处理
}
TKFLG = 1; //数据区有效
MA1 = 0; //均线值1归0
MA2 = 0; //均线值2归0
TKN = TKDA.Num; //数据区长度
For X = 0 To TKN - 1 //遍历数据区
{
MA1 = MA1 + (TKDA[X].Ask1 - TKDB[X].Bid1); //均线值1求和
MA2 = MA2 + (TKDA[X].Bid1 - TKDB[X].Ask1); //均线值2求和
}
MA1 = MA1 / TKN; //均线值1
MA2 = MA2 / TKN; //均线值2
PlotLine("CP1",CP1,Red);
PlotLine("MA1",MA1,green);
PlotLine("CP2",CP2,Red);
PlotLine("MA2",MA2,green);
}
}
end
CP1是卖卖价差,它是临时变量,我想求200笔CP1的均值,在算法模型中临时变量可以储存200笔吗?如果不能,为什吗?