Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих" - страница 22
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кто-нибудь знает, можно ли использовать этот советник для мини-индексов или мини-долларов?
Привет, ребята, доброе утро.
Я нахожусь в"Тестере стратегий" с этим файлом из конца Руководства, и он показывает следующую ошибку:
*Эта ошибка уже обсуждалась в этой статье, но ни одно из написанных решений не помогло мне, и мне нужна ваша помощь.
Файл находится в конце Руководства.
Как я могу решить эту проблему?
У меня также по-прежнему возникает эта ошибка после внесения обоих предложенных исправлений:
ZeroMemory(mrequest);
а также
if(Buy_opened || Sell_opened)
Пожалуйста, может ли кто-нибудь помочь с ошибкой 4756? Кажется, что не удается разместить ордер на покупку.
Проверьте, использовали ли вы функцию SymbolInfoTick и написали ли вы эту часть кода:
Поскольку PositionSelect выбирает первую позицию для _Symbol, если советник открывает позицию на покупку, переменная Sell_opened всегда будет ложной, пока открыта позиция на покупку, что приводит к реализации нескольких позиций на продажу при каждом сигнале на продажу.
Чтобы исправить это и знать, открыты ли одновременно позиции на покупку и продажу, можно использовать следующую логику:
Всем привет, доброе утро.
Я нахожусь в"Тестере стратегий" с этим файлом из конца руководства и он показывает следующую ошибку:
*ошибка уже обсуждалась в этой статье, но ни одно из написанных решений не помогло мне, и мне нужна ваша помощь.
Файл находится в конце руководства.
Как я могу решить эту проблему?
Проверьте запрашиваемую цену продажи, для этого используйте точку останова для отладки переменных mrequest.price, mrequest.sl и mrequest.tp.
Попробуйте изменить
на:
В некоторых бумагах есть правила минимального стоп-лосса, подробнее здесь: https://www.mql5.com/pt/forum/319474.
Здравствуйте,
Большое спасибо за статью Самуэля, вы просто молодец!
Было немного сложно заставить ее работать с моим брокером, потому что статья находится в режиме "net", и мне пришлось искать информацию, чтобы перевести ее в режим "hedging". Первая проблема, с которой я столкнулся, была связана с mrequest.type_filling .
Для брокера XM работает один из вариантов:
Если вы не знаете, какой тип позволяет ваш MT5, я рекомендую использовать функцию TypeFilling() в Print(TypeFilling()) или Comment( TypeFilling()), и она возвращает тип; если она говорит вам, что это 1 (ORDER_FILLING_FOK) или 2 (ORDER_FILLING_IOC), вы знаете, какой из них вы должны поставить(https://www.mql5.com/docs/constants/tradingconstants/orderproperties#enum_order_type_filling), потому чтоORDER_FILLING_FOK (1) не работает у меня с этим брокером.
Как только это исправлено, проблема заключается в том, что PositionSelect открывает много позиций. Хотя Сэмюэль не говорит об этом в своей стратегии, я понимаю, что цель состоит в том, чтобы открыть одну позицию на покупку или продажу (в зависимости от того, что наступит раньше) с установленными критериями (4 булевых шага) и что пока эта позиция не будет закрыта, мы не сможем открыть другую.
Что я сделал, так это изменил этот код ...
Для этого...
Примечание: Сразу после этого идет строка...
Таким образом, у меня все получилось. Надеюсь, вы найдете его полезным.
С наилучшими пожеланиями.
У меня также по-прежнему возникает эта ошибка после внесения обоих предложенных исправлений:
ZeroMemory(mrequest);
а также
if(Buy_opened || Sell_opened)
Пожалуйста, может ли кто-нибудь помочь с ошибкой 4756? Кажется, что не удается разместить ордер на покупку.
Возможно, тип заполнения вашего брокера ORDER_FILLING_IOC, вы можете попробовать отредактировать код из:
mrequest.type_filling = ORDER_FILLING_FOK;To:
mrequest.type_filling = ORDER_FILLING_IOC;У меня была такая же проблема, и теперь я успешно ее решил