Как избежать повторного открытия ордера?

 
Ситуация следующая господа- наклепал небольшой эксперт для торговли на днях, открытие позиции по определенным условиям, выход из открытой позиции либо по стопу либо по условию. Все хорошо, все работает.... но иногда случается ситуация, если позиция зарывается по стопу, и сразу же после отрытия- на первой же свече, то снова генерируется сигнал на открытие позиции- в ту же сторону и как следствие- еще один стоп и т.д.))) Причина этого явления мне в общем ясна, вопрос как это избежать? Можно ли отследить программным путем- причину закрытия, допустим "закрылся ордер по стопу" или "закрылся ордер по профиту" .... с тем что бы ставить потом ставить временную задержку на открытие новых позиций. 0вопрос по MQL2. Может кто то сталкивался с подобными проблемами- поделитесь возможными вариантвми решения))))) Заранее спасибо за ответы!
 
К сожалению, в MQL2 уже мало что поможет. Разве что писать список октрытых позиций в файл, а потом при каждой попытке открыться, проверять - а каково состояние ранее открытых позиций.

В MQL4 уже легче - можно самому писать комменты и Magic Number в ордеры, а потом использовать их для идентификации ордеров. К тому же есть доступ к истории сделок. Можно брать последнюю закрытую позицию и проверять у нее close time. Если прошло мало времени с момента закрытия позиции, то не открываться.
 
Я с MQL4 пока не разбирался т.к у меня почему то в МетаТрейдере4 который я скачал отсюда- не работает тестер экспертов))))))))) который должен запускаться по F6. МОжет это только у меня такое? Смотрю - народ бурно обсуждает возможности MQL4 - значит у всех есть возможность запускать эксперт на тестирование?
 
Поддержка - База знаний - Советники "Советники"
===
Почему в бета версии клиентского терминала MetaTrader 4 не работает тестирование стратегий?
На данный момент модуль тестирования стратегий не готов для бета-тестирования в составе терминала MetaTrader 4.
===
читайте всю информацию на нашем сайте
 
2 Slawa то что Вы указали в ссылке- я читал))))))))))))))) Просто меня смутил факт "бурного" обсуждения возможностей MQL4 применительно так же и к эксперту))))))))))) Поэтому я поинтересовался еще раз)))) Но все равно - спасибо!
 
когда у нас будет готов тестер, это будет большая новость. Вы обязательно про это узнаете.
 
а когда планируете подготовить тестер ?
 
Если нужно запретить _повторное_ открытие ордера на первом же баре - нет ничего проще. Просто при открытии ордера запоминай значение Time (время начала текущего бара). Если ордер слетит допустим по стопу то попытка открыть повторный ордер на этом же баре нарвется на то что Time будет равен сохраненному значению Time, т.е. открытие на этом баре уже производилось. Если нужно просто запретить повторное открытие на том же баре на котором закрылся предыдущий ордер (не обязательно на первом баре), то постоянно на каждом баре пока ордер открыт запоминай текущее значение Time. Далее все так же как в первом случае. Повторый ордер на баре-закрытия не сработает. Если тебя интересует запрет только в случае тэйков/стопов а при принудительном закрытии возможность повторного открытия оставить, то когда будешь принудительно закрывать - обнуляй сохраненное значение Time. Т.е. если ордер слетит сам "сохраненный" Time останется, что не позволит открыться повторно, если же закрыл сам - "сохраненный" Time будет обнулен и открывайся повторно на здоровье.
В общем думаю идея понятна. Ну а дальше ваяй что тебе надо. :)
 
2 Simca - точно так я и делал)))))))) На тестировании выходит так- сперва запоминаю TimeDay(Time) и TimeMonth(Time) потом когда открывается ордер по операции setorder (по дневным свечам) в 00:00 я запоминаю timeDay(LastTradeTime) и TimeMonth(LastTradeTime) ну и конечно же проверяю их перед открытием ордера тоже, а вылетает по стопу допустим в 14:38))) Но иногда (ПОЧЕМУ????) тут же снова открывается время открытия уже 14:38)))) - получается что все равно- время разное ))))
Причина обращения: