Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 890
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть такой советник который позволяет определить момент, когда сработал отложенный ордер
https://www.mql5.com/ru/code/17610
С помощью него получаю тикет ордера SELL_STOP
Код соотвецтвено изменил на
Все хорошо до определенного момента. Пока в истории не появится другой тип ордера.
Например SELL_LIMIT.
Как только в истории появляется SELL_LIMIT я уже не могу получить тикет последнего SELL_STOP.
Советник выкидывает ошибку.
The order 9 is not pending
Хотя в истории то есть SELL_STOP
И при чем тут 9ый если мне тикет 7го нужен
Здравствуйте. Получаю ошибку если StopLoss_=0
failed modify #2 sell 3.00 Si-9.18 sl: 0, tp: 62749 -> sl: 0, tp: 62774 [Invalid stops]
Здравствуйте. Получаю ошибку если StopLoss_=0
failed modify #2 sell 3.00 Si-9.18 sl: 0, tp: 62749 -> sl: 0, tp: 62774 [Invalid stops]
Ошибочная логика написания программы.
При StopLoss_=0 срабатывает верхнее условие - попытка модификации TakeProfit. Ошибка в том, что Вы отнимаете от ЦЕНЫ ОТКРЫТИЯ - при этом уровень TakeProfit может оказаться ВЫШЕ ТЕКУЩЕЙ ЦЕНЫ, а это ошибка.
В Вашем случае нужно отнимать от ТЕКУЩЕЙ ЦЕНЫ (m_position.PriceCurrent).
Была открыта позиция sell, активировался selllimit, мне нужно перенести tp относительно новой цены позиции, а не относительно текущей цены.
Какую проверку нужно сделать чтобы не пытаться модифицировать на недопустимую цену?
Была открыта позиция sell, активировался selllimit, мне нужно перенести tp относительно новой цены позиции, а не относительно текущей цены.
Какую проверку нужно сделать чтобы не пытаться модифицировать на недопустимую цену?
Проверка:
if(m_position.PriceOpen()-ExtTakeProfit<m_position.PriceCurrent() { m_trade.PositionModify(m_position.Ticket(), m_position.StopLoss(), m_symbol.NormalizePrice(m_position.PriceOpen()-ExtTakeProfit) ); ...
Проверка:
Спасибо, но ошибка осталась.
Может быть недопустимо близко к текущей цене. Как это проверить?
Спасибо, но ошибка осталась.
Может быть недопустимо близко к текущей цене. Как это проверить?
У меня нет доступа к бирже, поэтому или сами или работайте на форексных инструментах. Извините.
Добавлено: введите ещё одну проверку - для позиции Sell новый TakeProfit (расчётное значение) не должен быть ВЫШЕ или РАВЕН текущему TakeProfit позиции.
У меня нет доступа к бирже, поэтому или сами или работайте на форексных инструментах. Извините.
Добавлено: введите ещё одну проверку - для позиции Sell новый TakeProfit (расчётное значение) не должен быть ВЫШЕ или РАВЕН текущему TakeProfit позиции.
Наверно, цене открытия (POSITON_PRICE_OPEN) ?
Наверно, цене открытия (POSITON_PRICE_OPEN) ?
Этот вариант был выше. Смотрите сообщения выше. Вы ответили в середине беседы.
Не подходит, модифицирую по ATR Какие ещё проверки можно сделать для данной ошибки? Все возможные. В мт4 есть STOPLEVEL, а здесь что?