English Русский 中文 Deutsch Português
preview
ペアトレード

ペアトレード

MetaTrader 5トレーディング | 19 2月 2024, 10:01
309 0
Aleksej Poljakov
Aleksej Poljakov

はじめに

現在、あらゆる好みに応じた膨大な数の取引戦略が存在します。これらの戦略はすべて、利益を上げることを目的としていますが、利益を上げるということは、何らかの形でリスクと結びついています。期待される利益が大きければ大きいほど、リスクも高くなります。取引リスクを最小限に抑えながら、小さくても安定した利益を得ることは可能なのでしょうか。これらの条件はペアトレード(英語)によって満たされます。

ペアトレードは、1980年代にJerry Bambergerが初めて提唱した統計的裁定取引(英語)の一種です。この取引戦略は市場中立であるため、トレーダーはほとんどどのような市場環境でも利益を得ることができます。ペアトレードは、相互に関連する金融商品の特性が、一時的な乖離の後、過去の平均値に戻るという仮定に基づいています。このように、ペアトレードはいくつかの簡単な操作に集約されます。

  • 2つの金融商品間の統計的関係の不一致を識別する

  • それらのポジションを建てる

  • 商品の特性が平均値に戻った時点でポジションを閉じる

見かけのシンプルさとは裏腹に、ペアトレードは利益を上げるための簡単でリスクのない方法ではありません。市場は常に変化しており、統計的な関係も変化する可能性があります。そのうえ、ありえない値動きをすれば、大きな損失を被る可能性もあります。このような不利な状況に対処するには、取引戦略とリスク管理ルールを厳守する必要があります。


相関性

ペアトレード戦略は、多くの場合、2つの金融商品の相関に基づいています。複数の通貨ペアの価格変動は相互に関連している可能性があります。例えば、ある銘柄名の価格が他の銘柄名の価格と同じ方向に動いた場合、これらの銘柄の間には正の相関があります。負の相関がある場合、価格は逆方向に動きます。

相関関係に基づくペアトレード戦略は非常にシンプルです。まず、トレーダーは強い相関関係のある2つの金融商品を選ぶべきです。そして、過去のデータを使って相関関係の変化を分析する必要があります。この分析に基づき、トレーダーは十分な情報を得た上で取引に入る決断を下すことができます。

取引上、最も興味深い通貨ペアは負の相関を持つ通貨ペアです。例えば、EURUSDとUSDCHFの動きはこんな感じです。

ピアソン相関係数(英語)は、相関を推定するための最も一般的な方法です。この係数は次の式で計算されます。

この計算では常に偏った推定値が得られます。小さなサンプルでは、結果として得られるrの推定値は正確な相関値とは大きく異なる可能性があります。この誤差を減らすために、Olkin-Pratt調整(英語)を使用できます。

相関関係に基づく取引戦略のルールを開発してみましょう。

まず、適切な通貨ペアを2つ選ぶ必要があります。同時に、これらのペアの過去の平均相関値は負になるはずです。少ない方がいいです。

次に、これらの通貨ペアの履歴について、相関値のサンプルの統計を収集する必要があります。これらの統計は、シグナルを計算するために必要となります。

次のステップは、トリガーレベルを設定することです。現在の相関がこのレベルに達すれば、EAはポジションを建てることができます。このレベルは、-0.95、-0.9など、明示的に設定できます。別のアプローチもあります。過去の相関値を昇順に並べ替えることができます。応答レベルとしては、最低値の10%を限界とすることができます。

ポジションを建てる前に、そのタイプを決定する必要があります。通貨ペアの現在価格が移動平均線より下にある場合、その銘柄名に買いポジションを建てます。逆に、価格が平均を上回れば売りポジションを建てます。この場合、建てたポジションは多方向であるべきです。この条件を満たさなければ、ポジションを建てるべきではありません。

加えて、異なる金融商品のポジション量は相互に関連していなければなりません。仮にポイント価値が預金通貨の1ポイントの価格であるとします。そうすると、ポジションのボリュームは等式が満たされるようなものでなければなりません。

この場合、同じポイント数の値動きは、それぞれの商品でほぼ同じ結果となります。

さらに、EAに2つのレベルを追加しました。第1レベルを超えることは、ブレークイーブンのためにポジションを移す必要があることを示しています。その値は33%です。第2レベルを超えると、すべてのポジションが閉じられます。閉じるレベルは67%ですが、ゼロを超えることはありません。これらのレベルを変更することは、EAの収益性に大きく影響します。

これらのルールに従ってEAをテストしてみましょう。2021.01.01から2023.06.30までのEURUSDとUSDCHFの残高推移はこのようになっています。

