OnReady()
{
Bool ret1 = A_GetCommissionRate(DATA2.Symbol, Rate);
LogFile("获取手续费率="+IIFString(ret1,"T","F") +"/" + Text(Rate));
}
OnOrder(OrderRef Ord)//委托更新事件
{
IF (Ord.status==Enum_Filled)//全部成交
LogFile("开多已成//"+Text(ord.orderId)+"/手续费="+TEXT(Ord.commission));
}我通过上述代码获取手续费率(OnReady)和每笔成交的手续费(OnOrder),策略应用于实盘帐户的黄金/AU2512,实际返回日志文件截图如下




我感觉两个函数不稳定,截图的前两条记录是正常的,截图的后两条记录是不正常的,但是我的策略正常运行且帐户正常登录(否则也不可能开多成功)
请老师帮我分析不稳定的原因,谢谢
A_GetCommissionRate 是向柜台查询账户手续费
查询频率取决于柜台设定,请不要频率太高
太高可能会被期货公司柜台屏蔽
commission是实时手续费,也就是TB平台实际扣收的手续费,应该是平台数据吧?为什么也不稳定呢?我上面截图中两条开多成功的记录为什么手续费不一样?
手续费是期货公司收取的
期货公司不会允许你高频查询
0应该就是没查到
期货公司回复我:查询限一秒10次以下。
我的策略中的查询一秒不会超过10次,所以建议你们验证一下上述两个函数的稳定性