MetaTrader 5をダウンロードする

外国為替相場での通貨バスケット

4 10月 2016, 18:07
Andrei Novichkov
0
440

イントロダクション

グローバル相場から複数の金融ニュースを読みとることができます。"ドルが主要通貨に対して弱まったが..." ある通貨のステータスは他のグループに対して変化することを意味します。そのような構造により、グループに分けて、通貨ペアのリスト全体を配置する必要性があります。

「バスケット」シンボルは、様々なトレーダーフォーラムにおいて珍しいことではありません。「バスケット」による通貨ペア分割を正確にし、シンボルの分析をするために行われます。通貨ペアは、通常、同様の極値を形成し、同じ方向に移動します。このようなシンボル群(または「バスケット」)を適切に分析することができる平均仮想通貨ペアとして表されます。

原則および定義

全体のアイデアは、トレーダーの重要な属性によって通貨ペアを再グループ化に基づいています。原油価格とEURUSDとUSDCHFの間に相関があるということは、多くの人によく知られています。したがって、グループ(通貨バスケット)にを組み合わせることができます。バスケットの内容を定義した後、同時に、バスケット内のすべてのペア(EURUSDとUSDCHF)に影響を与えるアクションを計画することができます。両方のペアを追跡し、トレード操作を行うことができます。

その中の各通貨での同時トレードの操作を必要とします。この場合、逆向きのオーダーのバスケット「1通貨ペア - 1オーダー」の原則が構成されています。この条件は、トレード操作が実行される、通貨バスケットの状態を特徴付けます。

通貨ペアをグループ化する原則は、作業に適用することができます。28主要通貨ペアは各ペアで存在しなければならないそのベース通貨に応じてバスケットに分かれています。バスケットをベース通貨に基づいて命名します(表1を参照)。この場合、バスケットの状態は、その基本通貨の状態によって定義されます。ステータスパラメータは買われ過ぎ/売られ過ぎの状態や他の同様の属性があります。通貨ペアを評価するために、テクニカル分析を同様の手段によって提供されています。

主な通貨バスケット

では、上記の原理に従って通貨ペアのプール全体を分割してみましょう。結果として、7通貨ペアごとの8通貨バスケットを取得します:

 数  バスケット名  バスケット通貨  バスケット通貨ペア
1
AUDバスケット
AUD
AUDUSD, AUDNZD, AUDJPY, AUDCAD, AUDCHF, EURAUD, GBPAUD
2
CADバスケット
CAD
USDCAD, AUDCAD, NZDCAD, GBPCAD, EURCAD, CADCHF, CADJPY
3
CHFバスケット
CHF
CHF JPY、USDCHF、GBPCHF、EURCHF、USDCHF、NZDCHF、USDCHF
4
EUR バスケット
EUR
EURUSD, EURJPY, EURCHF, EURGBP, EURNZD, EURCAD, EURAUD
5
GBPバスケット
GBP
EURGBP, GBPAUD, GBPCAD, GBPCHF, GBPJPY, GBPNZD, GBPUSD
6
JPYバスケット
JPY
AUDJPY, CADJPY, CHFJPY, EURJPY, GBPJPY, NZDJPY, USDJPY
7
NZDバスケット
NZD
NZDUSD、AUDNZD、NZD円、NZDCAD、NZDCHF、EURNZD、GBPNZD
8
USDバスケット
USD
EURUSD, GBPUSD, AUDUSD, NZDUSD, USDCAD, USDCHF, USDJPY

表1通貨バスケット

バスケットの内容が定義され、メイントレーディングオペレーションを明確にします。バスケットを売買するということがその通貨を売買することを意味します。

円について肯定的なニュースがあるとします。トレーダーは、円を買うことにしました。パラダイムによると、トレーダーはJPYのバスケットを買い、すべての通貨ペアでSHORTエントリーする必要があります。逆のケースでは、トレーダーは、JPYバスケットを売り、すべてのバスケットペアで買いエントリーする必要があります。

EURバスケットを扱うとき場合ほど混乱するものはありません。トレーダーがユーロバスケットを買う場合は、そのすべてのペアで逆トレードに入ります。ユーロと円の場合、オーダーバスケットは1方向のオーダーで構成されています。

