Как разработать торговую систему на основе Bollinger Bands

Mohamed Abdelmaaboud | 6 апреля, 2022

Введение

В трейдинге есть множество разных инструментов и методов, которые можно использовать для достижения торговых целей. Использовать такие инструменты стоит в зависимости от рыночных условий. 

Один из методов — торговля по полосам. Основная концепция при торговле по полосам — совершать сделки внутри коридора, образованного двумя полосами. Одним из таких инструментов является индикатор Bollinger Bands. Это один из самых популярных и наиболее часто используемых индикаторов в мире технического анализа и торговли.

В этой статье мы поговорим об индикаторе Полос Боллинджера, познакомимся с тем, как он рассчитывается и как эффективно использовать его для торговли. По результатам вы научитесь использовать этот индикатор в соответствии со своей стратегией. Также мы разработаем собственную торговую систему на основе индикатора Bollinger Bands. В ходе этой статьи мы пройдем по следующим темам:

  1. Определение полос Боллинджера
  2. Стратегии торговли по полосам Боллинджера
  3. Разработка системы на основе стратегии по полосам Боллинджера
  4. Заключение
  5. Литература

Мы узнаем, как индикатор измеряет разброс данных вокруг среднего значения и как с этим работать. Индикатор был создан Джоном Боллинджером. Индикатор состоит из двух линий, которые строятся вокруг 20-дневной скользящей средней — таким образом измеряется разброс данных (в данном случае цен) вокруг среднего значения (скользящей средней). 

Может показаться, что полосы Боллинджера очень похожи на индикатор Envelopes (Огибающие линии, Конверты), который также состоит из двух полос выше и ниже цены. Но разница между этими двумя индикаторами состоит в том, что линии Конвертов строятся на фиксированном расстоянии (%) от скользящей средней, в то время как линии Боллинджера могут удаляться и приближаться к ней в зависимости от определенного числа стандартных отклонений. Об этих и других особенностях рассказывается в разделе «Определение полос Боллинджера».

Также мы посмотрим, как лучше использовать индикатор полос Боллинджера в торговле — об этом поговорим в разделе «Стратегии торговли по полосам Боллинджера».

Затем разберем, как использовать стратегии в автоматических системах алгоритмической торговли.


Предупреждение: 

Для установки платформы MetaTrader 5 на компьютер скачайте дистрибутив по ссылке: https://www.metatrader5.com/en/download. После установки вы увидите такое окно терминала MetaTrader 5:

Платформа MetaTrader 5


Чтобы открыть редактор кода MetaEditorб нажмите F4 при открытом терминале MetaTrader 5 или в меню Сервис выберите пункт MetaQuotes Language Editor. На картинках ниже показано, как открыть редактор кода MetaEditor:

MetaEditor способ 1


MetaEditor способ 2

Открытое окно редактора исходного кода MetaEditor выглядит так: 

Окно редактора MetaEditor


Далее нужно создать новый файл, как это показано на изображении:

MetaEditor - новый файл

  1. Создать новый файл для написания советника
  2. Создать новый файл для написания пользовательского индикатора
  3. Создать новый файл для написания скрипта

Дополнительную информацию можете прочитать в моей предыдущей статье по ссылке: https://www.mql5.com/ru/articles/10293.

Я часто люблю говорить, что программирование — замечательный инструмент, который делает нашу жизнь проще и четче, позволяя точно автоматизировать необходимые действия. Вот почему важно инвестировать в эту область, развиваться в ней, учиться правильно использовать все возможности для достижения желаемых целей в различных сферах жизни.

Что касается торговли, то представьте, какой легкой и приятной может быть жизнь, если передать инструкции компьютеру, указать что и когда делать. Компьютер будет делать в точности то, что вы велели, без каких-либо возражений, а вы сможете заняться чем-то более приятным. Поэтому уделим немного времени на изучение программирования и написания автоматических программ.

Примечание

Все содержание настоящей статьи предназначено только для целей обучения и не предназначено для других целей. Все, что вы применяете на практике на основе этой статьи, вы делаете исключительно на свой страх и риск, автор не гарантирует никаких результатов.

Давайте перейдем к изучению.


Определение полос Боллинджера

Идея торговли по лентам довольно распространена, появилась она давно и используется в разных инструментах. В основном смысл таких методов заключается в построении линий выше и ниже некоторой меры тренда. 

