English Русский 中文 Español Deutsch Português 한국어 Français Italiano Türkçe
preview
一目均衡表による取引システムの設計方法を学ぶ

一目均衡表による取引システムの設計方法を学ぶ

MetaTrader 5トレーディング | 17 10月 2022, 10:42
1 026 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

はじめに

最も人気のある指標の取引システムを設計する方法についての連載の新しい記事へようこそ。今回は、この指標の主な概念や考え方に基づいたシンプルな戦略をもとに、私たちに有利に働く新しいテクニカルツールについて詳しく学びます。

この指標を次のトピックを通してカバーしていきます。

  1. 一目均衡表の定義
  2. 一目均衡表の戦略
  3. 一目均衡表戦略の設計図
  4. 一目均衡表の取引システム
  5. 結論

「一目均衡表の定義」を通して、一目均衡表とは何か、一目均衡表とはどのような構造なのか、どのように計算するのか、何を計測しているのかなどを学びます。指標を有効に活用できるように、その主な考え方を詳しく学んでいきます。「一目均衡表の戦略」では、この指標の裏にある基本的な概念に基づいたシンプルな戦略を通して学ぶことができます。その後、言及された各戦略について、その取引システムを構築するためのステップバイステップの戦略設計をおこない、「一目均衡表戦略の設計図」を通じてそれを学びます。さらに、この記事で最も興味深い部分を学びます。その核心は、MQL5で取引システムを作成して、MetaTrader 5取引プラットフォームで前述の各戦略を実行する方法です。これは「一目均衡表取引システム」を通じて学習します。

MetaTrader 5に内蔵されているエディターであるMetaQuotes言語(MQL5)を使用することになります。MetaTrader 5をインストールする方法やMetaEditorを使用する方法を知りたい方は、前回の記事の「MetaEditorでMQL5コードを書く」トぴくを読んでみてください。

すべてをテストし、読んだことを実践することをお勧めします。これは、理解を深めたり、新しいアイデアに目を向けたりするのに非常に役立つからです。

免責条項:この記事のすべてのコンテンツは、教育を目的として作成されたものであり、他の目的のために作成されたものではありません。そのため、この記事の内容は何らかの結果を保証するものではありませんので、この記事の内容に基づいておこなう行動については、自己責任でお願いします。

さて、この新しい記事とそのトピックを通して、学習の旅を始めましょう。


一目均衡表の定義

このセクションでは、一目均衡表とは何か、何を測る指標か、その構造、計算方法などを確認しながら、一目均衡表を詳しく学んでいきます。指標について必要なことを深く理解することで、後に有効活用することができます。

一目均衡表は、細田悟一が開発した指標です。この指標は、トレンドの方向性、支持と抵抗、モメンタム、売買シグナルを識別して金融商品についてより多くの洞察を得るために使用することができる日本流のツールの1つです。トレンドの見極め方について詳しく知りたい方は、以前の記事からトレンドの定義について読んでみてください。

一目均衡表には5本の線があります。

  • 転換線
  • 基準線
  • 先行スパンA
  • 先行スパンB
  • 遅行スパン
先行スパンAと先行スパンBは雲を構築します。

次に、この指標の概念を知るあるいは指標を効果的に使うために、一目均衡表を手動で計算する方法を学びます。一目均衡表からあらゆる要素を計算することで学んでいきます。

転換線 = (9期間中の高値+9期間中の安値)÷2

基準線 = (26期間中の高値+26期間中の安値)÷2

先行スパンA = (転換線+基準線)÷2。26期間分先にプロットされます。

先行スパンB = (52期間中の高値+52期間中の安値)÷2。26期間先にプロットされます。

遅行スパン = 今日の終値。26期分過去にプロットされます。

現在では手計算する必要はありませんが、指標の背後にある概念を確認するために、今から勉強しておきます。この指標を搭載した取引プラットフォームがあり、利用可能な指標の中から「Ichimoku Kinko Hyo」を選択するだけで、何も計算せずにチャート上にプロットされます。MetaTrader 5のチャートに一目均衡表を挿入する必要があるので、[挿入]タブ>[インディケータ]>[Ichimoku Kinko Hyo]を押します。