トレーディングオペレーションとの混同を避けるために、次の表をアレンジしてみましょう:

バスケット名 バスケット通貨でのトレード操作
バスケット通貨ペアでのトレード操作

1

AUDバスケット

 

AUDUSD AUDNZD AUDJPY AUDCAD AUDCHF EURAUD GBPAUD
SELL sell sell sell sell sell buy buy
BUY buy buy buy buy buy sell sell

2

CADバスケット

 

USDCAD AUDCAD NZDCAD GBPCAD EURCAD CADCHF CADJPY
SELL buy buy buy buy buy sell sell
BUY sell sell sell sell sell buy buy

3

CHFバスケット

 

CHFJPY USDCHF GBPCHF EURCHF AUDCHF NZDCHF CADCHF
SELL sell buy buy buy buy buy buy
BUY buy sell sell sell sell sell sell

4

EUR バスケット

 

EURUSD EURJPY EURCHF EURGBP EURNZD EURCAD EURAUD
SELL sell sell sell sell sell sell sell
BUY buy buy buy buy buy buy buy

5

GBPバスケット

 

EURGBP GBPAUD GBPCAD GBPCHF GBPJPY GBPNZD GBPUSD
SELL buy sell sell sell sell sell sell
BUY sell buy buy buy buy buy buy

6

JPYバスケット

 

AUDJPY CADJPY CHFJPY EURJPY GBPJPY NZDJPY USDJPY
SELL buy buy buy buy buy buy buy
BUY sell sell sell sell sell sell sell

7

NZDバスケット

 

NZDUSD AUDNZD NZDJPY NZDCAD NZDCHF EURNZD GBPNZD
SELL sell buy sell sell sell buy buy
BUY buy sell buy buy buy sell sell

8

USDバスケット

 

EURUSD GBPUSD AUDUSD NZDUSD USDCAD USDCHF USDJPY
SELL buy buy buy buy sell sell sell
BUY sell sell sell sell buy buy buy

表2バスケットとトレーディングオペレーション

バスケット通貨のステータス

どのように通貨バスケットでトレードの決定する必要がありますか?バスケットのサイズが大きいため、シンプルに通貨ペアの挙動に基づいて行うことは非常に困難でしょう。バスケット通貨のステータスパラメータに関する追加の技術的なデータが必要です。では、GBPバスケット、すなわちGBPUSD、GBPJPYとGBPCHFから3通貨ペアのRSIインジケータグラフに注意しましょう。D1のグラフは以下の画像に表示されます。


ご覧の通り、3つのグラフは、多くの共通点があります。また、多くの共通点を持ち、極端な値が、同様に配置されています。この類似性は、同じバスケット通貨によって説明することができます - 英国ポンド。アップやダウンの強化と弱化。

3つのグラフの違いは、主に為替相場の異なる挙動によって説明されています。この場合、異なる挙動の影響は「余分な」極値、下降と上昇の運動の様々なグラデーションだけでなく、方向変化を見ることができます。

(バスケットのすべての対によって共有される)共通パラメータの動作を定義し、ペアの相違点を解消した場合、メインの目的を達成します。現在の例では、GBPの買わ/売られ過ぎの状態はバスケット通貨の代わりに、通貨ペアの状態を示す「RSI」として共通通貨のステータスパラメータです。

もちろん、RSIによって制限する必要はありません。標準的なものに基づいて、他のインジケーターでもよいです。"統一インジケーター"と呼ぶことにしましょう。


バスケット通貨ステータスパラメータを計算するメソッド

タスクを解決するために、既存のものを検討し、同様にする必要があります。この点で、最初に思いつく事はドルインデックスです。他の6つの主要通貨に対するUSBの状態を示しています。まずは、計算式に注意を払ってみましょう。この重量比は幾何平均です。通貨ペアのカスタムセットを使用して、ドルのバスケットにこの原則を適用します。別の仮定を入れてみましょう - 重量比を削除し、通常の幾何平均を計算する式を減らします。すべてのバスケットで計算を実行するための幾何平均の原則を適用するために変更を実装します。実際には、すべての通貨ペアの重量比は認識していません。

変更内容は、任意の効果を持っている場合見てみましょう。シンプルなインジケーターを使用します。