悪くありません。しかし、ピアソン相関係数にはいくつかの特徴があります。その使用は、時系列値が正規分布を持つ場合にのみ正当化されます。また、この係数はスパイクの影響を大きく受けます。その上、ピアソン相関は線形関係しか認識できません。これらの特徴を説明するには、アンスコムの例を使うのが一番です。

最初のグラフは、特異性のない直線的な相関を示しています。2つ目のデータセットには非線形関係があり、その強さはピアソン係数では明らかにできませんでした。3つ目のセットでは、相関係数が強いスパイクの影響を受けています。4つ目のグラフには相関関係は見られませんが、それにもかかわらず、1つの値でもかなり強い相関関係が現れるには十分です。

スピアマンの順位相関係数にはこうした欠点がなく、2つの時系列の継続的な増加または減少の依存関係をよく捉えています。スピアマン相関の場合、元のデータがどの法則に従って分布しているかは問題ではありません。ピアソン係数は正規分布のデータにのみ有効です。逆に、スピアマン係数は他の分布やそれらの組み合わせにも容易に対応できます。

また、スピアマン相関係数は非線形関係を明らかにすることができます。例えば、ある時系列は線形トレンドを持ち、別の時系列は指数トレンドを持つとします。スピアマン係数はこのような状況に容易に対応できますが、ピアソン係数はこれらの系列間の関係の強さを完全に明らかにすることはできません。

スピアマン順位相関係数は以下のように計算できます。まず、2つの配列を作る必要があります。各配列には、両銘柄名の価格とバーインデックスを記述します。

インデックス
EURUSD
USDCHF
0 1.06994
 0.89312
1 1.06980
0.89342
2 1.07058
0.89277
3 1.07045
0.89294
4 1.07089

0.89283

ここで、両方の配列を昇順に並び替える必要があります。並び替えられた後では、価格値には何の興味もありません。私たちが気にするのは、並び替え前のインデックス値と現在のインデックス値だけです。括弧内の数字は、配列の並べ替え前の価格指数です。

現在のインデックス EURUSD USDCHF
0 1.06980   (1) 0.89277   (2)
1 1.06994   (0) 0.89283   (4)
2 1.07045  (3) 0.89294   (3)
3 1.07058   (2) 0.89312   (0)
4 1.07089   (4) 0.89342   (1)

ここで、現在の価格指数と並び替え前の同じ指数との差を見つける必要があります。例えば、差D0を求めるとします。まず、物価指数を求めてみましょう。これらは1.06994EURUSDと0.89312USDCHFです。これらの価格の現在の指数は1と3です。すると、差はD0 = 1 – 3 = -2となります。

次に、差D1を求めます。現在の1.06980EURUSDの価格指数は0、0.89342USDCHFの価格指数は4です。D1 = 0 – 4 = -4です。

残りの差も同様に計算します。

すべての差を計算したら、スピアマン順位相関係数を計算することができます。

一見したところ、ピアソン係数とスピアマン係数の差は小さくなります。

しかし、それは取引結果に大きな影響を与える可能性があります。同じパラメータでEAをテストすると、ピアソン係数よりも良い結果が得られました。

使用する取引戦略は大幅に改善できることを忘れてはなりません。例えば、損益分岐点までポジションを厳密に移動させる代わりに、トレーリングストップを使用することができます。一方、ストップロスとテイクプロフィットの使用は、預金の負荷を軽減するのに役立ちます。

相関期間の選択には十分な注意を払う必要があります。取引スタイルはそれ次第です。相関期間が短ければスキャルピング、長ければトレンドフォローです。


共和分

1980年代、クライヴ・グレンジャーは、共和分の概念を考え出しました。共和分がある以上、まず統合があるはずです。どんなものか見てみましょう。

次の法則に従って値が変化する時系列があるとします。

ここでcは定数で、randは乱数です。この方程式は単純に見えますが、面白い動きの軌跡を描くのに使えます。乱数を生成するには、Statisticsライブラリを使用します。このライブラリには、統合された時系列を生成するのに必要なすべての分布が含まれています。

例えば、これはランダム成分が一様分布に従う動きのようなものです。

価格チャートのように見えるでしょうか。では、一様分布を正規分布に置き換えてみましょう。より値動きに近いチャートが得られるでしょう。

ただ、まだ何かが足りません。価格チャートにはしばしばギャップがあります。正規分布とコーシー分布の和を確率変数としましょう。このような分布が、ブラックスワンやホワイトカラスなどの驚きを生み出しているのです。その結果、次のような時系列が得られます。

どうにかして、このすべての統合をトレードに利用することはできないでしょうか。2つの積分系列があり、そのランダム増分が、パラメータは異なるものの、同じ法則に従うと仮定しましょう。これらの系列の差を求めれば、両系列のランダム成分は打ち消し合うと予想できます。そうすれば、これらの系列間の長期的な関係を特定することができ、系列自体が共積分されることになります。