ちなみに、IchimokuはIchimoku Kinko Hyoとも呼ばれています。

一目均衡表の挿入

その後、指標のウィンドウが以下のように表示されることがわかります。

一目均衡表挿入パラメータ

前の図は、指標の所望のパラメータを設定するものです。

1 - 転換線の期間を設定する

2 - 基準線の期間を設定する

3 - 先行スパンBの期間を設定する

また、[色]タブから指標の希望するスタイルや外観を設定することができます。

一目均衡表挿入の色

1 - 転換線の色を選択する

1A - 転換線のスタイルを選択する

1B - 転換線の太さを選択する


2 - 基準線の色を選択する

2A - 基準線のスタイルを選択する

2B - 基準線の太さを選択する


3 - 遅行スパンの色を選択する

3A - 遅行スパンのスタイルを選択する

3B - 遅行スパンの太さを選択する


4 - 上方向に移動する場合の雲の色を選択する(上方雲)

4A - 上方向に移動する場合の雲のスタイルを選択する(上方雲)

4B - 上方向に移動する場合の雲の厚さを選択する(上方雲)


5 - 下方向に移動する場合の雲の色を選択する(下方雲)

5A - 下方向に移動する場合の雲のスタイルを選択する(下方雲)

5B - 下方向に移動する場合の雲の厚さを選択する(下方雲)


環境設定後、チャート上に以下のような指標が表示されます。

一目均衡表の接続

前の図のチャートの指標からわかるように、青と赤の線は転換線と基準線であり、緑の線は時間枠にしたがって26時間前にプロットされた終値である遅行スパンです。26時間先の雲 (先行スパンAと先行スパンB) に加えて、赤で下に移動していることを意味します。


一目均衡表の戦略

このトピックでは、「一目均衡表」の基本的な考え方に基づいた簡単な戦略をもとに、「一目均衡表」の使い方を学びます。Ichimoku Trend Identifierによるトレンドの見極めに使える戦略を見ていきます。一目均衡表の強さの戦略を通じてトレンドの強さを知らせるために使用できる戦略を学び、次に、Ichimoku Price-Ki Signal戦略やIchimoku Ten-ki Signal戦略を通じて見られるものと同じように、2つの異なる交差の方法に基づいて強気または弱気のシグナルがあった場合に警告するために使用できる戦略を学びます。

戦略に言及する前に確認しておきたいのは、万人に適した戦略は存在しないので、たとえテスト済みであっても使用する前に必ずテストする必要があるということです。私たちは皆、自分の特性に基づいて、取引における個性や個人的な取引スタイルを持っています。ですから、私に適していても、あなたに適しているとは限りません。

それに加えて、アイデアや概念としては自分に合った戦略であっても、自分にとって有用なものにするためには最適化が必要だと感じることがあります。どのような戦略であっても、それを実際に使ってみて自分にとって有用であることを確認するまでは、実際の口座で使用しないことが非常に重要です。

  • 戦略1:Ichimoku Trend Identifier

この戦略では、トレンドの種類(上昇トレンド/下降トレンド)を知らせるトリガーが必要です。それをおこなうために、終値、先行スパンA、先行スパンBの3つの値を確認します。終値が先行スパンBを上回り、同時に終値が先行スパンAを上回る場合 、これが上昇トレンドを知るトリガーになります。逆に、終値が先行スパンBを下回ると同時に先行スパンAを下回ると、下降トレンドのトリガーとなります。

終値 > 先行スパンB、終値 > 先行スパンA → 上昇トレンド

終値 < 先行スパンB、終値 < 先行スパンA → 下降トレンド

  • 戦略2:Ichimoku Trend Strength

この戦略では、現在のトレンドが強いことを知らせるトリガーが必要です。そのために、現在の先行スパンA、前回の先行スパンA、先行スパンBの3つの値を確認します。現在の先行スパンAが前回の先行スパンAを上回り、同時に現在の先行スパンAが先行スパンBを上回れば、これは強い上昇トレンドでを示すトリガーとなります。逆に、現在の先行スパンAが前回の先行スパンAを下回り、同時に現在の先行スパンAが先行スパンBを下回れば、これは強い下降トレンドのシグナルになります。

