English 中文 Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
preview
Разработка торговой системы на основе индикатора Ишимоку

Разработка торговой системы на основе индикатора Ишимоку

MetaTrader 5Трейдинг | 16 августа 2022, 11:56
2 190 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Введение

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

Работу над индикатором снова разобьем на несколько тем:

  1. Определение индикатора Ишимоку
  2. Стратегия по индикатору Ишимоку
  3. Схема стратегии по индикатору Ишимоку
  4. Торговая система по индикатору Ишимоку
  5. Заключение

В первом разделе узнаем, что же из себя представляет этот индикатор, как он строится, как его можно рассчитать и что он измеряет. Мы изучим индикатор в деталях, чтобы понять саму концепцию, лежащую в его основе. В разделе "Стратегия по Ишимоку" мы изучим простые стратегии, основанные именно на этой концепции индикатора. Кроме того, мы разработаем пошаговые схемы для каждой рассмотренной стратегии, которые послужат отличной основой для создания торговой системы, которая будет автоматически генерировать сигналы по индикатору Ишимоку MetaTrader 5. Затем мы перейдем к самой интересной теме — научимся писать на MQL5 торговые системы по этим стратегиям, которые смогут автоматически и точно генерировать сигналы для использования в торговой платформе MetaTrader 5. Это будет в разделе "Торговая система по индикатору Ишимоку".

В этой статье, как и во всех других, мы будем использовать торговую платформу MetaTrader 5 и язык программирования MQL5 (MetaQuotes Language), встроенный в платформу. Если вы не знаете, как загрузить или использовать MetaEditor, рекомендую почитать раздел "Как написать MQL5-код в редакторе MetaEditor" в моей более ранней статье.

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

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

Теперь приступим к изучению.


Определение индикатора Ишимоку

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

Индикатор Ишимоку разработал Гоичи Хосода. Это один из инструментов японской школы, который можно использовать для получения более подробной информации о финансовом инструменте — он позволяет определить направление тренда, поддержку и сопротивление, импульс и торговые сигналы. О трендах мы уж не раз говорили в предыдущих статья. Например, можете прочитать подробное описание тренда из статьи по ссылке.

Строится он из пяти частей:

  • Линия Tenkan-Sen (линия переворота)
  • Линия Kijun-Sen (линия стандарта)
  • Линия Senkou Span A (опережающая A)
  • Линия Senkou Span B (опережающая B)
  • Линия Chikou Span (запаздывающая)
Линии Senkou Span A и Senkou Span B при построении образуют облако (Kumo).

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

Линия Tenkan-Sen (линия переворота) = (максимум за 9 периодов + минимум за 9 периодов)/2

Линия Kijun-Sen (линия стандарта) = (максимум за 26 периодов + минимум за 26 периодов)/2

Линия Senkou Span A (опережающая A) = (Tenkan-Sen + Kijun-Sen)/2 - но построение будет сдвинуто на 26 периодов в будущее

Линия Senkou Span B (опережающая B) = (максимум за 52 периода + минимум за 52 периода)/2 - построение также будет сдвинуто на 26 периодов в будущее

Линия Chikou Span (запаздывающая) = Цена закрытия за сегодня со сдвигом 26 в прошлое

В настоящее время больше не нужно рассчитывать вручную, ведь есть готовый индикатор, который идет в стандартной поставке платформы MetaTrader 5. Все, что нужно сделать, — это выбрать Ишимоку из списка доступных индикаторов, и он отобразится на графике без каких-либо вычислений с нашей стороны. Чтобы вставить индикатор Ichimoku на график в платформе MetaTrader5, выбираем меню Вставка --> Индикаторы --> Ichimoku Kinko Hyo.

Здесь мы видим второе название индикатора Ишимоку — Ichimoku Kinko Hyo.

 Вставка индикатора Ichimoku на график

После этого откроется окно параметров индикатора. Выглядит оно так:

 Параметры запуска индикатора Ichimoku

В этом окне нужно задать необходимые параметры индикатора:

1 — период расчета линии Tenkan-sen

2 — период расчета линии Kijun-sen

3 — период расчета линии Senkou Span B

Также можно задать желаемый стиль и внешний вид индикатора на вкладке цветов:

Цвета для индикатора Ишимоку

1 — цвет линии Tenkan-sen

1A — стиль линии Tenkan-sen

1B — толщина линии Tenkan-sen


2 — цвет линии Kijun-sen

2A — стиль линии Kijun

2B — толщина линии Kijun


3 — цвет линии Chikou Span

3A — стиль линии Chikou Span

3B — толщина линии Chikou Span


4 — цвет облака при восходящем движении (Up Kumo)

4A — стиль облака при восходящем движении (Up Kumo)

4B — толщина облака при восходящем движении (Up Kumo)


5 — цвет облака при нисходящем движении (Down Kumo)

5A — стиль облака при нисходящем движении (Down Kumo)

5B — толщина облака при нисходящем движении (Down Kumo)


После настройки параметров индикатор появится на графике, как показано ниже.

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

Как видно из индикатора на графике на предыдущем рисунке, синие и красные линии относятся к Tenkan-Sen и Kijun-Sen, а зеленая линия — к Chikou Span, которая представляет собой цену закрытия, построение которой сдвинуто на 26 часов назад в соответствии с таймфреймом. А также есть облако (Senkou Span A и Senkou Span B), которое отложено на 26 часов вперед и окрашено в красный цвет, что означает, что оно движется вниз.


Стратегия по индикатору Ишимоку

В этой части на примере простых стратегий мы узнаем, как можно использовать индикатор Ишимоку в соответствии с его концепцией. Мы рассмотрим стратегию, которую можно использовать для определения тренда с помощью идентификатора тренда Ишимоку. Также изучим стратегию, которую можно использовать для получения информации о силе тренда через стратегию силы Ишимоку. Затем изучим стратегию, которую можно использовать для подтверждения в случае бычьего или медвежьего сигнала на основе двух различные методов пересечения — это мы рассмотрим на примере стратегий сигнала price-Ki и ten-Ki по индикатору Ишимоку.

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

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

  • Стратегия первая: идентификатор тренда по Ишимоку

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

Цена закрытия > Senkou Span B и Цена закрытия > Senkou Span A --> Восходящий тренд

Цена закрытия < Senkou Span B и Цена закрытия < Senkou Span A --> Нисходящий тренд

  • Стратегия вторая: сила тренда по индикатору Ишимоку

По этой стратегии индикатор будем использовать в качестве показателя силы текущего тренда. Для этого снова проверяем три значения: текущая линия Senkou Span А, предыдущая Senkou Span А и Senkou Span В. Если текущая линия Senkou Span А больше, чем предыдущая Senkou Span А, и при этом текущая Senkou Span A больше, чем Senkou Span B, это является признаком того, что тренд восходящий и сильный. И наоборот, если текущая линия Senkou Span А ниже предыдущей Senkou Span А, а также текущая Senkou Span А ниже Senkou Span В, это будет сигналом того, что тренд нисходящий и сильный.

Текущая Senkou Span A > предыдущая Senkou Span A и Текущая Senkou Span A > Senkou Span B --> Сильный растущий тренд

Текущая Senkou Span A < предыдущая Senkou Span A и Текущая Senkou Span A < Senkou Span B --> Сильный падающий тренд 

  • Стратегия третья: сигнал price-Ki по Ишимоку

Согласно этой стратегии, во время восходящего тренда индикатор будет выводить информацию о наличии бычьего сигнала, а во время нисходящего тренда он будет генерировать уведомление о медвежьем сигнале. Для определения сигнала будет проверять два значения: цену закрытия и Kijun-Sen. Если цена закрытия выше значения Kijun-Sen, это будет признаком для срабатывания бычьего сигнала. И наоборот, если цена закрытия ниже значения Kijun-Sen, это будет медвежий сигнал.

