Обсуждение статьи "Пошаговая инструкция для торговли по стратегии Break of Structure (BoS)"

 

Опубликована статья Пошаговая инструкция для торговли по стратегии Break of Structure (BoS):

Подробное руководство по разработке автоматизированного торгового алгоритма на основе стратегии Break of Structure (BoS, прорыв структуры). Дана подробная информация по всем аспектам создания советника на MQL5 и его тестирования в MetaTrader 5 — от анализа ценовых уровней поддержки и сопротивления до управления рисками.

Мы рассмотрим определение стратегии Break of Structure, типы, применение и разработку в MetaQuotes Language 5 (MQL5) для MetaTrader 5. Break of Structure является полезным инструментом, который упрощает прогнозирование движения рынка, позволяет принимать более обоснованные решения и управлять рисками. Статья содержит следующие разделы:

    1. Определение Break of Structure (BoS)
    2. Описание Break of Structure (BoS)
    3. Типы Break of Structure (BoS)
    4. Описание торговой стратегии
    5. План торговой стратегии
    6. Реализация в MetaQuotes Language 5 (MQL5)
    7. Результаты тестера стратегий
    8. Заключение


    Автор: Allan Munene Mutiiria

     
    Узнайте, как создать советник на основе торговой стратегии Break of Structure (BoS) - подхода Smart Money Concept (SMC). Надеемся, что вы найдете его приятным, ясным, легким для понимания и знающим. Добро пожаловать.
     
    Allan Munene Mutiiria торговой стратегии Break of Structure (BoS) - подхода Smart Money Concept (SMC). Надеемся, что вы найдете его приятным, ясным, легким для понимания и знающим. Добро пожаловать.

    Действительно, большое спасибо, полезный код.

     
    wupan123898 #:

    Действительно, большое спасибо, полезный код.

    Большое спасибо за отзыв, за добрый обзор и приветствие.

     

    Спасибо за предоставленную кодовую базу, она действительно очень хороша.

    С минимальными изменениями я адаптировал/изменил.

    Первоначальный результат без добавления какого-либо фильтра действительно впечатляет.


     
    Dragosh Zavadschi #:

    Спасибо за предоставленную кодовую базу, она на самом деле очень хороша.

    С минимальными изменениями я адаптировал/изменил.

    Первоначальный результат без добавления какого-либо фильтра действительно впечатляет.


    @Dragosh Zavadschi спасибо за добрый отзыв и обзор. Это очень приятно. Спасибо.
     

    прочёл по диагонали.

    в коде бросилось в глаза:

    void function() {

    const int localConst = 5; // 

            // some code follows

    }

    так нельзя. Это маскировка "магических" констант

     

    Автор, что-то я недопонял Вас. Ваш скриншот, который показывает восходящую тенденцию, имеет уровни HH и HL. Но скрин, который идёт далее порождает недоразумения. Смотрите:

    Так как же верно выбрать пробиваемый уровень?

     
    Vitaly Murlenko #:

    Автор, что-то я недопонял Вас. Ваш скриншот, который показывает восходящую тенденцию, имеет уровни HH и HL. Но скрин, который идёт далее порождает недоразумения. Смотрите:

    Так как же верно выбрать пробиваемый уровень?

    все подобные стратегии работают (и то не факт) только по днёвкам.

    Внутри дня с его регулярными и резкими всплесками волатильности НЕ РАБОТАЮТ. 

    Но зато по внутри-дня удобно подбирать скриншоты. 

     
    Maxim Kuznetsov #:

    все подобные стратегии работают (и то не факт) только по днёвкам.

    Внутри дня с его регулярными и резкими всплесками волатильности НЕ РАБОТАЮТ. 

    Но зато по внутри-дня удобно подбирать скриншоты. 

    Вопрос был не про это

     
    Серьезные будущие функции, это чистое и простое мошенничество, не знаю, к чему вы стремитесь.

    const int limit = 20; int curr_bar = limit; // = 20

    for (int j=1; j<=length; j++){ right_index = curr_bar - j; // слева: исторический бар (правильно) left_index = curr_bar + j; // справа: будущий бар (серьезно неправильно!!!)

    if ( (high(curr_bar) <= high(right_index)) || (high(curr_bar) < high(left_index)) ){ isSwingHigh = false; } if ( (low(curr_bar) >= low( right_index)) || (low(curr_bar) > low(left_index)) ){ isSwingLow = false; } }