Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1096
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Теперь решить задачу станет намного легче.
При написании примера загляните немного вперед.
Второй OrderSend содержит ошибку. И нормализация не нужна. На форуме (и не только) код легче читается, когда он короче.
да, вижу, писал код на лету - запустил в тестере - работает, скопировал на форум
Тут уже надо будет постараться.
вот поэтому я и обратился за помощью на форум! - решил оценить возможности СБ CTrade - взял в качестве примера элементарную задачу и пока результат отрицательный!
Теперь решить задачу станет намного легче.
знаю Вас как активного участника форума, Вы не могли бы мой, вернее правленый код fxsaber , воспроизвести с помощью СБ CTrade под MQL5
да, вижу, писал код на лету - запустил в тестере - работает, скопировал на форум
Когда начинаю писать советник, то стартую всегда с голого листа (рекомендую). Наверное, чаще всего стартуют с шапки с On-функциями.
вот поэтому я и обратился за помощью на форум! - решил оценить возможности СБ CTrade - взял в качестве примера элементарную задачу и пока результат отрицательный!
Есть еще более короткий пример.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2018.02.15 11:48
С ним тяжко в MT5, если не в тестере.
хм, странная ситуация, вроде активность в топике я поднял, вопрос у меня был, с моей точки зрения конкретный, а вместо ответа пока получил "а зачем тебе это?"
ОК, мне нужно в тестере промасштабировать ТС сразу на несколько ТФ, хочу это реализовать с помощью СБ CTrade, вот пример (собранный из 2-х моих примеров): открываем каждый новый бар на 9-ти ТФ по одному ордеру, тикет запоминаем и по номеру тикета определяем закрылся ли ордер? и какое направление было у закрытого ордера?
в MQL4 код для тестера будет выглядеть так:
нужен код для тестера, т.е. минимум проверок и максимально быстро работающий в оптимизаторе
как написать этот код в MQL5 с помощью СБ CTrade ???!!!
хм, странная ситуация, вроде активность в топике я поднял, вопрос у меня был, с моей точки зрения конкретный, а вместо ответа пока получил "а зачем тебе это?"
ОК, мне нужно в тестере промасштабировать ТС сразу на несколько ТФ, хочу это реализовать с помощью СБ CTrade, вот пример (собранный из 2-х моих примеров): открываем каждый новый бар на 9-ти ТФ по одному ордеру, тикет запоминаем и по номеру тикета определяем закрылся ли ордер? и какое направление было у закрытого ордера?
в MQL4 код для тестера будет выглядеть так:
как написать этот код в MQL5 с помощью СБ CTrade ???!!!
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопросы от начинающих MQL5 MT5 MetaTrader 5
Vladimir Karputov, 2019.07.21 12:56
Итак, основа основ - Идентификатор позиции (POSITION_IDENTIFIER), но ни как не тикет позиции. Это важно, как раз из-за неттинга:
POSITION_IDENTIFIER
Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Соответствует тикету ордера, которым была открыта позиция.
Идентификатор позиции указывается в каждом ордере (ORDER_POSITION_ID) и сделке (DEAL_POSITION_ID), которая ее открыла, изменила или закрыла. Используйте это свойство для поиска ордеров и сделок, связанных с позицией.
При развороте позиции в режиме неттинга (единой сделкой in/out) идентификатор позиции POSITION_IDENTIFIER не изменяется. Однако при этом POSITION_TICKET изменяется на тикет ордера, в результате которого произошел разворот. В режиме хеджинга разворот позиции не предусмотрен.
long
Значит нужно запоминать и отслеживать идентификатор позиции (POSITION_IDENTIFIER).
Теперь уточнённая задача: при первом запуске открываем ПОЗИЦИЮ BUY и запоминаем её (ВНИМАНИЕ: запоминать нужно идентификатор позиции, но не тикет). Если позиция была закрыта - открываем противоположную позицию: например жила-была позиция BUY, затем она была закрыта, а значит открывается сразу позиция SELL.
Теперь решить задачу станет намного легче.
пролистал справку, не вижу у СБ CTrade методов для работы с идентификатором позиции, т.е. СБ CTrade не умеет определять самостоятельно открыт ордер или закрыт? какой тип был у последнего закрытого ордера?
какую библиотеку нужно использовать для этой цели?
пролистал справку, не вижу у СБ CTrade методов для работы с идентификатором позиции, т.е. СБ CTrade не умеет определять самостоятельно открыт ордер или закрыт? какой тип был у последнего закрытого ордера?
какую библиотеку нужно использовать для этой цели?
Ну я уже сто раз говорил - выкиньте из лексикона слово "ордер". Пока Вы этого не сделаете - Вы не сможете идти дальше. В общем я вероятно Вам не смогу помочь. Печаль.
Ну я уже сто раз говорил - выкиньте из лексикона слово "ордер". Пока Вы этого не сделаете - Вы не сможете идти дальше. В общем я вероятно Вам не смогу помочь. Печаль.
А подскажите, как понимать это:
Ну я уже сто раз говорил - выкиньте из лексикона слово "ордер". Пока Вы этого не сделаете - Вы не сможете идти дальше. В общем я вероятно Вам не смогу помочь. Печаль.
OK? сформулирую вопрос иначе:
как используя запомненный тикет с помощью CTrade::ResultOrder()
узнать:
1. закрыта ли позиция?
2. какой тип сделки был у закрытой позиции?
3. нужна одновременная работа с 9-ю позициями, ордерами или тикетами или ... НаВашеУсмотрениеЛюбаяТерминология на счете типа хэдж
в такой формулировке мой вопрос однозначный? (воспроизводимый пример под MQl4 выложен выше)
ЗЫ: я не могу забыть слово ордер, к сожалению это слово используется в справке наряду с другими терминами: https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/ctrade/ctraderequestorder