現在の先行スパンA > 前回の先行スパンA、現在の先行スパンA > 先行スパンB → 強い上昇トレンド

現在の先行スパンA < 前回の先行スパンA、現在の先行スパンA < 先行スパンB → 強い下降トレンド 

  • 戦略3:Ichimoku Price-Ki Signal:

この戦略では、上昇トレンドの時は強気のシグナルを、下降トレンドの時は弱気のシグナルを通知するトリガーが必要です。この戦略では、終値と基準線の2つの値を確認し、終値が基準線の値より大きければ強気シグナルのトリガーとなります。逆に、終値が基準線値より低ければ弱気のシグナルとなります。

上昇トレンド時、終値 > 基準線 → 強気シグナル

下降トレンド時、終値 < 基準線 → 弱気シグナル

  • 戦略4:Ichimoku Ten-ki Signal:

この戦略では、上昇トレンドの時は強気のシグナル、下降トレンドの時は弱気のシグナルを知らせる別のトリガーや方法が必要です。この戦略に基づき、転換線と基準線の2つの値を確認します。転換線の値が基準線を上回れば、強気のシグナルとなります。逆に、転換線が基準線を下回れば、弱気のシグナルとなります。

転換線 > 基準線 → 強気シグナル

転換線 < 基準線 → 弱気シグナル


一目均衡表戦略の設計図

このセクションでは、各戦略の設計図を作成します。このステップは、私たちが何をしたいのかを正確に理解するためのステップバイステップの設計図に役立つので、取引システムを作成するミッションの中で最も重要なステップであると思います。

  • 戦略1:Ichimoku Trend Identifier

この戦略では、終値、先行スパンA、先行スパンBの値を連続的にチェックできる売買システムを作る必要があります。これらの値を比較して、どちらが大きいか小さいかを判断し、上昇トレンドか下降トレンドかを判断し、終値と一目線の値と共にチャート上にコメントとして表示する取引システムが必要です。終値がスパンBとスパンAを上回われば、トレンドは上昇しています。終値がスパンとスパンAを下回われば、トレンドは下降しています。

Ichimoku Trend Identifierの設計図

  • 戦略2:Ichimoku Trend Strength

この戦略では、現在のトレンドの強さを警告する取引システムを作る必要があります。取引システムでは、現在の先行スパンA、前回の先行スパンA、先行スパンBの値を連続的にチェックすることが必要です。これらの値を比較して、どちらが大きいか小さいかを判断し、それに基づいて現在のトレンドの強さを返すことが必要なのです。現在のスパンAが前回のスパンAを上回り、現在のスパンAがスパンBを上回る場合、上昇トレンドが強く、チャート上には指標線の値とともにこれがコメントとして表示されます。

Ichimoku Trend Strengthの設計図

  • 戦略3:Ichimoku Price-Ki Signal

この戦略では、チャート上に強気/弱気のシグナルと終値と基準線の値をコメントとして表示する取引システムを構築する必要があります。終値と基準線の値を継続的に確認し、どちらが大きいか小さいかを比較判断する取引システムが必要です。終値が基準線を上回る場合、チャート上に強気シグナル、終値、基準線の値をコメントとして表示します。終値が基準線を下回る場合、チャート上に弱気シグナル、終値、基準線の値をコメントとして表示します。

Ichimoku Price-Ki Signalの設計図

  • 戦略4:Ichimoku Ten-ki Signal

この戦略では、転換線と基準線の値を比較して、どちらが大きいか小さいかを判断し、強気または弱気のシグナルのコメントをチャートに表示する取引システムを作成する必要があります。取引システムでは、この2つの値を継続的に確認し、転換線値が基準線値を上回る場合は強気シグナル、転換線値、基準線値を返し、転換線値が基準線値を下回る場合は弱気シグナル、転換線値、基準線値を返す必要があります。