#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict

#property indicator_separate_window
#property indicator_buffers 1

input int     iBarsTotal=300;       

string pair[]={"EURUSD","GBPUSD","AUDUSD","NZDUSD","USDCAD","USDCHF","USDJPY"};
bool bDirect[]={false,false,false,false,true,true,true};
int iCount=7;
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
double GetValue(int shift)
  {
   double res=1.0,t;
   for(int i=0; i<iCount; i++)
     {
      t=iClose(pair[i],0,shift);
      if(!bDirect[i]) t=1/t;
      res*=t;
     }//以下に終わる(0= Iをint型; iはカウント<;++)
   return (NormalizeDouble(MathPow (res, (double)1/iCount), _Digits) );
  }

double upp[];
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorShortName("testBasket");
   IndicatorDigits(_Digits);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,clrGreen);
   SetIndexBuffer(0,upp);
   SetIndexLabel(0,"testBasket");

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   if(prev_calculated==0)
     {

      int total;
      if(iBarsTotal==0) total=rates_total;
      else total= MathMin(iBarsTotal,rates_total);
      for(int i = 0; i<total; i++) upp[i] = GetValue(i);
     }//end if (prev_calculated == 0)
   else
     {
      upp[0]=GetValue(0);
     }
   return(rates_total);
  }

比較として、無料のUSDX.mq4インジケーターの描画USDインデックスの標準的なメソッドを使用します。以下は結果です。(H1タイムフレーム)


USDX.mq4インジケータが赤とライトグリーン(平均)に示され、testBasket.mq4インジケーターは暗い緑で表示されます。H1の時間枠に気づくことがあります。極値点の大半がそうであるように、ほとんどのセグメントでの移動方向が、一致しています。


D1はあまり好ましくないが、許容可能です。極値点の大多数のポジションは、同じです。一部の違いをシンプルに重量比の欠如と通貨ペアの異なるセットによって説明することができます。また、重ねたグラフのスケールは異なっています。

得られた結果に基づいて、異なるバスケットの通貨状態パラメータを算出するための許容可能な幾何平均の計算式を考えます。メソッド#1を呼び出します。しかし、式の制限について注意する必要があります。具体的には、負の値を取ることができる引数を使うことは良い考えです。テクニカルインジケーターのような引数のかなり多くがあります。このような計算は、別のライブラリに含まれていない場合に加えて、幾何平均を計算すると、かなりのターミナルをロードすることができます。

引数として負の値の使用に関する制限を排除するために、共通の算術平均、別の方程式を適用することができます。その式に基づいて計算するための別のテストインジケータを作成してみましょう。確率的インジケータ値は、引数として使用されます。

#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict

#property indicator_separate_window
#property indicator_minimum    0
#property indicator_maximum    100

#property indicator_buffers 2

input int     iBarsTotal=3000;

string pair[]={"EURUSD","EURJPY","EURCHF","EURGBP","EURNZD","EURCAD","EURAUD"};
int iCount=7;
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
void GetValue(int shift,double &s1,double &s2)
  {
   s1=0; s2=1;
   for(int i=0; i<iCount; i++) 
     {
      s1 += iStochastic(pair[i],0,5,3,3,MODE_SMA,0,0,shift);
      s2 *= iStochastic(pair[i],0,5,3,3,MODE_SMA,0,0,shift);
     }
   s1 = NormalizeDouble(s1/iCount, _Digits);
   s2 = NormalizeDouble(MathPow (s2, (double)1/iCount), _Digits);
  }

double upp[],upp1[];
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorShortName("testBasketS");
   IndicatorDigits(_Digits);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,clrRed);
   SetIndexBuffer(0,upp);
   SetIndexLabel(0,"testBasketSA");
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2,clrGreen);
   SetIndexBuffer(1,upp1);
   SetIndexLabel(1,"testBasketSG");

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   if(prev_calculated==0)
     {

      int total;
      if(iBarsTotal==0) total=rates_total;
      else total= MathMin(iBarsTotal,rates_total);
      for(int i = 0; i<total; i++) GetValue(i,upp[i],upp1[i]);
     }//end if (prev_calculated == 0)
   else
     {
      GetValue(0,upp[0],upp1[0]);
     }
   return(rates_total);
  }

