Ошибки, баги, вопросы - страница 2411
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пожалуйста запустите этот код: Multicurrency iMA Trend 2.
В настройках (параметр Symbols) указать "EURUSD,GBPUSD").
У меня на конфигурации
все SL закрывались по ценам своего символа. То есть ошибок перехлёста цен нет.
Пожалуйста запустите этот код: Multicurrency iMA Trend 2.
В настройках (параметр Symbols) указать "EURUSD,GBPUSD").
У меня на конфигурации
все SL закрывались по ценам своего символа. То есть ошибок перехлёста цен нет.
Спасибо, ошибка локализована. Пост ниже.
тут 2 ошибки.
№1. Ваша ошибка. Где-то в коде. Вы устанавливаете СЛ для позиции по EURUSD используя цену GBPUSD. Терминал против этого ничего не должен иметь.
№2. Баг терминала. Если этот СЛ срабатывает по несуществующей на тот момент цене в потоке EURUSD, используя цену GBPUSD.
https://www.mql5.com/ru/docs/constants/structures/mqltraderequest
Видимо при отправке запроса на модификацию, приоритет имеет поле position а не symbol. Распечатайте req.position
Да, вы оказались правы, моя ошибка логическая:
в структуре:
MqlTradeRequest m_request;
m_request.position = #3
m_request.symbol = GBPUSD
m_request.sl = 1.60704
фактический номер позиции для GBPUSD #4
при выполнении OrderSend тестер устанавливает стоп для символа, соответствующего позиции #3, это eurusd.
Ошибки тестера:
- не проверяет соответствие m_request.position и m_request.symbol;
- устанавливает стоп 1.60704 для бай позиции, символ eurusd, у которого текущая цена 1.30935;
- на следующем тике исполняет стоп по цене 1.60704, хотя фактическая цена 1.30935.
Всем спасибо. Надеюсь разработчики платформы увидят пост.
Да, вы оказались правы, моя ошибка логическая:
в структуре:
MqlTradeRequest m_request;
m_request.position = #3
m_request.symbol = GBPUSD
m_request.sl = 1.60704
фактический номер позиции для GBPUSD #4
при выполнении OrderSend тестер устанавливает стоп для символа, соответствующего позиции #3, это eurusd.
Ошибки тестера:
- не проверяет соответствие m_request.position и m_request.symbol;
- устанавливает стоп 1.60704 для бай позиции, символ eurusd, у которого текущая цена 1.30935;
- на следующем тике исполняет стоп по цене 1.60704, хотя фактическая цена 1.30935.
Всем спасибо. Надеюсь разработчики платформы увидят пост.
Исполнение стопа для бай позиции по 1.60704 при текущей цене 1.30935 не является ошибкой. А вот установка для бай стопа на уровень 1.60704 при текущей цене 1.30935 это ошибка.
Билд 2007
Функция:
в переменную profit должна по идее выдавать финансовый результат сделки, но получается всегда 0.0, причем в переменной lot всегда корректное значение.
Ошибка? - или я делаю что то не так
Билд 2007
Функция:
в переменную profit должна по идее выдавать финансовый результат сделки, но получается всегда 0.0, причем в переменной lot всегда корректное значение.
Ошибка? - или я делаю что то не так
DEAL_ENTRY_OUT или INOUT надо смотреть. У сделок _IN профит 0
DEAL_ENTRY_OUT или INOUT надо смотреть. У сделок _IN профит 0
ну так берётся же первая с конца списка, должна быть OUT
ну так берётся же первая с конца списка, должна быть OUT
Если в endDate передаете TimeCurrent(), то замените на TimeCurrent()+60 или как-то так. Должно помочь.
Если в endDate передаете TimeCurrent(), то замените на TimeCurrent()+60 или как-то так. Должно помочь.
нет, так же 0.0
нет, так же 0.0
Тогда дебажте. Печатайте тикеты сделок и смотрите в тестере что там выбирается на самом деле. Фильтр по типу сделки все-таки добавьте.