Например, можно построить линии, удаленные от скользящей средней на определенное значение в процентах, как в Конвертах. Также существуют каналы, образованные двумя параллельными линиями выше или ниже цены, позволяющие определять точки разворота. Но недостатком таких методов является то, что все они фиксированы и не реагируют на движение цен. Другими словами, они не расширяются, не сужаются и не изменяются ни при каком движении цены.

Специфика расчета индикатора Bollinger Bands позволяет индикатору быть адаптивным. Далее мы рассмотрим, как же рассчитывается индикатор.

На рисунке ниже показан другой индикатор, работающий по полосам - Конверты, или Огибающие линии:

EURUSDH1 - Envelopes

Как видите, у нас есть две полосы, которые окружают цену: нижняя проходит под ценой, а верхняя — над ней. Я хочу показать, что есть множество различных торговых стратегий, основанных на подобных полосах. 

Есть также много готовых решений и вариантов. Один из вариантов — полосы Боллинджера. Он отличается от ранее упомянутых методов тем особенностью расчета, позволяющей полосам сближаться и расходиться.

Индикатор Bollinger Bands создан в начале 1980-х годов Джоном Боллинджером, известным специалистом в области финансовых рынков и трейдинга. Он дипломированный финансовый аналитик и дипломированный специалист по рынкам.

Bollinger Bands — популярный технический индикатор, измеряющий волатильность. Он может расширяться и сжиматься в зависимости от состояния рынка. Можно использовать на любых финансовых рынках — форекс, акции и т.д. Как этот индикатор строится:

Как уже сказано выше, построение любых полос надо начинать с некоторой меры центрального тренда. А выше и ниже ее строятся полосы. В индикаторе Bollinger Bands такой центральной мерой является простая скользящая средняя, а интервал определяется мерой волатильности скользящего стандартного отклонения.

Индикатор Bollinger bands:

Ниже показана формула расчета индикатора Bollinger Bands:

Расчет BB

Посмотрим на пример расчета полос Боллинджера:
Допустим, у нас есть цены закрытия за 20 торговых дней:
   Номер дня   
   Цена закрытия $  
1 20
2 30
3 35
 4 30 
 5 40 
6 45
7 50
8 55
9 40
10 45
11 50
12 35
13 40
14 50
15 60
16 65
17 70
18 60
19 70
20 75

Расчет BB

