Обсуждение статьи "Изучение Стандартной библиотеки MQL5 (Часть 3): Советник на основе канала стандартного отклонения"
В вашем коде, когда `UseMeanReversion = false`, значение tp должно быть выше, чем g_upper, не так ли?
if (EnableBuys) { bool buySignal = false; if (UseMeanReversion) { // Покупка на основе возврата к среднему значению: отскок от минимума (текущее значение > минимум, предыдущий минимум <= минимум) double prevLow = iLow(_Symbol, PERIOD_CURRENT, 1); buySignal = (bid > g_lower && prevLow <= g_lower); } else { // Покупка при прорыве: прорыв выше верхней границы buySignal = (ask > g_upper); } if (buySignal) { double entry = ask; double sl = NormalizeDouble(g_lower - (SLBuffer * point), digits); double tp = NormalizeDouble(g_upper, digits); // Настроить SL в соответствии с минимальным расстоянием if (entry - sl < minDist) sl = NormalizeDouble(entry - minDist, digits); // Проверить минимальное расстояние TP if (tp - entry < minDist) { Print("TP too close for buy (dist=", (tp - entry)/point, " < ", minDist/point, ") - skipping"); } else if (trade.Buy(LotSize, _Symbol, entry, sl, tp, "Channel Buy")) { Print("Buy order placed: Entry=", entry, " SL=", sl, " TP=", tp, " (TP > SL)"); } else { Print("Buy order failed: ", trade.ResultRetcode(), " - ", trade.ResultRetcodeDescription()); } } }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Опубликована статья Изучение Стандартной библиотеки MQL5 (Часть 3): Советник на основе канала стандартного отклонения:
Цель исследователя — глубже изучить вещи, поэкспериментировать и в процессе прийти к новым идеям. В предыдущем обсуждении я стремился упростить этот путь, заложив основу и изложив процедуру интеграции классов в советники. Главная цель заключалась в изучении интерфейсов классов, чтобы понять их назначение — и, таким образом, осознать, как комментарии разработчиков могут значительно упростить процесс обучения.
В заключение я подвел итог основным шагам работы с классами стандартной библиотеки. Одним из ключевых преимуществ, которое бросается в глаза, является исчерпывающая документация по MQL5. Как и в других языках программирования, документация MQL5 образует полную базу знаний. Фактически, весь веб-сайт MQL5, включая статьи, форумы, книги и кодовую базу, в совокупности служит богатым источником справочных материалов. Каждый раздел призван помочь разработчикам и трейдерам решать практические задачи в алгоритмической торговле.
Сегодняшняя задача — создать советник, который торгует, используя каналы, основанные на волатильности. Для этого мы изучим класс CChartObjectStdDevChannel, который поможет нам не только создать функциональный советник, но и глубже изучить стандартную библиотеку. Всегда есть чему поучиться, даже из существующего кода — ведь каждый эксперимент открывает путь к новым идеям.
Представьте себе сегодняшнюю задачу как головоломку: итоговая картина — это наш советник, а наша задача — собрать кусочки воедино, используя концепции и заметки из предыдущего обсуждения.
Автор: Clemence Benjamin