to dosyć dziwny problem, co prawda takiego jak Twój nigdy nie zauważyłem ale faktem jest że całej platformie daleko do 100% stabilności.
Ja tam nie widzę w kodzie nic co mogłoby powodować jakiś błąd, natomiast mogę Ci podpowiedzieć jak mi się udało wybrnąć z podobnej sytuacji kiedyś. Poprostu dodałem sobie plik z ustawieniami do którego EA zapisywał najważniejsze rzeczy, czy też takie które mogą powodować problemy, po tym system zaczął pracować stabilnie. Minusem jest to żę rozwiązanie jest dosyć pracochłonne - musisz oprogramować całą obsługę pliku konfiguracyjnego.
EDIT:
chwilkę pomyślałem i przypomniało mi się że miałem kiedyś podobny problem
sytuacja wyglądała tak: miałem kilka zleceń oczekujących i przy określonych warunkach chciałem je wszystkie pousuwać. Robiłem to w jednej iteracji i okazało się że EA usuwał tylko co drugie zlecenie!!! Np. miałem 6 zleceń typu BUYLIMIT, to EA usunął tylko 3 za pierwszą próbą(co drugie zlecenie), jak mu dołożyłem drugą próbę to usunął 2 z pozostałych trzech i dopiero w trzeciej pętli usunął ostatnie zlecenie. Do tej pory nie wiem czy to ja zrobiłem jakiś błąd czy taka jest charakterystyka mt4 (przy okazji może ktoś mnie oświeci), ale problem obszedłem w ten sposób:
Kod: Zaznacz cały
while (trades>0)
{
for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
ticket=OrderTicket();
if (OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(ticket,OrderLots(),Bid,3,Red);
if (OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(ticket,OrderLots(),Ask,3,Green);
if (OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==OP_BUYLIMIT) OrderDelete(ticket,CLR_NONE);
if (OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==OP_SELLLIMIT) OrderDelete(ticket,CLR_NONE);
}
trades=0;
for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) trades=trades+1;
}
nie wiem jak to dokładnie u Ciebie wygląda ale może też ta sytuacja wydarza się jak masz więcej zleceń oczekujących? Jak to nie to, to przepraszam za mylne tropy
pzodrawiam