English Русский 中文 Español Deutsch Português
外国為替相場での通貨バスケット

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

MetaTrader 4トレーディング | 4 10月 2016, 18:07
1 706 0
Andrei Novichkov
Andrei Novichkov

イントロダクション

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

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

原則および定義

全体のアイデアは、トレーダーの重要な属性によって通貨ペアを再グループ化に基づいています。原油価格と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 Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/2660

添付されたファイル |
testBasket.mq4 (2.73 KB)
USDX.mq4 (9.48 KB)
Rを使って高速化したMQL5の統計分布 Rを使って高速化したMQL5の統計分布
Rで実装されている基本的な統計分布を操作するための関数を紹介します。コーシー、ワイブル、正規、対数正規、ロジスティック、指数、均一、ガンマ分布、カイ 2 乗、中央と非心 beta スチューデントの t 分布、F 分布フィッシャーの離散二項および否定的な二項分布、幾何学、幾何とポアソン分布。これらのモデルに実際の分布の適合性の程度を評価できるように、分布の理論的モーメントを計算する関数があります。
シグナルのクイック評価:トレーディング、ドローダウン/ロードとMFE/ MAE配信チャート シグナルのクイック評価:トレーディング、ドローダウン/ロードとMFE/ MAE配信チャート
購読者は、多くの場合、シグナルプロバイダーのアカウントの総成長を分析することによって、適切なシグナルを検索します。しかし、特定のトレード戦略の潜在的なリスクを分析することも重要です。この記事では、その性能に基づいてトレードシグナルを評価するための簡単かつ効率的な方法を紹介します。
ニューラル ネットワーク: EAの自己最適化 ニューラル ネットワーク: EAの自己最適化
ポジションを最適化し、コードのコマンドに従って定期的に条件を終了するEAを開発します。ニューラル ネットワーク (多層パーセプトロン) を分析し、戦略を実現するためのモジュールの形式で実装します。毎月 (毎週、毎日、または毎時) ニューラル ネットワークを最適化する EAを作成します。したがって、自己最適化 EA を開発します。
MT4のポートフォリオトレード MT4のポートフォリオトレード
この記事では、ポートフォリオトレードの原則と外国為替相場への応用を明らかにします。簡単な数学的ポートフォリオの配置モデルが考えられています。半自動化されたトレードのポートフォリオのインジケーターとEA:この記事では、実用的なMT4でのポートフォリオトレードの実装例があります。トレード戦略、ならびに利点と落とし穴の要素が記載されています。