Для этих цен расчет индикатора будет таким:

     Пример расчета BB


    Пример расчета BB 1


    Настройка параметров:

    Можно ли использовать другие настройки индикатора Bollinger Bands, подогнать их под торговую стратегию и конкретные цели? Да, конечно, но надо всегда проверять и тестировать любые настройки, чтобы получить хороший результат. Кроме того, Боллинджер рекомендует сделать небольшую корректировку множителя стандартного отклонения. Также надо помнить, что изменение периода скользящей средней влияет на период, используемый для расчета стандартного отклонения. Боллинджер предлагает увеличить множитель стандартного отклонения до 2,1 в случае использования 50-периодной простой скользящей средней, и уменьшить его до 1,9, если используем 10-периодную простую скользящую среднюю. 

    Благо, это не нужно рассчитывать вручную, ведь есть готовый индикатор, который идет в стандартной поставке платформы MetaTrader 5. Далее на картинках показано, как прикрепить индикатор на график. В терминале MetaTrader 5 через меню "Вставка":

    1- запуск индикатора BB на графике

    Затем выбираем Индикаторы -> Трендовые -> Bollinger Bands:

    2- запуск индикатора BB на графике

    После выбора индикатора откроется окно с параметрами. В нем показаны параметры индикатора по умолчанию. Что здесь можно настроить:

    1. Период расчета скользящей средней.
    2. Параметр отклонения для настройки верхней и нижней полосы.
    3. Применить к: тип цены, которая будет использоваться для расчетов (закрытия, открытия, максимальная, минимальная, медианная, типичная, взвешенная).
    4. Стиль: стиль отображения индикатора на графике (цвет, вид и толщина линий).
    5. Сдвиг: смещение индикатора.

    Настройте эти параметры в соответствии с вашей стратегией.


    3- параметры индикатора BB

    После настройки и нажатия на ОК индикатор появится на графике. Выглядит он как показано на рисунке:


    Индикатор BB на графике EURUSDH1


    На рисунке видно, две линии (полосы Боллинджера) окружают цену — одна идет ниже среднего значения, а другая — выше. 

    Стратегии торговли по полосам Боллинджера

    В этой части поговорим о стратегиях на основе полос Боллинджера, о том, как использовать индикатор в торговле.

    Индикатор Bollinger Bands подходит для использования в различных рыночных условиях и при разных движениях рынка: при растущем тренде, падающем и во флэте. Для каждого типа рыночных условий есть множество разных стратегий. Здесь рассмотрим некоторые из них.

    Сначала мы используем скользящую среднюю, чтобы понять, как цены двигаются во время восходящего тренда. Итак, при растущем тренде цены большую часть времени двигаются выше своего среднего значения (скользящей средней).

    В нашем случае при растущей тенденции большую часть времени цены будут двигаться между скользящей средней и верхней полосой. Цены будут образовывать более высокие минимумы и более высокие максимумы, а на рынок оказывают влияние покупатели.

    Восходящий тренд

    Восходящий тренд


    В данном случае индикатор Bollinger bands может помочь определить тренд вверх по положению цены относительно его и средней. На рисунке ниже показан пример такой ситуации: цены находятся в зеленой зоне, двигаются между скользящей средней и верхней полосой — тренд растущий:

    EURUSDWeekly - индикатор BB, тренд вверх

    Согласно этой стратегии, можно действовать так:

    EURUSDWeekly - индикатор BB, стратегия при росте

    Сначала мы используем скользящую среднюю, чтобы понять, как цены двигаются во время падающего тренда. Итак, при тренде вниз цены большую часть времени двигаются выше ниже среднего значения (скользящей средней).

    В нашем случае при падающей тенденции большую часть времени цены будут двигаться между скользящей средней и нижней полосой. Цены будут образовывать более низкие минимумы и более низкие максимумы, а на рынок оказывают влияние продавцы, которые двигают его вниз.

    Нисходящий тренд

    Нисходящий тренд

    В данном случае индикатор Bollinger bands может помочь определить тренд вниз по положению цены относительно его нижней полосы и скользящей средней. На рисунке ниже показан пример такой ситуации: цены находятся в красной зоне, двигаются между скользящей средней и нижней полосой — тренд растущий:

    EURUSDDaily - индикатор BB, тренд вниз

    Согласно этой стратегии, можно действовать так:

    EURUSDDaily - индикатор BB, стратегия при тренде вниз

    Для начала нужно понять, как определить флэт/боковое движение. В целом, это любое другое движение, которое нельзя определить как растущий или падающий тренд.

    Боковое движение обозначает баланс между покупателями и продавцами, никто из них явно не превалирует. Вот примеры таких боковых движений:

    Боковое движение 1

    Боковое движение 2

    Боковое движение 3

    Боковое движение 4

    Ниже приведен реальный пример такого флэта. Ясно видно, что цены в зеленой зоне движутся в боковом направлении без четкого направления вверх или вниз:

     Боковое движение 


    Есть и другие варианты бокового тренда, но достаточно запомнить, что это любой другое движение, кроме тренда вверх и вниз.


    Теперь посмотрим, что бывает со скользящей средней при боковом флэте. Цена будет колебаться вокруг нее и постоянно пересекать вверх и вниз. На рисунке ниже показан пример:

     MA и флэт

    А как цена будет вести себя относительно индикатора Bollinger Bands? Цена будет двигаться между нижней и верхней полосой:

    GBPUSD1H - BB при флэте

    Поскольку цена двигается между полосами, стратегия торговли будет такой: покупаем на нижней полосе, тейк-профит ставим на верхней или наоборот, открываем короткую на верхней и фиксируем тейк-профит ставим на нижней.

    GBPUSD1H - BB и стратегия при флэте


    На картинке выше:

    Разработка системы на основе стратегии по полосам Боллинджера

    В этой части научимся разрабатывать системы алгоритмической торговли на основе индикатора Bollinger Bands, напишем код. Будем программировать три торговые стратегии, о которых говорили ранее (тренд вверх, тренд вниз и флэт).

    Для себя вы можете разработать любую торговую систему, от простой до продвинутой. Например, можно разработать простую торговую систему, которая будет генерировать простой сигнал на основе основной концепции, и совершать действия в соответствии с этим сигналом. Или же можно написать продвинутую торговую систему, которая будет не только генерировать сигнал, но и скомбинирует его с другими концепциями и исполнит его автоматически. Есть множество разных подходов. В рамках данной статьи поработаем с простыми торговыми системами — мы их создадим просто с целью изучения концепции и возможностей. На основе этих знаниях вы сможете разработать аналогичные системы или собственную торговую систему на своих условиях. Надеюсь, статья окажется для вас полезной и поможет вам в достижении ваших торговых или инвестиционных целей.

    Во-первых, напишем чистый код полос Боллинджера, который позволит отображать на графике три комментария со значением скользящей средней, значением верхней полосы и значением нижней полосы.

    Вот такой получается код:

    //+------------------------------------------------------------------+
    //|                                       Simple Bollinger Bands.mq5 |
    //|                                  Copyright 2022, MetaQuotes Ltd. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    
    //+------------------------------------------------------------------+
    //| Тиковая функция эксперта                                         |
    //+------------------------------------------------------------------+
    void OnTick()
      {
       //создаем массив цен
       double MiddleBandArray[];
       double UpperBandArray[];
       double LowerBandArray[];
       
       //сортируем массив цен от текущей свечи вниз
       ArraySetAsSeries(MiddleBandArray,true);
       ArraySetAsSeries(UpperBandArray,true);
       ArraySetAsSeries(LowerBandArray,true);
       
       //define Bollinger Bands
       int BollingerBands = iBands(_Symbol,_Period,20,0,2,PRICE_CLOSE);
       
       //копируем данные о цене в массив
       CopyBuffer(BollingerBands,0,0,3,MiddleBandArray);
       CopyBuffer(BollingerBands,1,0,3,UpperBandArray);
       CopyBuffer(BollingerBands,2,0,3,LowerBandArray);
       
       //рассчитываем для текущей свечи
       double MiddleBandValue=MiddleBandArray[0];
       double UpperBandValue=UpperBandArray[0];
       double LowerBandValue=LowerBandArray[0];
       
       //комментарии на графике
       Comment("MiddleBandValue: ",MiddleBandValue,"\n",
       "UpperBandValue: ",UpperBandValue,"\n","LowerBandValue: ",LowerBandValue,"\n");
       
      }
    //+------------------------------------------------------------------+
    
    

    После того, как мы написали код и скомпилировали его, надо убедиться, что в коде нет ошибок или предупреждений:

    1- SBB - нет ошибок

    Далее находим файл в окне навигатора и перетаскиваем его на график или запускаем двойным кликом:

     2- SBB - файл


    3- SBB - исполнение в окне


    На рисунке ниже показан график с запущенной на нем программой:

    4- SBB на графике

    Теперь перейдем к простым стратегиям на основе индикатора Bollinger Bands.
    Стратегия 1:

    Схема стратегии Bollinger Bands для растущего тренда

    Вот такой получается код:

    //+------------------------------------------------------------------+
    //|                                          Uptrend BB strategy.mq5 |
    //|                                  Copyright 2022, MetaQuotes Ltd. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    //+------------------------------------------------------------------+
    //| Тиковая функция эксперта                                         |
    //+------------------------------------------------------------------+
    void OnTick()
      {
       //определим Ask, Bid
       double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
       double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
       
       //создаем массив цен
       double MiddleBandArray[];
       double UpperBandArray[];
       double LowerBandArray[];
       
       //сортируем массив цен от текущей свечи вниз
       ArraySetAsSeries(MiddleBandArray,true);
       ArraySetAsSeries(UpperBandArray,true);
       ArraySetAsSeries(LowerBandArray,true);
       
       //define Bollinger Bands
       int BollingerBands = iBands(_Symbol,_Period,20,0,2,PRICE_CLOSE);
       
       
       //копируем данные о цене в массив
       CopyBuffer(BollingerBands,0,0,3,MiddleBandArray);
       CopyBuffer(BollingerBands,1,0,3,UpperBandArray);
       CopyBuffer(BollingerBands,2,0,3,LowerBandArray);
       
       //рассчитываем для текущей свечи
       double MiddleBandValue=MiddleBandArray[0];
       double UpperBandValue=UpperBandArray[0];
       double LowerBandValue=LowerBandArray[0];
       
       //генерируем сигнал на покупку если цены > MA
       if (
          (Ask>=MiddleBandArray[0])
       && (Ask<UpperBandArray[0])
          )
             {
             Comment("BUY");
             }
        
       //проверка наличия сигнала тейк-профита      
       if (
          (Bid>=UpperBandArray[0])
          )
             {
             Comment("TAKE PROFIT");
             }  
       
          //проверка отсутствия сигнала      
       if (
          (Ask<MiddleBandArray[0])
          )
             {
             Comment("NO SIGNAL");
             }  
      }
    //+------------------------------------------------------------------+
    

    По этой стратегии получаются такие сигналы:

    Восходящий тренд BB - покупка


    Восходящий тренд BB - тейк профит

    Восходящий тренд BB - нет сигнала

    Шаги получаются такие:

    5- UBB - нет ошибок

     6- UBB файл


    7- UBB окно исполнения


    На рисунке ниже показано окно после запуска нашего кода. Программа работает на графике:

    8- UBB программа запущена на графике

    Стратегия 2:

    Схема стратегии Bollinger Bands для падающего тренда

    Вот такой получается код:

    //+------------------------------------------------------------------+
    //|                                        Downtrend BB strategy.mq5 |
    //|                                  Copyright 2022, MetaQuotes Ltd. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    //+------------------------------------------------------------------+
    //| Тиковая функция эксперта                                         |
    //+------------------------------------------------------------------+
    void OnTick()
      {
       //определим Ask, Bid
       double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
       double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
       
       //создаем массив цен
       double MiddleBandArray[];
       double UpperBandArray[];
       double LowerBandArray[];
       
       //сортируем массив цен от текущей свечи вниз
       ArraySetAsSeries(MiddleBandArray,true);
       ArraySetAsSeries(UpperBandArray,true);
       ArraySetAsSeries(LowerBandArray,true);
       
       //define Bollinger Bands
       int BollingerBands = iBands(_Symbol,_Period,20,0,2,PRICE_CLOSE);
       
       
       //копируем данные о цене в массив
       CopyBuffer(BollingerBands,0,0,3,MiddleBandArray);
       CopyBuffer(BollingerBands,1,0,3,UpperBandArray);
       CopyBuffer(BollingerBands,2,0,3,LowerBandArray);
       
       //рассчитываем для текущей свечи
       double MiddleBandValue=MiddleBandArray[0];
       double UpperBandValue=UpperBandArray[0];
       double LowerBandValue=LowerBandArray[0];
       
       //генерируем сигнал на продажу если цена < MA
       if (
          (Bid<=MiddleBandArray[0])
       && (Bid>LowerBandArray[0])
          )
             {
             Comment("SELL");
             }
        
       //проверка наличия сигнала тейк-профита      
       if (
          (Ask<=LowerBandArray[0])
          )
             {
             Comment("TAKE PROFIT");
             }  
       
          //проверка отсутствия сигнала      
       if (
          (Bid>MiddleBandArray[0])
          )
             {
             Comment("NO SIGNAL");
             }  
      }
    //+------------------------------------------------------------------+
    

    По этой стратегии получаются такие сигналы:

    Downtrend BB - продажа

    Downtrend BB - тейк-профит

    Downtrend BB - нет сигнала


    Снова выполняем те же шаги:

     9- DBB - нет ошибок

     10- DBB файл


     11- DBB окно исполнения


    Вот как программа выглядит на графике после запуска:

     12- DBB программа запущена на графике



    Стратегия 3:

    Схема стратегии Bollinger Bands для бокового тренда


    Вот такой получается код:

    A - сигнал на покупку генерируется при касании нижней полосы

    //+------------------------------------------------------------------+
    //|                                     Buy sideways BB strategy.mq5 |
    //|                                  Copyright 2022, MetaQuotes Ltd. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    //+------------------------------------------------------------------+
    //| Тиковая функция эксперта                                         |
    //+------------------------------------------------------------------+
    void OnTick()
      {
       //определим Ask, Bid
       double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
       double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
       
       //создаем массив цен
       double MiddleBandArray[];
       double UpperBandArray[];
       double LowerBandArray[];
       
       //сортируем массив цен от текущей свечи вниз
       ArraySetAsSeries(MiddleBandArray,true);
       ArraySetAsSeries(UpperBandArray,true);
       ArraySetAsSeries(LowerBandArray,true);
       
       //define Bollinger Bands
       int BollingerBands = iBands(_Symbol,_Period,20,0,2,PRICE_CLOSE);
       
       
       //копируем данные о цене в массив
       CopyBuffer(BollingerBands,0,0,3,MiddleBandArray);
       CopyBuffer(BollingerBands,1,0,3,UpperBandArray);
       CopyBuffer(BollingerBands,2,0,3,LowerBandArray);
       
       //рассчитываем для текущей свечи
       double MiddleBandValue=MiddleBandArray[0];
       double UpperBandValue=UpperBandArray[0];
       double LowerBandValue=LowerBandArray[0];
       
       //генерируем сигнал на покупку если цены > MA
       if (
          (Ask<=LowerBandArray[0])
          )
             {
             Comment("BUY");
             }
        
       //проверка наличия сигнала тейк-профита      
       if (
          (Bid>=UpperBandArray[0])
          )
             {
             Comment("TAKE PROFIT");
             }  
       
      }
    //+------------------------------------------------------------------+
    
    

    Сигналы, генерируемые этой стратегией:

    Сигнал на покупку по BB боковой тренд

    Тейк-профит для сигнала на покупку по BB боковой тренд


    Далее те же шаги (показаны на скриншотах ниже):

    13- BSBB - ошибок нет

     14- BSBB файл


    15- BSBB окно исполнения


    Вот как программа выглядит на графике после запуска:


     16- BSBB программа запущена на графике

    A - сигнал на продажу генерируется при касании верхней полосы

    Вот такой получается код:
    //+------------------------------------------------------------------+
    //|                                    Sell sideways BB strategy.mq5 |
    //|                                  Copyright 2022, MetaQuotes Ltd. |
    //|                                             https://www.mql5.com |
    //+------------------------------------------------------------------+
    //+------------------------------------------------------------------+
    //| Тиковая функция эксперта                                         |
    //+------------------------------------------------------------------+
    void OnTick()
      {
       //определим Ask, Bid
       double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
       double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
       
       //создаем массив цен
       double MiddleBandArray[];
       double UpperBandArray[];
       double LowerBandArray[];
       
       //сортируем массив цен от текущей свечи вниз
       ArraySetAsSeries(MiddleBandArray,true);
       ArraySetAsSeries(UpperBandArray,true);
       ArraySetAsSeries(LowerBandArray,true);
       
       //define Bollinger Bands
       int BollingerBands = iBands(_Symbol,_Period,20,0,2,PRICE_CLOSE);
       
       
       //копируем данные о цене в массив
       CopyBuffer(BollingerBands,0,0,3,MiddleBandArray);
       CopyBuffer(BollingerBands,1,0,3,UpperBandArray);
       CopyBuffer(BollingerBands,2,0,3,LowerBandArray);
       
       //рассчитываем для текущей свечи
       double MiddleBandValue=MiddleBandArray[0];
       double UpperBandValue=UpperBandArray[0];
       double LowerBandValue=LowerBandArray[0];
       
       //генерируем сигнал на продажу если цена < MA
       if (
          (Bid>=UpperBandArray[0])
          )
             {
             Comment("SELL");
             }
        
       //проверка наличия сигнала тейк-профита      
       if (
          (Ask<=LowerBandArray[0])
          )
             {
             Comment("TAKE PROFIT");
             }  
      }
    //+------------------------------------------------------------------+
    
    

    На рисунках ниже показаны сигналы, генерируемые по этой стратегии:

    Сигнал на продажу по BB боковой тренд

    Тейк-профит для сигнала на продажу по BB боковой тренд


    Далее те же шаги (показаны на скриншотах ниже):

     17- SSBB - ошибок нет


     18- SSBB файл


     19- SSBB окно исполнения


    Вот как программа выглядит на графике после запуска:

    20- SSBB программа запущена на графике


    Заключение

    Концепция торговли по полосам очень интересная, поскольку дает четкое ожидание того, каким будет предстоящее движение. Из этого, несомненно, можно извлечь выгоду. Существует множество методов торговли по полосам, таким как полосы Боллинджера, однако преимущество последнего в том, что здесь полосы могут расширяться и сужаться в зависимости от движения цены, благодаря чему его можнои мы использовать при любых рыночных условиях.

    В этой статье мы рассмотрели концепцию индикатора Bollinger Bands (полосы Боллинджера), их расчет, простые торговые стратегии с использованием индикатора, а также разработали простую торговую систему на основе этих простых стратегий.

    Теперь вы можете разработать собственную стратегию, которая будет подходить для вашего стиля торговли. Надеюсь, статья будет для вас полезной и поможет вам в достижении торговых целей.


    Литература