EURGBP D1チャートにこのインジケータをダウンロードしてください。得られた結果を以下に示します。


細い線は元の確率で、赤のダブル幅のラインが新しい統一ストキャスティクスに示す緑色のダブル幅ラインが幾何平均に基づいている方程式を意味します。

方程式を分析し、非常によく似た結果が得られることがわかります。算術平均に基づいて、よりスムーズで、幾何平均に基づいたグラフは、目に見える極端なポイントがあります。観的印象かもしれません。負の引数とPCのコンピューティングパワーに関連する制限は、実用的なアプリケーションに影響を与える最も重要な要因であると思われます。一般的に、算術平均はまた、メソッド#2などの計算に適用することができます。

実用的な結論

前を読んだ後、「必要性は何であるか」を自問し、米ドル指数と同様に、確率のようなグラフを描画する別のインジケーターと同様のグラフを描画する新しいインジケーターを得ました。また、標準RSIに似たグラフを描画する別のインジケーターを得ることができます。しかし、すでに、従来のRSIやストキャスティックがあります。なぜ他のものが必要なのでしょうか?この質問に答えるために試してみましょう。

  1. 統一インジケーターは、バスケット内のすべての通貨ペアの動きを予測することを可能にするデータを提供します。代わりに、このような予測はバスケット内のすべての通貨ペアでのトレード操作を可能にします。
  2. (確率を含む最後の画像上)従来のものと同様のインジケーターの組み合わせはグラフの交点を分析し、相違を検出し、バスケット内の特定のペアにエントリを回避することができます。
  3. 2つの通貨が対を形成し、ぞれが独自のバスケットを持っていることを忘れないようにしましょう。データを取得し、統一されたインジケーターを用いて、更なる行動を計画することができます。

効率的なトレードシステムを開発するための基礎として役立つことができます。また、統一インジケーターは、他のトレードシステムと組み合わせて使用することができます。ただし、この記事の範疇を超えています。


結論

非インジケータトレード法を適用しない限り、トレードの決定は、シグナルに基づいて行われるべきであることを覚えておいてください。本件は、比較的新しい方法でこのようなシグナルを得る方法が記載されています。しかし、標準的な手段の完全な代替品として考えるべきではありません。標準的なものと統一RSI、確率およびその他のインジケーターの使用は、トレードの効率を向上させ、高品質のシグナルを提供することができます。


MetaQuotes Software Corp.によりロシア語から翻訳された
元の記事: https://www.mql5.com/ru/articles/2660

添付されたファイル |
testBasket.mq4 (2.73 KB)
USDX.mq4 (9.48 KB)
MT4のポートフォリオトレード MT4のポートフォリオトレード

この記事では、ポートフォリオトレードの原則と外国為替相場への応用を明らかにします。簡単な数学的ポートフォリオの配置モデルが考えられています。半自動化されたトレードのポートフォリオのインジケーターとEA:この記事では、実用的なMT4でのポートフォリオトレードの実装例があります。トレード戦略、ならびに利点と落とし穴の要素が記載されています。

スタックRBMとディープニューラルネットワーク。セルフトレーニング、及びセルフコントロール スタックRBMとディープニューラルネットワーク。セルフトレーニング、及びセルフコントロール

この記事では、ディープニューラルネットワークと予測の選択に関する以前の記事の続きです。ここでは、スタックRBMによって開始されたニューラルネットワークの関数を扱い、「darch」パッケージの実装をします。

MT4のストラテジーテスターでバイナリーオプションを行う方法 MT4のストラテジーテスターでバイナリーオプションを行う方法

バイナリーオプションストラテジーを構築し、MT4のストラテジーテスターで検証する方法をご紹介します。

ZUP - ペサベントパターンの不可逆なジグザグ。グラフィカルインターフェイス ZUP - ペサベントパターンの不可逆なジグザグ。グラフィカルインターフェイス

ZUP プラットフォームの最初のバージョンのリリース後、10年に渡り、複数の変更と改善がありました。その結果、現在は迅速なMT4のグラフィカルアドオンがあり、相場データの分析が便利になりました。今回は、ZUPインジケータープラットフォームのグラフィカルインターフェイスを使用するメソッドについて説明します。