想要显示账户权益的均线和MACD,但不成功。下面是完整代码,请老师看一下,问题出在哪里?
Params
Numeric Length1(5);
Numeric Length2(20);
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Vars
Numeric MACDDiff;
Numeric AvgMACD;
Numeric MACDValue;
Plot plt_macd;
Plot plt_vol;
plot plt_line;
Natural Series<Numeric> CloseL;
Numeric Tvalue;
Integer i;
Global Numeric BZJB;
Integer lot;
Natural MarginRate mRate;
Events
OnInit()
{
//=========数据源相关设置==============
//获取数据源委托映射合约
Array<String> symbols;
Bool ret = GetLayerOrderMapSymbols(symbols);
Print(\"GetLayerOrderMapSymbols:\" + IIFString(ret, \"True\", \"False\") + \",\" + TextArray(symbols));
{
plt_line.figure(0); //plt_line单独设置画板,没有指定画板id,系统自动创建
plt_macd.figure(0);//plt_macd和k线同一个画板,独立图表显示
plt_vol.figure(1); //plt_vol单独设置画板,没有指定画板id,系统自动创建
plt_vol.setOption(\"Vol\",\"x-format\",\"time\");
plt_line.setOption(\"MA1\",\"x-format\",\"time\");
plt_vol.setLayout(5,0);
plt_vol.setOption(tableName,\"data-pagination\",False);
plt_vol.setOption(tableName,\"column-index\",\"账户_合约=0\");
}
}
//在所有的数据源准备完成后调用
OnBar(ArrayRef<Integer> indexs)
{
//CloseL = Close ; //均线和MACD可以正常显示
CloseL = A_CurrentEquity(i); //指定账户的动态权益均线和MACD无法正常显示
//CloseL = Portfolio_CurrentEquity();
//CloseL = Portfolio_InitCapital();
//CloseL = A_PositionProfitLossO(i);
//CloseL = Portfolio_PositionProfit();
//CloseL = PositionProfit;
//Line
plt_line.line(\"MA1\",AverageFC(CloseL,Length1));
plt_line.line(\"MA2\",AverageFC(CloseL,Length2));
//macd
MACDDiff = XAverage( CloseL, FastLength ) - XAverage( CloseL, SlowLength ) ;
AvgMACD = XAverage(MACDDiff,MACDLength);
MACDValue = MACDDiff - AvgMACD;
plt_macd.line(\"MACDDiff\",MACDDiff); //画线
plt_macd.line(\"MACDDEA\",AvgMACD); //画线
If (MACDValue >= 0)
{
plt_macd.setOption(\"MACD\",\"color\",Red); //设置颜色属性
plt_macd.barv(\"MACD\",MACDValue); //画柱状图
}
Else
{
plt_macd.setOption(\"MACD\",\"color\",Green);//设置颜色属性
plt_macd.barv(\"MACD\",MACDValue); //画柱状图
}
plt_macd.line(\"零线\",0);
}