Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дополнил свой предыдущий ответ.
Все, что Вам нужно, это выбрать позицию, и сразу запросить ее СЛ. Это все. Никаких обращений ни к ордерам, ни к сделкам не требуется.
В том то и дело, что выбираю открытую позицию и пытаюсь узнать её актуальный стоп лосс, с помощью следующего кода:
Где, напоминаю, Ticket, это идентификатор открытой позиции. Но функция PositionSL = PositionGetDouble(POSITION_SL) даёт почему-то первоначальный стоп лосс, а не тот, который существует на данный момент. Что я, собственно и пытаюсь донести в данной теме.В том, то и дело, что выбираю открытую позицию и пытаюсь узнать её актуальный стоп лосс, с помощью следующего кода:
Где, напоминаю, Ticket, это идентификатор открытой позиции. Но функция PositionSL = PositionGetDouble(POSITION_SL) даёт почему-то первоначальный стоп лосс, а не тот, который существует на данный момент. Что я, собственно и пытаюсь донести в данной теме.Вот Вы сначала попробуйте выбрать позицию не по своему тикету, а по символу или индексу в списке позиций и запросить СЛ.
Вот если не получится - тогда будем думать дальше...
Но функция PositionSL = PositionGetDouble(POSITION_SL) даёт почему-то первоначальный стоп лосс, а не тот, который существует на данный момент. Что я, собственно и пытаюсь донести в данной теме.
Функция вызывается сразу после модификации? На обновление данных по изменениям в позах нужно время.
Вот Вы сначала попробуйте выбрать позицию не по своему тикету, а по символу или индексу в списке позиций и запросить СЛ.
Вот если не получится - тогда будем думать дальше...
По символу выбирать не стал, так как на графике может быть много позиций. Сделал следующие:
Теперь, работает. Спасибо, Алексей!
Но не понимаю, почему при выборе позиции непосредственно по тикету это не работает, ведь, по идее, должно же? И почему нельзя получить актуальный СЛ из истории, как это сделано в MQL4?
По символу выбирать не стал, так как на графике может быть много позиций. Сделал следующие:
Спасибо, Алексей!
Но не понимаю, почему при выборе позиции, непосредственно, по тикету это не работает, ведь, по идее, должно же?
По идее - должно. Я бы рекомендовал Вам сделать распринтовку в случае получения некорректного СЛ. Т.е. получили "левый" СЛ - принт сохраненного тикета и тикетов всех существующих позиций.
С чем его сравнивать, чтобы узнать, корректный он или нет, если способ получения актуального СЛ всего один?
С чем его сравнивать, чтобы узнать, корректный он или нет, если способ получения актуального СЛ всего один?
Вы открыли позицию... получили ее тикет. Сохранили тикет. Дальше, при обращении к позиции по тикету (если обязательно нужно обращаться к позиции именно так)- смотрите, есть ли вообще позиция с таким тикетом. Если нет, смотрите, с какими тикетами есть вообще позиции по нужному символу/маджику.
Ищите где затык. Текущие стопы должны быть доступны без проблем.
Вы открыли позицию... получили ее тикет. Сохранили тикет. Дальше, при обращении к позиции по тикету (если обязательно нужно обращаться к позиции именно так)- смотрите, есть ли вообще позиция с таким тикетом. Если нет, смотрите, с какими тикетами есть вообще позиции.
Ищите где затык. Текущие стопы должны быть доступны без проблем.
Думаю, данный способ получения СЛ должен работать корректно. Тем более, у меня в советнике пока только один ордер. С тикетом работаю, потому, что может понадобится доливка или сетка, тогда будет много позиций. Если, какую-то позицию нельзя выбрать по тикету, то значит она была закрыта, либо по стопу/тейку, либо пользователем. И искать её следует в истории с помощью события OnTrade. Но стоп лосс её все равно был записан функцией GetPositionSL() в OnTick, когда позиция была в рынке. Если одного тикета нет среди позиций, то функция завершится досрочно. Вроде, лагов быть не должно.
А так понимаю идёт речь об этой проблеме:
Как это не отражаются? Все изменения можно отследить по истории.