Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 890
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте. Получаю ошибку если 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, а здесь что?
Не подходит, модифицирую по ATR Какие ещё проверки можно сделать для данной ошибки? Все возможные. В мт4 есть STOPLEVEL, а здесь что?
На бирже я не подскажу, тут уж Вы сами. Я не имею доступа к реал бирже.
Добавлено: всегда при ошибке распечатывайте как можно больше информации: Bid, Ask, Last, PriceCurrent, PriceOpen, TakeProfit (текущий и расчётный) ...
Добавлено, добавлено.
Универсальная функция - вызывается после любой торговой операции
Также нужно обновлять цену объекта класса CSymbolInfo непосредственно перед модификацией.
Что в параметры передавать?