for循环导致的死机问题
老师,您好.策略编译加进以下一段程序编译没问题,但加载后,机器不动了,甚至无法关闭超级图表--------
if(A_GetOpenOrderCount()>0)
{
nCount1 = A_GetOpenOrderCount;
if(nCount1>0)
{
for i=1 to nCount1
{
nEntryFlag = A_OpenOrderEntryOrExit(i);
nBuyOrSell = A_OpenOrderBuyOrSell(i);
OrderPrice = A_OpenOrderPrice(i);
strContractNo =A_OpenOrderContractNo(i);
If( nEntryFlag==Enum_Entry )
{
if( nBuyOrSell==Enum_Buy and Q_AskPrice>OrderPrice+MinMove*PriceScale)
{
A_DeleteOrder(strContractNo);
}
if( nBuyOrSell==Enum_Sell and Q_BidPrice<OrderPrice-MinMove*PriceScale)
{
A_DeleteOrder(strContractNo);
}
}
If( nEntryFlag==Enum_Exit )
{
if( nBuyOrSell==Enum_Buy and Q_AskPrice>OrderPrice)
{
A_DeleteOrder(strContractNo);
}
if( nBuyOrSell==Enum_Sell and Q_BidPrice<OrderPrice)
{
A_DeleteOrder(strContractNo);
}
}
}
}
}
我把for循环删除了,用Commentary语句检测ncount1,结果发现ncount1为10位数大,这是为什么?
if(A_GetOpenOrderCount()>0)
{
nCount1 = A_GetOpenOrderCount;
}
查了一下论坛,http://bbs.tb18.net/thread-5006-1-1.html与我的问题是一样,期待老师的解答.
hxh989898 发表于 2016-6-2 10:27 static/image/common/back.gif
我把for循环删除了,用Commentary语句检测ncount1,结果发现ncount1为10位数大,这是为什么?
if(A_GetOpenOrde ...
如图所示的ncount1的值是一个无效值 。。
使用A函数时要确保帐户有关联在图表上(启动自动交易后),以及在最后K线上,方可取到有效值 。 我最后改成这样,然后先打开图表,启动自动交易,插入公式应用,马上死机.
--------------------
if(A_GetOpenOrderCount()>0 and BarStatus==2)
{
nCount1 = A_GetOpenOrderCount;
if(nCount1>0)
{
for i=1 to nCount1
{
}
}
}
页:
[1]