При восходящем тренде: Цена закрытия > kijun-sen --> бычий сигнал

При нисходящем тренде: Цена закрытия < kijun-sen --> медвежий сигнал

  • Стратегия четвертая: Сигнал Ишимоку ten-ki

Это еще одна стратегия, которая может генерировать уведомления о наличии бычьего сигнала во время восходящего тренда или о наличии медвежьего сигнала во время нисходящего тренда. Для этой стратегии будем проверять два значения: Tenkan-sen и Kijun-sen. Если значение Tenkan-sen выше, чем значение Kijun-sen, это сигнал бычьего настроения на рынке. И наоборот, если Tenkan-sen ниже, чем значение Kijun-sen, это будет медвежий сигнал.

Tenkan-sen > Kijun-sen --> бычий сигнал

Tenkan-sen < Kijun-sen --> медвежий сигнал


Схема стратегии по индикатору Ишимоку

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

  • Стратегия первая: идентификатор тренда по Ишимоку

Согласно описанию этой стратегии нам нужно создать торговую систему, которая будет постоянно проверять цены закрытия, значения Senkou Span A и Senkou span. Затем система должна сравнивать эти значения и определять, какое из них больше, а какое меньше. На основе этого она должна решить, на рынке восходящий тренд или нисходящий. Соответствующее значение нужно вывести в виде комментария на график. Дополнительно на график нужно вывести значения цены закрытия и линий Ишимоку. Если цена закрытия одновременно больше, чем Span B и больше, чем Span A, то тренд восходящий. Если цена закрытия одновременно ниже, чем Span B и ниже, чем Span A, то тренд нисходящий.

Схема стратегии для идентификации тренда по Ишимоку

  • Стратегия вторая: сила тренда по индикатору Ишимоку

На основе этой стратегии создадим торговую систему, которая будет генерировать алерт с информацией о силе текущего тренда. Для этого система будет постоянно проверять значения текущего Senkou Span А, предыдущего Senkou Span А и Senkou Span B. Торговая система должна сравнивать эти значения и определять, какое из них больше, а какое меньше. На основе этого сравнения она должна возвращать силу текущего тренда. Если текущее значение Span A выше предыдущего Span A, а также текущее значение Span A выше, чем Span B, тогда тренд растущий и сильный. Соответствующую информацию нужно вывести в виде комментария на график. Также нужно вывести значения линий Ишимоку.

Схема стратегии для идентификации силы тренда по Ишимоку

  • Стратегия третья: сигнал price-Ki по Ишимоку

Система, работающая по этой стратегии, должна выводить на график комментарий с бычьим или медвежьим сигналом, а также значения цен закрытия и линии Kijun sen. Для этого торговая система должна постоянно проверять значения цены закрытия и линии Kijun-sen, сравнивать их и решать, какое из них больше или меньше. Если цена закрытия выше, чем Kijun sen, на график выводится комментарий с бычьим сигналом, ценой закрытия и значением Kijun sen. Если цена закрытия ниже, чем Kijun sen, на график выводится комментарий с медвежьим сигналом, ценой закрытия и значением Kijun sen.

 Схема стратегии сигнала price-Ki по Ишимоку

  • Стратегия четвертая: Сигнал Ишимоку ten-ki

Система, работающая по этой стратегии, должна выводить на график комментарий с бычьим или медвежьим сигналом на основе сравнения линий Tenkan Sen и Kijun Sen. Итак, торговая система должна постоянно сравнивать эти два значения и возвращать в виде комментария на графике бычий сигнал, значения Tenkan Sen и Kijun Sen если значение Tenkan Sen выше, чем значение Kijun Sen. Если же наоборот, линия Tenkan Sen выше, нужно возвращать медвежий сигнал и значения линий.

Схема стратегии сигнала ten-Ki по Ишимоку

Торговая система по индикатору Ишимоку

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

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

В наш код поместим директиву #include для файла Indicators/Trend.mqh. Затем используем класс CiIchimoku, чтобы получать показатели индикатора Ишимоку.

