您好,在TBQ3的监控器界面有一个信号仓,用正整数或负整数表示,请问这个信号净仓如何获得, A_GetSignalNetPosition(accountIds, symbols, yesterdays, currents); 我看这个函数有这个功能,但是还是不知道怎么得到当前账户合约的信号净仓,偶尔有一次写出来了,得到了信号净仓,但后来又忘记怎么写了,打印时可以读到账户信息和当前合约信息,但是信号净仓一直为零,监控器里不为零,用这个函数的实例,直接去编译时,读到的净仓也一直为零,请给我一些指导,看那些地方出问题了,谢谢您
Vars
// 声明数组
Array<String> symbols;
Array<String> accountIds;
Array<Integer> yesterdays;
Array<Integer> currents;
// 结果变量
Numeric signalPos(0);
Numeric actualPos(0);
// 传统公式语言使用以下结构
Events
OnReady()
{
A_BindTradeAccount(A_AccountID(0));
}
OnBarClose(ArrayRef<Integer> indexs)
{ Integer i=0;
// 设置数组
accountIds[0] = A_AccountID(i); //用这个可以直接读到我的模拟账户:66162448 这种格式的数
symbols[0] = symbol; // 当前合约代码
//Print(" accountIds[0]:" + accountIds[0] + "当前合约代" + symbols[0]);
// 查询信号净持仓
A_GetSignalNetPosition( accountIds, symbols, yesterdays, currents);
Print("A_GetSignalNetPosition:" + TextArray(accountIds) + "," + TextArray(symbols) + "," + TextArray(yesterdays) + "," + TextArray(currents));
// 计算总信号净持仓
signalPos =yesterdays[0] + currents[0];
Print(" yesterdays[0]:" + Text(yesterdays[0]) + " currents[0]:" + Text( currents[0]));
// 获取实际净持仓
actualPos = A_TotalPosition();
// 输出结果
Print("信号净持仓:" + Text(signalPos) + " 手");
Print("实际净持仓:" + Text(actualPos) + " 手");
Commentary("信号净持仓:" + Text(signalPos) + " 手");
Commentary("实际净持仓:" + Text(actualPos) + " 手");
// 比较持仓
if (actualPos <> signalPos)
{
Print("持仓不一致,差异:" + Text(actualPos - signalPos) + " 手");
}
}