

跑模拟账户,风险度控制不了。代码如下:
Params
Numeric MaxRiskRatio(0.6);
Vars
Series<Numeric> LastEquity; // 最新权益
Series<Numeric> FreeMargin; // 可用资金
Series<Numeric> UsedMargin;
Series<Numeric> CurrentRiskRatio;
Account acc;
Events
OnReady()
{
Bool ret = A_GetAccount(acc, "66133512");
CurrentRiskRatio = acc.available/acc.lastAmount;
}
OnBar(ArrayRef<Integer> indexs)
{
Commentary("CurrentRiskRatio:" + Text(CurrentRiskRatio));
FreeMargin = Portfolio_CurrentCapital();
UsedMargin = Portfolio_UsedMargin();
LastEquity = FreeMargin + UsedMargin;
If (LastEquity > 0)
{
CurrentRiskRatio = UsedMargin / LastEquity;
}
Else
{
CurrentRiskRatio = 1;
}
Commentary("LastEquity:" + Text(LastEquity));
Commentary("CurrentRiskRatio:" + Text(CurrentRiskRatio));
Commentary("acc.available:" + Text(acc.available));
//If(CurrentRiskRatio <= MaxRiskRatio) 开仓
}请问,哪里出了问题?谢谢!

函数没问题
你的currentriskratio为什么定义series?
series无法从oninit和onready传递到onbar里
数据结构那一章再仔细学习一下
感谢老师回复!我考虑风险度不断变化,所以用了序列变量,已经改为普通变量了。
另外,我的账户风险率已经90%多了,为什么几种方法Commentary返回值都是0?