#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;

Используя void OnInit(), вызовем индикатор, затем создадим double-переменные со значениями Tenkan-sen, Kijun-sen, Senkou span A, Senkou span B и Chikou span.

   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);

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

   Comment("Tenkan Sen Value is: ",TenkanVal,"\n",
           "Kijun Sen Value is: ",KijunVal,"\n",
           "Senkou Span A Value is: ", SpanAVal,"\n",
           "Senkou Span B Value is: ",SpanBVal,"\n",
           "Chikou Span Value is: ",ChikouVal);

Полный код этой системы будет таким:

//+------------------------------------------------------------------+
//|                                       Simple Ichimoku system.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//+------------------------------------------------------------------+
void OnInit()
  {
   Ichimoku = new CiIchimoku();
   Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);

   Comment("Tenkan Sen Value is: ",TenkanVal,"\n",
           "Kijun Sen Value is: ",KijunVal,"\n",
           "Senkou Span A Value is: ", SpanAVal,"\n",
           "Senkou Span B Value is: ",SpanBVal,"\n",
           "Chikou Span Value is: ",ChikouVal);
  }
//+------------------------------------------------------------------+

После компиляции программа появится в окне Навигатора в MetaTrader 5.

Ишимоку в Навигаторе

Запускаем двойным кликом на файле или перетаскиваем на график, после чего появится следующее окно с параметрами запуска.

Окно для запуска Ишимоку

Теперь после нажатия "ОК" программа появится на графике.

Простая система Ишимоку на графике

А на рисунке ниже показан пример сгенерированных сигналов от этой системы.

Сигнал простой системы по Ишимоку

На рисунке выше видно, что на графике появился комментарий со следующими значениями:

  • Значение Tenkan Sen
  • Значение Kijun Sen
  • Значение Senkou Span A
  • Значение Senkou Span B
  • Значение Chikou Span
Это значения всех элементов индикатора Ишимоку.
  • Стратегия первая: идентификатор тренда по Ишимоку

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