実務では、両通貨ペアの動きを差分を使ってモニターすることができます。

kそしてmの比率は、d[i]の値が可能な限りゼロからずれないように選択すべきです。これらの値は、式を使って最小二乗法で推定することができます。

USDCHFとUSDCADの差の変化はこのようになっています。

この差の値は、上でも下でも何ら制限されません。歴史におけるその振る舞いは、共積分ペアを選択する際の主な基準です。この差はゼロ付近で変動し、符号が変わるはずです。歴史上、このような兆候の変化が多ければ多いほどよくなります。

共分散通貨ペアの取引戦略は単純で、多くの点で相関戦略に似ています。2つの反対方向のポジションは、2つの商品の差がある最大値または最小値に達したときに建てられます。これらのポジションは、差がゼロになった時点で閉じなければなりません。

USDCHFとUSDCADで動作するEAは、2021.01.01から2023.06.30までの期間の取引の収支に以下の変化を示しました。

EA取引の質を向上させるために、相関ベースのEAと同じ推奨事項が適用されます。


結論

お分かりのように、ペアトレード戦略はかなり有用です。ただし、実用化には慎重な研究と改良が必要です。

記事の執筆にあたり、以下のプログラムを使用しました。

名前 種類 機能
sPearson スクリプト iPeriod:相関期間
気配値表示で利用可能なすべての銘柄名の過去の相関関係を分析します。完了後、平均相関値をFilesフォルダに保存します。
iPearson
指標 SecSymbol:2番目の銘柄名
iPeriod:相関期間
現在のピアソン相関係数を示します。
sSpearman スクリプト 過去のスピアマン相関を分析します。
iSpearman 指標 現在のスピアマン相関を表示します。
EA Correlation EA ピアソン相関とスピアマン相関に基づくEA
Integrated Series スクリプト 統合された時系列を構築する機能を示します。異なるディストリビューションを使用することも可能です。
sCointegration スクリプト 通貨ペアの可能性のある共和分を評価します。
iCointegration 指標 2つの通貨ペアの共和分差を示します。
EA Cointegration EA 通貨ペアの共和分を取引に応用したEA


MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/13338

添付されたファイル |
sPearson.mq5 (2.33 KB)
iPearson.mq5 (3.14 KB)
sSpearman.mq5 (2.43 KB)
iSpearman.mq5 (3.3 KB)
EA_Correlation.mq5 (21.48 KB)
sCointegration.mq5 (2.29 KB)
iCointegration.mq5 (3.03 KB)
ビジュアルプログラミング言語DRAKON:MQL開発者と顧客のコミュニケーションツール ビジュアルプログラミング言語DRAKON:MQL開発者と顧客のコミュニケーションツール
DRAKONは、ロシアの宇宙プロジェクト(例えば、「Buran」再利用可能宇宙船プロジェクト)のプログラマーと、異なる分野の専門家(生物学者、物理学者、エンジニアなど)との対話を簡素化するために設計されたビジュアルプログラミング言語です。この記事では、DRAKONが、コードに触れたことがない人にとっても、アルゴリズムの作成にアクセスしやすく、直感的にし、また、顧客が取引ロボットを注文する際に自分の考えを説明しやすくし、複雑な関数でプログラマーのミスを少なくする方法についてお話します。
MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第2回) MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第2回)
この記事は、MQTTプロトコルのネイティブMQL5クライアントの開発ステップを説明する連載の一部です。今回は、コードの構成、最初のヘッダーファイルとクラス、そしてテストの書き方について説明します。この記事には、テスト駆動開発(Test-Driven-Development)の実践と、それをこのプロジェクトにどのように適用しているかについての簡単なメモも含まれています。
データサイエンスと機械学習(第15回):SVM、すべてのトレーダーのツールボックスの必須ツール データサイエンスと機械学習(第15回):SVM、すべてのトレーダーのツールボックスの必須ツール
取引の未来を形作るサポートベクターマシン(SVM)の不可欠な役割をご覧ください。この包括的なガイドブックでは、SVMがどのように取引戦略を向上させ、意思決定を強化し、金融市場における新たな機会を解き放つことができるかを探求しています。実際のアプリケーション、ステップバイステップのチュートリアル、専門家の洞察でSVMの世界に飛び込みましょう。現代の複雑な取引をナビゲートするのに不可欠なツールを装備してください。SVMはすべてのトレーダーのツールボックスの必需品です。
ニューラルネットワークが簡単に(第57回):Stochastic Marginal Actor-Critic (SMAC) ニューラルネットワークが簡単に(第57回):Stochastic Marginal Actor-Critic (SMAC)
今回は、かなり新しいStochastic Marginal Actor-Critic (SMAC)アルゴリズムを検討します。このアルゴリズムは、エントロピー最大化の枠組みの中で潜在変数方策を構築することができます。