Ichimoku Ten-ki Signalの設計図

一目均衡表の取引システム

このセクションでは、一目均衡表を使った取引システムの設計方法について学びます。一目均衡表のTrend Identifie戦略、Trend Strength戦略、Price-Ki戦略、Ten-Ki戦略などを基盤にした取引システムの設計方法を学びます。

次に、ここで紹介した戦略の基盤となる、すべての一目均衡表の値をチャート上にコメントとして表示する簡単な一目均衡表のシステムを設計します。

Indicators/Trend.mqhファイルを#includeして、CiIchimokuクラスを使ってIchimoku指標のデータを使用するようにします。

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

OnInit()関数を通して、指標を呼び出し、転換線、基準線、先行スパンA、先行スパンB、遅行スパンのdouble変数値を作成します。

   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);
  }
//+------------------------------------------------------------------+

このコードをコンパイルすると、ナビゲータウィンドウに表示されるようになります。

ナビゲータ - 一目

実行するには、ダブルクリックするか、チャート上にドラッグ&ドロップすると、一目システムのウィンドウが表示されます。

Simple Ichimoku Systemウィンドウ

[OK]を押すと、チャートに接続されます。

Simple Ichimoku Systemの添付

このシステムの生成シグナルの一例を以下に示します。

Simple Ichimoku Systemシグナル

先ほどの画像からわかるように、チャート上に次の値のコメントがあることがわかります。

  • 転換線値
  • 基準線値
  • 先行スパンA値
  • 先行スパンB値
  • 遅行スパン値
上記の値は一目均衡表の要素を表しています。
  • 戦略1:Ichimoku Trend Identifier

次に、この戦略では現在のトレンドの定義をコメントで教えてくれる取引システムを設計する必要があるのですが、この種の戦略を書くための完全なコードを以下に示します。

//+------------------------------------------------------------------+
//|                                    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[];

Dataの整数型変数を作成した後、CopyRates関数を使って価格配列に入力します。CopyRates関数でMqlRatesの履歴データを取得します。

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

次は、トレンドの種類に応じたIchimoku Trend Identifier戦略の条件です。

上昇トレンド:

   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);
     }

このコードをコンパイルすると、下図のように、ナビゲータウィンドウのExpert Advisorsフォルダ内に表示されます。

ナビゲータ - 一目2

ダブルクリックまたはチャート上にドラッグ&ドロップすると、以下のようにIchimoku Trend Identifier ウィンドウが表示されます。

Ichimoku Trend Identifierウィンドウ

[OK]を押すと、チャートに接続されます。

Ichimoku Trend Identifierの添付

以下は、戦略条件に基づき、上昇トレンドと下降トレンドのシグナルを生成する例です。

上昇トレンドのシグナル

Ichimoku Trend Identifierの上昇シグナル

前の図にあるように、チャートには次のようなコメントがついています。

  • 上昇トレンド
  • 終値価値
  • 転換線値
  • 基準線値
  • 先行スパンA値
  • 先行スパンB値
  • 遅行スパン値

この戦略は、価格と一目均衡表の要素の値が異なる上昇トレンドタイプを提供します。

下降トレンドのシグナル

Ichimoku Trend Identifierの下降シグナル

前の図にあるように、チャートには次のようなコメントがついています。

  • 下降トレンド
  • 終値の値
  • 転換線の値
  • 基準線の値
  • 先行スパンAの値
  • 先行スパンBの値
  • 遅行スパンの値

この戦略は、価格と一目均衡表の要素の値が異なる上昇トレンドタイプを提供します。

  • 戦略2:Ichimoku Trend Strength

この戦略では、チャート上で、トレンドが強い場合は強いとしてコメントし、また上昇か下降かをコメントする取引システムを作る必要があります。以下のコードは、それができるこの取引システムを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);
     }

このコードをコンパイルすると、ナビゲータウィンドウに表示されるようになります。

ナビゲータ - 一目3

ダブルクリックで実行すると、以下のようなエキスパートアドバイザー(EA)のウィンドウが表示されます。