//+------------------------------------------------------------------+
//|                                    Ichimoku trend identifier.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//+------------------------------------------------------------------+
void OnInit()
  {
   Ichimoku = new CiIchimoku();
   Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlRates PArray[];
   int Data=CopyRates(_Symbol,_Period,0,1,PArray);

   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);


   if(PArray[0].close>SpanBVal&&PArray[0].close>SpanAVal)
     {
      Comment("The trend is up","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

   if(PArray[0].close<SpanBVal&&PArray[0].close<SpanAVal)
     {
      Comment("The trend is down","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }
  }
//+------------------------------------------------------------------+

Какие отличия появились в этом коде:

Создаем массив цен с помощью функции MqlRates, хранящей информацию о ценах.

MqlRates PArray[];

Заполняем массив цен с помощью функции CopyRates после создания целочисленной переменной для данных. Функция CopyRates получает исторические данные MqlRates.

int Data=CopyRates(_Symbol,_Period,0,1,PArray);

Условия стратегии идентификатора тренда по Ишимоку.

В случае восходящего тренда:

   if(PArray[0].close>SpanBVal&&PArray[0].close>SpanAVal)
     {
      Comment("The trend is up","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

В случае нисходящего тренда:

   if(PArray[0].close<SpanBVal&&PArray[0].close<SpanAVal)
     {
      Comment("The trend is down","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

После этого компилируем код советника. Скомпилированный файл появится в окне Навигатора в терминале MetaTrader 5, как показано ниже.

Ишимоку в Навигаторе 2

Запускаем двойным кликом на файле или перетаскиваем на график. После этого снова появится окно советника.

Окно стратегии для идентификации тренда по Ишимоку

Далее после нажатия "ОК" программа появится на графике.

Стратегия для идентификации тренда по Ишимоку на графике

Ниже показан пример сигналов, генерируемый системой при восходящем и нисходящем тренде.

Сигнал восходящего тренда:

Стратегия для идентификации тренда по Ишимоку - сигнал роста

На графике появился комментарий со следующими значениями:

  • The trend is up — тренд растущий
  • Значение цены закрытия
  • Значение Tenkan Sen
  • Значение Kijun Sen
  • Значение Senkou Span A
  • Значение Senkou Span B
  • Значение Chikou Span

Эта стратегия выводит информацию о восходящем тренде и значения цены и элементов Ишимоку.

Сигнал нисходящего тренда:

Стратегия для идентификации тренда по Ишимоку - сигнал падения

На графике появился комментарий со следующими значениями:

  • The trend is down — тренд нисходящий
  • Значение цены закрытия
  • Значение Tenkan Sen
  • Значение Kijun Sen
  • Значение Senkou Span A
  • Значение Senkou Span B
  • Значение Chikou Span

Эта стратегия выводит информацию о восходящем тренде и значения цены и элементов Ишимоку.

  • Стратегия вторая: сила тренда по индикатору Ишимоку

По этой стратегии система должна выводить на график комментарий с силой тренда и типом текущего тренда (восходящий или нисходящий). Ниже показано, как написать MQL5-код системы, работающей по этой стратегии.

//+------------------------------------------------------------------+
//|                                      Ichimoku trend strength.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//+------------------------------------------------------------------+
void OnInit()
  {
   Ichimoku = new CiIchimoku();
   Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanAPrevVal= Ichimoku.SenkouSpanA(-25);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);

   if(SpanAVal>SpanAPrevVal&&SpanAVal>SpanBVal)
     {
      Comment("The trend is up and strong","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Prev. Value is: ", SpanAPrevVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

   if(SpanAVal<SpanAPrevVal&&SpanAVal<SpanBVal)
     {
      Comment("The trend is down and strong","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Prev. Value is: ", SpanAPrevVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }
  }
//+------------------------------------------------------------------+

Этот код отличается условиями стратегии.

В случае сильного восходящего тренда:

   if(SpanAVal>SpanAPrevVal&&SpanAVal>SpanBVal)
     {
      Comment("The trend is up and strong","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Prev. Value is: ", SpanAPrevVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

В случае сильного нисходящего тренда:

   if(SpanAVal<SpanAPrevVal&&SpanAVal<SpanBVal)
     {
      Comment("The trend is down and strong","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n",
              "Senkou Span A Prev. Value is: ", SpanAPrevVal,"\n",
              "Senkou Span A Value is: ", SpanAVal,"\n",
              "Senkou Span B Value is: ",SpanBVal,"\n",
              "Chikou Span Value is: ",ChikouVal);
     }

После компиляции программа появится в окне Навигатора в MetaTrader 5.

Ишимоку в Навигаторе 3

Двойным кликом запускаем систему, откроется окно советника:

 Окно стратегии для идентификации силы тренда по Ишимоку

Нажимаем "ОК", и программа появится на графике.

Стратегия для идентификации силы тренда по Ишимоку на графике

Примеры сигналов, сгенерированных на основе этой стратегии при тестировании системы. Для растущего тренда.

Сила тренда по Ишимоку: сильный растущий тренд

На рисунке выше видно, что на графике появился комментарий со следующими значениями:

  • The trend is up and strong - сильный растущий тренд
  • Значение Tenkan Sen
  • Значение Kijun Sen
  • Предыдущее значение Senkou Span A
  • Значение Senkou Span A
  • Значение Senkou Span B
  • Значение Chikou Span

На комментарии выведена информация, что тренд восходящий и сильный. Примеры сигналов, сгенерированных на основе этой стратегии при тестировании системы. Для падающего тренда.

 Сила тренда по Ишимоку: сильный падающий тренд

На рисунке выше видно, что на графике появился комментарий со следующими значениями:

  • The trend is down and strong - сильный падающий тренд
  • Значение Tenkan Sen
  • Значение Kijun Sen
  • Предыдущее значение Senkou Span A
  • Значение Senkou Span A
  • Значение Senkou Span B
  • Значение Chikou Span

В этот раз комментарием выведена информация, что тренд нисходящий и сильный.

  • Стратегия третья: сигнал price-Ki по Ишимоку

Система, работающая по этой стратегии, должна выводить на график комментарий с бычьим или медвежьим сигналом на основе пересечения цены и линии Kijun sen. Вот полный код этой системы:

//+------------------------------------------------------------------+
//|                                     Ichimoku Price-Ki signal.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//+------------------------------------------------------------------+
void OnInit()
  {
   Ichimoku = new CiIchimoku();
   Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlRates PArray[];

   int Data=CopyRates(_Symbol,_Period,0,1,PArray);

   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);

   if(PArray[0].close>KijunVal)
     {
      Comment("Bullish signal","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

   if(PArray[0].close<KijunVal)
     {
      Comment("Bearish signal","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }
  }
//+------------------------------------------------------------------+

Отличия в этом коде:

Создаем и заполняем ценовой массив.

   MqlRates PArray[];

   int Data=CopyRates(_Symbol,_Period,0,1,PArray);

 Условия стратегии Ichimoku Price-Ki при наличии бычьего сигнала.

   if(PArray[0].close>KijunVal)
     {
      Comment("Bullish signal","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

Условия стратегии Ichimoku Price-Ki при наличии медвежьего сигнала.

   if(PArray[0].close<KijunVal)
     {
      Comment("Bearish signal","\n",
              "Close Value is: ",PArray[0].close,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

После компиляции программа советника появится в окне Навигатора в MetaTrader 5.

Ишимоку в Навигаторе 5

Перетаскиваем нашу программу из Навигатора на график. При этом откроется вот такое окно.

 Окно сигнала Ichimoku Price-Ki

Далее после нажатия "ОК" программа появится на графике.

Сигнал price-Ki по Ишимоку на графике

Примеры тестирования сигналов, сгенерированных на основе этой стратегии (с бычьим сигналом):

Бычий сигнал по Ichimoku Price-Ki

Как видно на примере, на графике есть комментарий со следующими значениями:

  • Bullish signal - бычий сигнал
  • Значение цены закрытия
  • Значение Kijun-sen

Бычий сигнал генерируется на основе пересечения цены и линии Kijun Sen. Примеры тестирования сигналов, сгенерированных на основе этой стратегии (с медвежьим сигналом):

 Медвежий сигнал по Ichimoku Price-Ki

Как видно на примере, на графике есть комментарий со следующими значениями:

  • Медвежий сигнал
  • Значение цены закрытия
  • Значение Kijun-sen

Медвежий сигнал генерируется на основе пересечения цены и линии Kijun Sen.

  • Стратегия четвертая: Сигнал Ишимоку ten-ki

Система, работающая по этой стратегии, должна выводить на график комментарий с бычьим или медвежьим сигналом на основе пересечения линий Tenkan Sen и Kijun sen. Вот полный код этой системы:

//+------------------------------------------------------------------+
//|                                       Ichimoku ten-Ki signal.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Indicators/Trend.mqh>
CiIchimoku*Ichimoku;
//+------------------------------------------------------------------+
void OnInit()
  {
   Ichimoku = new CiIchimoku();
   Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   Ichimoku.Refresh(-1);
   double TenkanVal= Ichimoku.TenkanSen(0);
   double KijunVal= Ichimoku.KijunSen(0);
   double SpanAVal= Ichimoku.SenkouSpanA(-26);
   double SpanBVal= Ichimoku.SenkouSpanB(-26);
   double ChikouVal= Ichimoku.ChinkouSpan(26);

   if(TenkanVal>KijunVal)
     {
      Comment("Bullish signal","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

   if(TenkanVal<KijunVal)
     {
      Comment("Bearish signal","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }
  }
//+------------------------------------------------------------------+

Этот код отличается условиями стратегии.

В случае бычьего сигнала:

   if(TenkanVal>KijunVal)
     {
      Comment("Bullish signal","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

В случае медвежьего сигнала:

   if(TenkanVal<KijunVal)
     {
      Comment("Bearish signal","\n",
              "Tenkan Sen Value is: ",TenkanVal,"\n",
              "Kijun Sen Value is: ",KijunVal,"\n");
     }

После этого компилируем код советника, и он появляется в окне Навигатора в терминале MetaTrader 5.

Ишимоку в Навигаторе 4

Запускаем двойным кликом, после этого появится окно.

Окно стратегии Ichimoku ten-Ki signal

Нажимаем "ОК", и программа появится на графике.

Стратегия Ichimoku ten-Ki signal на графике

Примеры сигналов, сгенерированных при тестировании на основе этой стратегии (с бычьим сигналом):

Стратегия Ichimoku ten-Ki signal - бычий сигнал

Как видно на примере, на графике есть комментарий со следующими значениями:

  • Bullish signal - бычий сигнал
  • Значение Tenkan Sen
  • Значение Kijun-sen

Бычий сигнал генерируется на основе пересечения линий Tenkan Sen и Kijun Sen. Примеры сигналов, сгенерированных при тестировании на основе этой стратегии (с медвежьим сигналом):

Стратегия Ichimoku ten-Ki signal - медвежий сигнал

   

Как видно на примере, на графике есть комментарий со следующими значениями:

  • Медвежий сигнал
  • Значение Tenkan Sen
  • Значение Kijun-sen

Медвежий сигнал генерируется на основе пересечения линий Tenkan Sen и Kijun Sen.


Заключение

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

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

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

  • Определение тренда по Ишимоку — стратегия сообщает тип тренда, восходящий или нисходящий.
  • Сила тренда по Ишимоку — стратегия сообщает, когда образуется сильный тренд.
  • Сигнал от пересечения цены и линии Kijun Sen — определение бычьего и медвежьего сигнала.
  • Сигнал от пересечения линий Tenkan Sen и Kijun Sen — определение бычьего и медвежьего сигнала.

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

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

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

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/11081

Нейросети — это просто (Часть 25): Практикум Transfer Learning Нейросети — это просто (Часть 25): Практикум Transfer Learning
В последних двух статьях мы создали инструмент, позволяющий создавать и редактировать модели нейронных сетей. И теперь пришло время оценить потенциальные возможности использования технологии Transfer Learning на практических примерах.
Машинное обучение и Data Science (Часть 05): Деревья решений на примере погодных условий для игры в теннис Машинное обучение и Data Science (Часть 05): Деревья решений на примере погодных условий для игры в теннис
Деревья решений классифицируют данные, имитируя то, каким образом размышляют люди. В этой статье посмотрим, как строить деревья и использовать их для классификации и прогнозирования данных. Основная цель алгоритма деревьев решений состоит в том, чтобы разделить выборку на данные с "примесями" и на "чистые" или близкие к узлам.
Разработка торговой системы на основе индикатора Williams PR Разработка торговой системы на основе индикатора Williams PR
Новая статья из серии, в которой мы учимся создавать торговые системы по показателям самых популярных технических индикаторов. Пишем системы на языке MQL5 для использования в MetaTrader 5. В этой статье мы будем изучать индикатор Процентного диапазона Уильямса (Williams' %R).
Возможности Мастера MQL5, которые вам нужно знать (Часть 1): Регрессионный анализ Возможности Мастера MQL5, которые вам нужно знать (Часть 1): Регрессионный анализ
Современный трейдер почти всегда сознательно или бессознательно находится в поиске новых идей. Он постоянно пробует новые стратегии, модифицирует их и отбрасывает те, что не оправдали себя. Этот исследовательский процесс требует много времени и сопряжен с ошибками. В этой серии статей я постараюсь доказать, что Мастер MQL5 является настоящей опорой трейдера. Благодаря Мастеру, трейдер экономит время при реализации своих идей. Кроме того, снижается вероятность ошибок, возникающих при дублировании кода. Вместо того чтобы тратить время на оформление кода, трейдеры претворяют в жизнь свою торговую философию.