Открыта позиция на 1 лот. После запуска скрипта нужно сделать так, чтобы позиция стала 0.9 лота.
Понятно, что скрипт может быть запущен в любой момент. Поэтому нарваться можно и на множество ситуаций.
Как обычно, попытался решить задачу классически.
// Частичное закрытие позиции.#include <Trade\Trade.mqh>
voidOnStart()
{
CTrade Trade;
if (Trade.Buy(1)) // Пытаемся открыть позицию на 1 лот.
{
constulong Ticket = Trade.ResultOrder();
// Ждем, пока не появится.while (!IsStopped() && !PositionSelectByTicket(Ticket))
Sleep(0);
// А теперь просто закрываем 0.1 лота в случае, если объем позиции равен 1.// Цикл - для эмуляции запуска скрипта в любой момент.while (!IsStopped() && PositionSelectByTicket(Ticket) && (PositionGetDouble(POSITION_VOLUME) == 1))
Trade.PositionClosePartial(Ticket, 0.1);
}
}
Запуск этого скрипта выдает позицию на 0.8 лота. Надо 0.9.
Запуск этого скрипта выдает позицию на 0.8 лота. Надо 0.9.
проверил пару раз на 2-х серверах, у меня только 0.9
логика тестов то понятна - пытаемся на одном тике от асинхронности выполнения избавиться, общую схему бы этого процесса (как синхронизироваться на одном тике) хотелось бы узнать
открыть ордер на покупку с нулевыми СЛ и ТП, затем выставить СЛ и ТП 30 пп (если не изменяет память в ДЦ это называлось типы счетов Market Execution - нельзя выставлять сразу СЛ и ТП)
открыть ордер на покупку с нулевыми СЛ и ТП, затем выставить СЛ и ТП 30 пп (если не изменяет память в ДЦ это называлось типы счетов Market Execution - нельзя выставлять сразу СЛ и ТП)
для МТ4 этот код работает:
Года два-три назад распознавание типа исполнения ввели на уровне терминала. Теперь даже при Market Execution можно установить SL и TP, а терминал сам разобьет ордер на два торговых приказа.
открыть ордер на покупку с нулевыми СЛ и ТП, затем выставить СЛ и ТП 30 пп (если не изменяет память в ДЦ это называлось типы счетов Market Execution - нельзя выставлять сразу СЛ и ТП)
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Forum on trading, automated trading systems and testing trading strategies
OrderModify() in MQL5?
Edward Munroe, 2021.05.27 00:51
Ask a simple question, get a simple answer!?! Why has almost everything in mql5 got to be so messy?Хороший вопрос.
Традиционно перед выходными простая задача.
Открыта позиция на 1 лот. После запуска скрипта нужно сделать так, чтобы позиция стала 0.9 лота.
Понятно, что скрипт может быть запущен в любой момент. Поэтому нарваться можно и на множество ситуаций.
Как обычно, попытался решить задачу классически.
Запуск этого скрипта выдает позицию на 0.8 лота. Надо 0.9.
Запуск этого скрипта выдает позицию на 0.8 лота. Надо 0.9.
проверил пару раз на 2-х серверах, у меня только 0.9
логика тестов то понятна - пытаемся на одном тике от асинхронности выполнения избавиться, общую схему бы этого процесса (как синхронизироваться на одном тике) хотелось бы узнать
Традиционно перед выходными простая задача.
Ешкин кот! И у меня 0.8 (на MQDemo -0.9). Да сколько ж этих граблей еще будет?
проверил пару раз на 2-х серверах, у меня только 0.9
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Великий и ужасный МТ4 навсегда (или как грамотно выработать стратегию перехода)
fxsaber, 2021.05.05 08:23
ForexTimeFXTM-Demo01
Решил.
Пожалуй, на данный момент это самая сложная задача из всех легко формулируемых задач в этой ветке.
Очень сильная проверка владения торговой частью MQL5.
открыть ордер на покупку с нулевыми СЛ и ТП, затем выставить СЛ и ТП 30 пп (если не изменяет память в ДЦ это называлось типы счетов Market Execution - нельзя выставлять сразу СЛ и ТП)
для МТ4 этот код работает:
открыть ордер на покупку с нулевыми СЛ и ТП, затем выставить СЛ и ТП 30 пп (если не изменяет память в ДЦ это называлось типы счетов Market Execution - нельзя выставлять сразу СЛ и ТП)
для МТ4 этот код работает:
Года два-три назад распознавание типа исполнения ввели на уровне терминала. Теперь даже при Market Execution можно установить SL и TP, а терминал сам разобьет ордер на два торговых приказа.
открыть ордер на покупку с нулевыми СЛ и ТП, затем выставить СЛ и ТП 30 пп (если не изменяет память в ДЦ это называлось типы счетов Market Execution - нельзя выставлять сразу СЛ и ТП)
Распространенная задача.