Ichimoku Trend Strengthのウィンドウ

[OK]を押すと、EAがチャートに接続されます。

Ichimoku Trend Strengthの接続

以下は、強い上昇トレンドの場合にテストから生成されたシグナルの例です。

Ichimoku Trend Strengthの強い上昇シグナル

前の図にあるように、チャート上に次の値のコメントを見つけることができます。

  • 強い上昇トレンド
  • 転換線の値
  • 基準線の値
  • 先行スパンAの以前の値
  • 先行スパンAの値
  • 先行スパンBの値
  • 遅行スパンの値

ここにあるのは、上昇トレンドが強いことを知らせるコメントです。以下は、強い下降トレンドの場合にテストから生成されたシグナルの例です。

Ichimoku Trend Strengthの強い下降シグナル

前の図にあるように、チャート上に次の値のコメントを見つけることができます。

  • 強い下降トレンド
  • 転換線の値
  • 基準線の値
  • 先行スパンAの以前の値
  • 先行スパンAの値
  • 先行スパンBの値
  • 遅行スパンの値

逆に、下降トレンドが強いというコメントがあります。

  • 戦略3:Ichimoku Price-Ki Signal:

この戦略では、価格と基準線の間のクロスオーバーに基づいてチャート上に強気または弱気のシグナルについてのコメントを生成する取引システムを作成します。以下はそれをおこなうための完全なコードです。

//+------------------------------------------------------------------+
//|                                     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 Signal戦略の条件(強気シグナル)

   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 Signal戦略の条件(弱気シグナル)

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

このコードをコンパイルすると、ナビゲータウィンドウに表示されるようになります。

ナビゲータ - 一目5

チャート上にドラッグ&ドロップしてEAを実行すると、EAのウィンドウが表示されます。

Ichimoku Price-Ki Signalウィンドウ

[OK]を押すと、チャートに接続されます。

Ichimoku Price-Ki Signalの接続

以下は、テストから生成された強気シグナルの例です。

Ichimoku Price-Ki Signal(強気)

先ほどの例でわかるように、チャートにはコメントがついています。

  • 強気シグナル
  • 終値
  • 基準線の値

この強気シグナルは、価格と基準線とのクロスオーバーに基づいて生成されます。以下は、テストから生成された弱気シグナルの例です。

Ichimoku Price-Ki Signal(弱気)

先ほどの例でわかるように、チャートにはコメントがついています。

  • 弱気シグナル
  • 終値
  • 基準線の値

この弱気シグナルは、価格と基準線とのクロスオーバーに基づいて生成されます。

  • 戦略4:Ichimoku Ten-ki Signal戦略:

この戦略では、転換線と基準線のクロスオーバーに基づいて、強気または弱気のシグナルのコメントをチャート上に生成する取引システムを作成する必要があります。以下はそれをおこなうための完全なコードです。

//+------------------------------------------------------------------+
//|                                       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");
     }
  }
//+------------------------------------------------------------------+

このコードの違いがIchimoku Ten-ki Signal戦略の条件となります。

強気シグナル:

   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");
     }

このコードをコンパイルすると、ナビゲータウィンドウにEAが表示されるようになります。

ナビゲータ - 一目4

ダブルクリックすると、そのウィンドウが表示されます。

Ichimoku Ten-ki Signalウィンドウ

[OK]を押すと、EAがチャートに接続されます。

Ichimoku Ten-ki Signalの接続

以下は、この戦略に基づくテストにより生成された強気シグナルの例です。

Ichimoku Ten-ki Signal(強気)

先ほどの例でわかるように、チャートにはコメントがついています。

  • 強気シグナル
  • 転換線の値
  • 基準線の値

この強気シグナルは、転換線と基準線とのクロスオーバーに基づいて生成されます。以下は、本戦略に基づくテストにより生成された弱気シグナルの例です。

Ichimoku Ten-ki Signal(弱気)   

先ほどの例でわかるように、チャートにはコメントがついています。

  • 弱気シグナル
  • 転換線の値
  • 基準線の値

