Sneck55 : Havuzda olanla eşleşmesi için bir emri kapatırsa, bir emri kapatmazsa azaltması gerekir. Bir emri kapatmadan azalırsa sonsuz bir döngüye girer.
OrdersTotal()'ı aramaya devam etmeseydin, bu problemin olmazdı. Toplamı bir kez arayın. Bir int içine koyun. Bu int'yi for döngüsünde kullanın.
Bunu söyledikten sonra daha önceki cevabımı okudun mu? Bu döngünün tamamı tam bir zaman kaybı. Koduna bak. SellTicket'in halihazırdaki değeri nedir sizce?
if ( SellTicket!= 0 )
{
if (SmallMA>MediumMA)
{
for (Counter= 0 ;Counter<= OrdersTotal ()- 1 ;Counter++)
{
SelectedOrder = OrderSelect (Counter, SELECT_BY_POS );
if ( OrderMagicNumber ()==MagicNumber&& OrderSymbol ()== Symbol ()&& OrderType ()== OP_SELL )
{
// while(IsTradeContextBusy()) Sleep(10);
Closed= OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( Symbol (), MODE_ASK ),Slippage,Red);
if (Closed) SellTicket= 0 ;
elseAlert ( "Symbol: " , Symbol (), " Ticket: " ,SellTicket, " unable to close sell order(s): sell ma convergence close routine" );
}
Counter--;
}
}
}
Evet öyle ve EA'da zaten gerekli değerlere sahip olmak, sonra onları unutmak ve onları almak için sipariş havuzunda gezinmek mantıklı değil. Bu tür şeyler yalnızca yeniden başlatma kurtarma işleminin bir parçası olarak yapılmalıdır.
Havuzda olanla eşleşmesi için bir emri kapatırsa, bir emri kapatmazsa azaltması gerekir. Bir emri kapatmadan azalırsa sonsuz bir döngüye girer.
OrdersTotal()'ı aramaya devam etmeseydin, bu problemin olmazdı. Toplamı bir kez arayın. Bir int içine koyun. Bu int'yi for döngüsünde kullanın.
Bunu söyledikten sonra daha önceki cevabımı okudun mu? Bu döngünün tamamı tam bir zaman kaybı. Koduna bak. SellTicket'in halihazırdaki değeri nedir sizce?
Evet öyle ve EA'da zaten gerekli değerlere sahip olmak, sonra onları unutmak ve onları almak için sipariş havuzunda gezinmek mantıklı değil. Bu tür şeyler yalnızca yeniden başlatma kurtarma işleminin bir parçası olarak yapılmalıdır.