Автор темы#1
Советник на MQL4, которому лет восемь, торгует EURUSD и USDCHF, одна позиция на символ. В прошлый четверг VPS ночью перезагрузился, хостинг что-то обслуживал. Терминал поднялся автозапуском, советник стартовал. Утром вижу на EURUSD две покупки по 0,5 вместо одной.
Полез в код. Признак «в рынке» у меня хранится в обычной переменной bool inTrade: ставится в true после успешного OrderSend и в false после закрытия. После перезапуска она, понятно, false, советник видит сигнал на покупку, который всё ещё действует, и открывает вторую. Там же в переменных хранится, переносил ли я стоп в безубыток и сколько входов было за день, у меня лимит два входа в день на символ. Всё это после рестарта обнулилось.
Понимаю, что так писать нельзя. Как правильно, с учётом того, что советник старый и переписывать его целиком не хочется?
Полез в код. Признак «в рынке» у меня хранится в обычной переменной bool inTrade: ставится в true после успешного OrderSend и в false после закрытия. После перезапуска она, понятно, false, советник видит сигнал на покупку, который всё ещё действует, и открывает вторую. Там же в переменных хранится, переносил ли я стоп в безубыток и сколько входов было за день, у меня лимит два входа в день на символ. Всё это после рестарта обнулилось.
Понимаю, что так писать нельзя. Как правильно, с учётом того, что советник старый и переписывать его целиком не хочется?