А в чём собственно проблема?
1. Перебрать все открытые ордера и проверить есть ли среди них твой мэджик.
2.1 если есть, то ничего не делать
2.2 если нет, то открыть ордер
эта процедура повторяется на каждом тике.
а 3. ?
и в чем проблема?
КАК РЕАЛИЗОВАТЬ?
Тема так называется еще)
вам только что описали решение шагайте на ветку к Киму собирайте нужные кирпичики и стройте...
если ордер не открылся и getlasterror вернул ошибку 138 (реквоты), то опять пункт 2
for(int k=0;k<OrdersTotal();k++) { OrderSelect(k,SELECT_BY_POS); if(OrderMagicNumber()==наш_меджик)return(0); } OpenOrder(); if(GetLastError()==138)OpenOrder();
requote 1.3660 / 1.3663 for open sell 0.05 EURUSD at 1.3664 sl: 0.0000 tp: 0.0000 requote 1.1237 / 1.1241 for order #5601828 buy 0.04 USDCHF closing at 1.1241
Не надо п.3. Если ордер не открылся по какой-либо причине, то на повторе п.1 обнаружится, что такого ордера нет и будет повторная попытка открыться. Т.е. весь алгоритм в два шага.
Приличные люди анализируют причины неоткрытия ордера, но это уже за рамками данного вопроса.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1. Если нет открытых ордеров с нашим MAGIС, то
2. ordersend //открыли ордер
3. Если не открылся (реквот и тп), то снова шаг 2.
и то же самое с закрытием.