この弱気シグナルは、転換線と基準線とのクロスオーバーに基づいて生成されます。


結論

この記事で学んだように、一目均衡表ではトレンド、トレンドの強さ、強気または弱気の取引シグナルを得ることができるので、チャート上の複数の視点を特定させる完全なシステムとして使用することができます。1つの指標で多くの観点を把握してより良い判断を下し、成果を上げることができるため、取引において非常に有効な指標です。

ここではこの指標について多くのトピックを学び、できる限りカバーしたと思いますが、読者はこの指標についてさらに学ぶ必要があることに気づくかもしれません。

今回は、一目均衡表の定義というトピックを通して、一目均衡表とは何か、何を測るものか、その構造、計算方法など、一目均衡表に関する多くのトピックを取り上げました。次のような戦略を学びながら、その基本的な考え方に基づいた簡単な戦略によって、どのように使うことができるかを学びました。

  • Ichimoku Trend Identifier:トレンドの種類(上昇トレンド/下降トレンド)を通知
  • Ichimoku Trend Strength:トレンドが強い場合に通知
  • Ichimoku Price-Ki Signal:強気/弱気のシグナルが発生した場合に通知
  • Ichimoku Ten-ki Signal:他の手法による強気/弱気のシグナルが発生した場合に通知

また、これらの戦略に基づいた取引システムを構築するためのステップバイステップの設計図も作成しました。MetaTrader 5で使用するために、MQL5で言及されたすべての戦略の取引システムを作成しました。どんな教育的なプロセスにおいても、実践はとても大切な要素です。この記事で学んだことを自分で実践してほしいと思います。しつこくなりますが、すべての人に適した戦略はないので、戦略は実際の口座で使用する前に必ずテストしてください。

取引に害を及ぼす可能性のある人間の感情を避けることができるアルゴリズム取引は、取引に成功するのに役立つ素晴らしいツールです。なぜなら、取引では感情が大きな役割を果たし、それが損失の理由となるからです。自分の勝ち筋に基づいた取引を自動的に実行してくれるツールが見つかったら、これは文字通り宝物です。それに加えて、取引システムが働いている間に、他の意味のあるなことをする時間も確保できるのです。

最後に、読者が自分の取引をより充実させるためにこの記事を役立てていただければ幸いです。同じような記事をもっと読みたい方は、最も人気のあるテクニカル指標に基づいて取引システムを設計する方法についての私の他の記事をお読みください。

MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/11081

DoEasy-コントロール(第9部):WinFormsオブジェクトメソッド、RadioButtonおよびButtonコントロールの再配置 DoEasy-コントロール(第9部):WinFormsオブジェクトメソッド、RadioButtonおよびButtonコントロールの再配置
この記事では、WinFormsオブジェクトクラスメソッドの名前を修正し、ButtonおよびRadioButton WinFormsオブジェクトを作成します。
ニューラルネットワークが簡単に(第18部):アソシエーションルール ニューラルネットワークが簡単に(第18部):アソシエーションルール
この連載の続きとして、教師なし学習の手法の中で、もう1つのタイプの問題であるアソシエーションルールのマイニングについて考えてみましょう。この問題タイプは、小売業、特にスーパーマーケットで、市場の分類を分析するために最初に使用されました。今回は、このようなアルゴリズムの取引への応用についてお話します。
ニューラルネットワークが簡単に(第19部):MQL5を使用したアソシエーションルール ニューラルネットワークが簡単に(第19部):MQL5を使用したアソシエーションルール
アソシエーションルールの検討を続けます。前回の記事では、このタイプの問題の理論的側面について説明しました。この記事では、MQL5を使用したFPGrowthメソッドの実装を紹介します。また、実装したソリューションを実際のデータを使用してテストします。
データサイエンスと機械学習(第05回):決定木 データサイエンスと機械学習(第05回):決定木
決定木は、人間の思考方法を模倣してデータを分類します。木を作り、それを使ってデータを分類・予測する方法を見てみましょう。決定木アルゴリズムの主な目的は、不純物を含むデータを純粋なノードまたはそれに近いノードに分離することです。