Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих" - страница 3
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Попробовал реализовать эксперт из статьи https://www.mql5.com/ru/articles/100 на классах стандартной библиотеки.
То что получилось выкладываю.
К сожалению, идентичной торговли не получилось, так как код из статьи имеет ошибки.
Файл ExpertADX-MA.mq5 нужно положить в Experts\Advisors. - это эксперт
Файл SignalADX-MA.mqh нужно положить в Include\Expert\Signal. - это класс торговых сигналов
Файл TrailingFixedPips.mqh нужно положить в Include\Expert\Trailing (с заменой). - файл из стд. поставки с небольшими изменениями
Файл Expert.mqh нужно положить в Include\Expert (с заменой). - файл из стд. поставки с небольшими изменениями
Изменения стд. поставки пройдут в следующем билде.
PS: В эксперте "прикручен" трал (по просьбам трудящихся).
Для "откручивания", нужно закомментить строку:
if(!ExtExpert.InitTrailing(new CTrailingFixedPips)) return(-3);
в файле ExpertADX-MA.mq5.
Ошибки в коде эксперта в статье Пошаговое руководство по написанию MQL5-советников для начинающих исправлены.
Пожалуйста скачайте обновленный вариант кода советника.В приведенном коде советника
Динамический массив double maVal[] объявлен в глобальной области.
а не в области функции void OnTick()
Предположим советник простоял сутки в работающем режиме.
Вопрос: Что станет с памятью выделенной под динамический массив? Как быстро она забьется мусором?
Или иными словами сформулирую вопрос: В этом случае происходит утечка памяти?
Мы решили хранить значения Stop Loss и Take Profit в определенных ранее переменных STP и TKP. Почему мы это сделали?
Это сделано потому, что значения входных параметров не могут быть модифицированы, они только для чтения.
Мы должны быть уверены в том, что наш советник будет корректно работать со всеми брокерами. Для определения точности цены котировок по текущему символу графика можно воспользоваться.
Удивительный "подход" используют уважаемые и опытные программисты для "решения проблемы" 5-тизнака. А теперь этот "подход" ещё и культивируется среди новичков, в учебной, можно сказать, литературе.
Приведённый автором "подход" полностью сводит на нет всё преимущество 5-тизнака. Вместо того, чтобы объяснить новичку, что введение 5-тизначной котировки даёт возможность установить, например, тейк-профит не 10 пунктов, а 10,5. А также объяснить, что при использовании советника на 5-тизнаке надо указывать тейк-профит не 10 пунктов, а 100. Вместо таких объяснений в программный код вводятся строки, которые программно не дают возможность использовать преимущества 5-тизначных котировок.
"Мы должны быть уверены в том, что наш советник будет корректно работать со всеми брокерами". Ну убедились и дальше что? Как теперь использовать преимущество 5-тизнака, если программно советник это преимущество "приговорил исправно служить".
Удивительный "подход" используют уважаемые и опытные программисты для "решения проблемы" 5-тизнака. А теперь этот "подход" ещё и культивируется среди новичков, в учебной, можно сказать, литературе.
Приведённый автором "подход" полностью сводит на нет всё преимущество 5-тизнака. Вместо того, чтобы объяснить новичку, что введение 5-тизначной котировки даёт возможность установить, например, тейк-профит не 10 пунктов, а 10,5. А также объяснить, что при использовании советника на 5-тизнаке надо указывать тейк-профит не 10 пунктов, а 100. Вместо таких объяснений в программный код вводятся строки, которые программно не дают возможность использовать преимущества 5-тизначных котировок.
"Мы должны быть уверены в том, что наш советник будет корректно работать со всеми брокерами". Ну убедились и дальше что? Как теперь использовать преимущество 5-тизнака, если программно советник это преимущество "приговорил исправно служить".
10,5 - это тот еще аргумент :)
А стандартизация на 4 знака вполне объяснима, если учесть необходимость универсальной работы на счетах с разной точностью.
Возможно если все брокеры будут использовать счета с 5 знаками такой обработки не понадобится (хотя для универсальности кода наличие такого блока не повредит) ИМХО.
А вот как это не дает воспользоваться преимуществами 5-го знака я понять не могу.
Точность данного блока вполне позволяет пользоваться 1-м четырехзначным пунктом (условно "стандартным"), в пересчете на пятизнак выйдет 10 пипсов.
PS
Не думаю большинство брокеров позволят нормально использовать меньшее значение. Даже если позволят и в этом будет необходимость из положения можно будет выкрутиться (пусть даже применив такие странности как 0,1-0,9).
10,5 - это тот еще аргумент :)
А стандартизация на 4 знака вполне объяснима, если учесть необходимость универсальной работы на счетах с разной точностью.
Возможно если все брокеры будут использовать счета с 5 знаками такой обработки не понадобится (хотя для универсальности кода наличие такого блока не повредит) ИМХО.
А вот как это не дает воспользоваться преимуществами 5-го знака я понять не могу.
Точность данного блока вполне позволяет пользоваться 1-м четырехзначным пунктом (условно "стандартным"), в пересчете на пятизнак выйдет 10 пипсов.
PS
Не думаю большинство брокеров позволят нормально использовать меньшее значение. Даже если позволят и в этом будет необходимость из положения можно будет выкрутиться (пусть даже применив такие странности как 0,1-0,9).
При 4-хзнаках цена изменяется на 0,0001, при 5-ти - на 0,00001.
На 4-хзнаке нет возможности сделать возможным закрыться по тейку через 10,5 стандартных пунктах, а на 5-тизнаке такая возможность есть.
Если программно использовать вышеуказанный блок, то при использоварнии советника на 5-тизнаке возможность изменить, например, тейк на 10,5 стандартных пункта будет отсутствовать. Для скальперов это важно.
Чтобы советник корректно работал на 4-х и 5-тизнаке надо при округлениях программно учитывать значность котировок, а во входных параметрах при задании, например, тейка, вручную учитывать, что 10 стандартных пункта записываются как 100.
В противном случае, если использовать такие блоки, то при переходе с к5-тизнака на 4-хзнак, что придётся делить?
Это же входные параметры, зачем с ними производить "странные" операции преобразования
На 4-хзнаке нет возможности сделать возможным закрыться по тейку через 10,5 стандартных пунктах, а на 5-тизнаке такая возможность есть.
Вы торгуете? Или так, потеоритезировать захтелось?
Очень слабо представляю себе советника, для которого изменение ТП на 0.5 пункта сильно скажется на результатах. Для 99% советников проще и удобнее указывать все значения в 4-хзначных пунктах. А оставшийся 1% нет смысла описывать в общеобразовательных статьях.
Вы торгуете? Или так, потеоритезировать захтелось?
Очень слабо представляю себе советника, для которого изменение ТП на 0.5 пункта сильно скажется на результатах. Для 99% советников проще и удобнее указывать все значения в 4-хзначных пунктах. А оставшийся 1% нет смысла описывать в общеобразовательных статьях.
+1.
Дело не в том с какой точностью торговать, а в том с какой будет звучать эти самые 10,5 и как это будет всех путать (особо начинающих трейдеров).
Пипс по определению самая малая единица изменения цены. Может я не прав?
Да и советников торгующих с ТП и СЛ в 5 пятизначных пункта (0,5 стандартного) вряд ли можно будет часто встретить в реальной жизни.
Я бы даже определил число таких экспертов как 0,1-0,01% от общего числа.
PS
Внутренние расчеты производимые по итогам торговых операций тут в расчет не берутся (каждый может округлять до необходимой точности).
Приведённый автором "подход" полностью сводит на нет всё преимущество 5-тизнака. Вместо того, чтобы объяснить новичку, что введение 5-тизначной котировки даёт возможность установить, например, тейк-профит не 10 пунктов, а 10,5. А также объяснить, что при использовании советника на 5-тизнаке надо указывать тейк-профит не 10 пунктов, а 100. Вместо таких объяснений в программный код вводятся строки, которые программно не дают возможность использовать преимущества 5-тизначных котировок.
Полностью поддерживаю автора данного замечания.
Кому надо, тот и до 3-го знака себе округлит. Но делать это в общем случае - грубая ошибка.
Чем выше точность - тем лучше, и сводить ее на нет для всех какими-то своими сугубо субъективными взглядами практического использования не стоит.
P.S. В общем случае SL и TP задаются не в абсолютных значениях (как это везде принято), а в относительных. Тогда проблемы пипсов, 5-и знаков, пипсодолларов и остальной надуманной хрени отпадают сами собой.
abolk, hrenfx, о чём, собственно говоря, спор-то? Читаем внимательно название статьи: "... для начинающих". Статья полностью оправдывает своё предназначение, как названием, так и содержанием. Поверьте на слово, для начинающих глубоко по барабану, какова точность округления у эксперта, основной подход: "нам бы с написанием советника разобраться". Пусть хоть 2 знака, хоть 7 знаков. Лично для меня, как для начинающего, фишка с "округлением" до 4 знаков (правда, в другой статье) оказалась очень полезной, раскрыв один из приёмов программирования. А с набором опыта высококвалифицированые специалисты сами смогут решить, с какой точностью производить вычисления/торговлю, и обсуждаемая статья никак не сможет им в этом помешать. Вам же эта статья никак не помешала :) Так и другие: "дорастут до вашего уровня - сами разберутся".
Ещё раз обращаю внимание: автор статьи не навязывает своё видение вопроса и не ставит на обсуждение ценность использования 4- или 5-знака. Автор всего лишь помогает новичкам освоить первоначальные шаги программирования на MQL5, с использованием тех или иных приёмов программирования.