MetaTrader 5をダウンロードする

貨幣価格変動に対するマクロ経済データの影響の回帰分析

24 12月 2015, 13:49
Salavat Bulyakarov
0
348

はじめに

ファンダメンタル分析は多くの人に理解できないとみなされています。それをどのように実行すればよいのか、どのパラメータを考慮すべきか、どれをすべきでないかが明確でないのです。会計処理パラメータと検討するつもりの時間の長さの影響を見つけることはどちらも簡単なことではありません。

2011 I 年に私は記事 Multiple Regression Analysis. Strategy Generator and Tester in One に出会い、そこに書かれている方法が興味深いと思いました。ファンダメンタル分析に対するこの方法のアプリケーションについて研究を行い、本稿にその結果を書いています。


「重回帰分析」とは?

重回帰分析は2こ以上の独立変数からの1変数の依存を推定する方法です。

数学的発想のない方々はおそらくこの定義が理解できないことでしょう。次の例がこの分析の意味とそれがどのように利用されるのか説明します。

ダイエットのサプリメントを摂取するとき通常の身体活動の効率を推定しようとするある研究者をイメージします。その研究者は24人の大学生を対象に実験を行います。学生は各6人の4グループに分けられます。最初のグループは 100 mg/日のサプリメントを摂り、2番目のグループは 200 mg/日、3番目は 300 mg/日、そして4番目 400 mg/です。この実験には4段階のサプリメント摂取と3段階の身体的活動を取り入れます。各グループの6人は2人一組の3組に分けられます。ある組が1週間に0時間エクササイズをし、2番目の組は週に5時間、3番目は週に10時間エクササイズをします。実験の終わりには参加者だれもが体重を減らしました。データは次の表に入れられました。

実験参加者 サプリメント量(mg/日) エクササイズレベル(時間/週) 体重減少(ポンド)
1 100 0 -4
2 100 0 0
3 100 5 -7
4 100 5 -6
5 100 10 -2
6 100 10 -14
7 200 0 -5
8 200 0 -2
9 200 5 -5
10 200 5 -8
11 200 10 -9
12 200 10 -9
13 300 0 1
14 300 0 0
15 300 5 -3
16 300 5 -3
17 300 10 -8
18 300 10 -12
19 400 0 -5
20 400 0 -4
21 400 5 -4
22 400 5 -6
23 400 10 -9
24 400 10 -7

各参加者の体重減少結果

結果的に疑問が2つあります。

  1. 体重減少を起こしたものはなにか?サプリメントかそれともエクササイズか?
  2. 体重の変化と影響要因の間にどのような関係があるのか?

それはたとえば、通貨価格が変化するとき、そこにはつねにニュースのどれが影響を与えたのか、という疑問があります。価格に影響する経済要因があるなら、要因が変わると価格変動はどうなるのでしょうか?

重回帰分析とプログラム STATISTICA はこういった疑問への答えに手を貸してくれます。データを持つ表をプログラムに転送するかインポートし、メニューで「重回帰」を選択します。

例のデータの STATISTICA プログラムへのインポート

図1 例のデータの STATISTICA プログラムへのインポート

このメニューバーを選択したら、「変数」ボタンを探し、それをクリックします。

重分析パラメータスクリーン

図2 重分析パラメータスクリーン

それは分析に使用する変数を選択するためのウィンドウを表示します。それは2つの部分で構成されています。左手側では従属変数(と思っている)(例の体重減少)を選択し、右側ではこの変化に影響するものを強調表示します。

従属変数、独立変数の割り当て

図3 従属変数、独立変数の割り当て

「OK」 を押すと前の設定ダイアログウィンドウに戻ります。そこでチェックボックスにチェックを入れ、「OK」を押します。

重分析用パラメータの選択

図4 重分析用パラメータの選択

続くウィンドウでは、方法「すべて有効」を選択します。

方法の選択

図5 方法の選択

操作がすべて終わったら、分析結果を持つウィンドウが表示されます。統計的に結果に影響を与えることが証明された要因は要因リスト内で赤いフォントとなっています(われわれのケースでは「エクササイズレベル」)。その他の変数

  • 「ケースNo.」は分析のためのインシデント数です。
  • "p" はこの相関の統計的妥当性(0.05 より低いレベルは信頼性があると考えられています)です。
  • 『複数の R』は方程式の従属変数と独立変数間の多変量相関値です。

データ処理結果

図6 データ処理結果

値 'Multiple R= 0,71819113' は「複数のR、減少体重とそれに影響をあたえる要因の間の多変量相関は 71,82% である」と解釈します。

2つの要因の1つ、「エクササイズレベル」は赤のテキストです。それが、ダイエットサプリ摂取の影響が取るに足らないものであるとき、体重減少に影響を与えた要因です。

ここで計算するのは、暫定的な回帰方程式によりどのくらい正確に要因が体重減少に影響を与えたか、です。そのために「概要:回帰結果」ボタンを押し、新しい表を表示します。この表の 'b' 列の値を使用し、回帰方程式を作成します。

回帰方程式の変数

図7 回帰方程式の変数

次の式を取得しました。

体重減少 = 0,00117×[サプリメント量] - 0,63750×[エクササイズレベル] - 2,5625

値を式(Ctrl+C в STATISTICA -> Ctrl+V в Excel)に入れると、サプリメント摂取またはエクササイズ強度が異なる場合の変化を計算することができます。たとえば、For example:

  • 体重変化 1 = 0.00117×100 - 0.6375×0 - 2.5625 = -2,4455. これは、1日に100 mg 摂取しエクササイズなしで2.4ポンドまで減量できることを意味します。
  • 体重変化 2 = 0.00117*100 - 0.6375*10 - 2.5625 = -8,8205. これは、1日に100 mg 摂取し週10時間のエクササイズで 8,82ポンドまで減量できることを意味します。

この例が重分析が何に利用されるか明らかにしてくれるとよいのですが。実際、ダイエットが効果的でジムにもっと通う必要がある場合、それが確認に有用であると思う人がいるかもしれません。

実験の考え方を通過に適用しようと思います。従属変数が通過ペア EURUSD の価格変化、独立変数がマクロ経済統計で、人気のリソース Forex Factory のイベントカレンダー から受け取ったとします。

上記の例に類似して、複数の分析によって通貨価格に影響を与えるマクロ経済要因を特定することができます。またマクロ経済統計が公表されたあと通貨価格がどの値になるか推定する式を作成することもできます。


データ準備とプログラム STATISTICA へのインポート

Forex Factory ウェブサイトで作業をしていて、私は次の問題に出会いました。そについて考慮することを強くお薦めします。このリソースでは同じデータが異なるフォーマットで公開されるのです。たとえば、数字はテキストフォーマットまたは通常どおりにデータを収集することが難しい追加のテキストデータとなる可能性があります。データ収集のためにウェブサイトをパースすると失敗します。

私はUSA の過去7年に関するニュースカレンダーの要因 99 の値をマニュアルで集めました。

USA に関して公表されたマクロ経済インデックス

図8 USA に関して公表されたマクロ経済インデックス

私は数字をすべて統一フォーマットに処理し、『百万』、『十億』といった追加のテキストデータはすべて削除し、全データを 7 列の表(本稿添付のファイル 'calendar_usd.zip' を参照ください)にまとめ、EURUSD についての D1 期間に対するクオートを追加しました。

列見出し

  • 日付
  • 月/年
  • 時刻
  • タイムゾーン
  • 通貨
  • 説明
  • 前回

結果のリストにはマクロ経済データと EURUSD についてのクオートのエントリーが 6700 以上あり、これに単純なマニュアル分析をすることはできません。全データをタイプ別に個別の行に格納され、日付別に行に整理される表にまとめると別のハンドラが必要となりました。われわれはスクリプト ListConvertToTable を使用し、データを処理して表に変換しました。

このスクリプトの設定ダイアログウィンドウでは入力ファイルとターゲットドキュメントに名前を付ける必要があります。入力ファイルはそもそもterminal_data_directory/MQL5/Files に入れる必要があり、出力ファイルはもそこに作成されます。

そこには数多くのデータが存在するため、ニュースのリストを表にすることは時間のかかる処理です。スクリプト内蔵のアラートはそれがどの段階であるかを示します。アラート '8' は手続きが完了したことを知らせます。それでファイルの処理が行えます。重分析をする表は本稿添付のファイルいn入っています。

私は以下のような結果を得ました(本稿添付のファイル'calendar_usd_out.zip' をご覧ください)。

MQL5 言語におけるスクリプトListConvertToTable の実行結果

図9 スクリプト ListConvertToTable の実行結果

データ処理のためプログラム STATISTICA を再び使用します。CSV ファイルを STATISTICA にアップロードするには以下の手順に従います。

  • STATISTICA では「ファイル」を開き、それから「オープン」し、ファイルタイプ「データファイル」を選択し、お手持ちの CSV ファイルを開きます。
  • ウィンドウ「テキストファイルインポートタイプ」は「区切り」のままとし、「OK」を押します。
  • 開いたウィンドウではアンダーバーの項目をインクルードします。
  • 「小数点の区切り文字」のフィールドでは小数点があってもなくてもドットを入れます。

 .csv フォーマットの表のプログラム STATISTICA へのインポート

図10  .csv フォーマットの表のプログラム STATISTICA へのインポート

「OK」を押すとデータの入った表が表示されます。データは重回帰分析用に準備されています。続く価格変動へのデータの影響を分析するには、価格変動が起こった期間を追加する必要があります。私は2010年からのニュースと分析用の従属変数に3つのオプションを選択しました。

  • ニュース公表1日後の価格変化
  • ニュース公表5日後の価格変化
  • ニュース公表10日後の価格変化

この列はプログラム STATISTICA にエクスポートする前に CSV テーブルにマニュアルで、またはプログラムウィンドウの表で追加することができます。

拡張されたデータテーブル

図11 拡張されたデータテーブル

データが準備でき、われわれの見解では通貨レートに影響する指標を導き出すことができます。


通貨価格に大きな影響を与える要因を導き出します。

回帰分析を開始します(「統計」→「重回帰})。表示されるウィンドウでタブ「詳細」内でマークした項目を有効にします。「変数」ボタンを押します。

最初のフィールドで従属変数を選択し、二番目のフィールドで独立変数を選択します。われわれの方程式は選択された変数の値に基づきます。

指標選択用ウィンドウ

図12 指標選択用ウィンドウ

「変数」ボタンを使用し分析に利用するデータを選択します。

従属変数、独立変数の割り当て

図13 従属変数、独立変数の割り当て

「変数の中に分散のないものがあります」という標識のある警告ウィンドウが表示され、選択された独立変数の中にデータなしで変更することのできないものがあることを知らせます。そのような列は削除する必要があります。排除によって列 49「USD米連邦公開市場委員会率の決定」を検索しそれを削除して、分析の準備が整った表を受け取ります(本稿添付のファイル"calendar_2010-2011_usd_out.zip" を参照ください)。

「OK」をクリックします。開いたウィンドウで「詳細」タブのチェックボックスにチェックを入れます。

フォワードステップワイズ方法を選択します。

図14 フォワードステップワイズ方法を選択します。

「OK」ボタンを押してオプションの選択を完了します。次のウィンドウで「フォワードステップワイズ」を選び、自動データ選択を有効にし、もう一度「OK」を押します。

フォワードステップワイズ方法を選択します。

図15 フォワードステップワイズ方法を選択します。

いよいよ大詰めです。新しいウィンドウに回帰分析が正常に行われたことを通知するメッセージを確認したら、「概要:回帰結果」のボタンを押します。

指標の自動選択機能が、独立変数と従属変数間の多変量相関こも最大の貢献を作りながらそれらをソートします。われわれの場合、それは価格に最も大きな影響を与える指標セットです。自動選択は基本的にストラテジージェネレータの役目をします。作成された式は、価格の変動をもっとも信頼できる方法で記述するこれら指標のみを持ちます。

ですが、指標をSTATISTICA で使用する分析にインクルードするルールはつねに最適でないことをお伝えしなければなりません。たとえば、回帰方程式は信頼性のない指標(結果の表の黒のフォント)を数多くインクルードすることがあります。リストが信頼性のない指標をインクルードしていたら、指標選択段階に戻り、分析のためのロットからその信頼性のない指標を削除します。

戻るには分析結果ウィンドウで「取り消し」を押し、分析を繰り返します。このようにして信頼性のない指標はすべて排除するようにします。同時に、取得した多変量相関(複数の)の値は最初のものより大きく低いことは想定されていません。信頼性のない指標はひとつずつ分析から削除することも一括して削除することもできます。ですが、個別削除のほうが好ましいです。

最終的にテーブルには価格変動に影響のある信頼できる指標だけが残ることになります表では価格に影響あるとみなされる変数が赤で強調表示され、影響ゼロの変数は黒で表記されます。

分析完了時には、指標の中には公表後に通貨価格に影響することが見つかったものもありました。指標セットは期間によって異なります。ウィンドウの左側で独立変数として「1日の価格変化」(指標が公表されたのちの1日の価格変動を分析するのです)を選択すると、以下を取得することとなります。

独立変数「1日の価格変化」

図16 独立変数「1日の価格変化」

「取り消し」で戻り、「変数」を選択して変数選択リストに戻ります。徐々に独立変数リストから黒で記載されたエントリーを除外し、赤のものだけを残します。残ったエントリーは翌日価格に影響を与えるニュースを持つものです。

表のエントリーは色が異なることに注意してください。樹族変数に大きな影響がある独立変数は赤です。下の図ではエントリーはすべて赤です。ということはデータ入力後の方程式結果のエラーが最初のケースより少ないということです。影響は最終列の「p 値」(値が小さいほど良い)の係数値によって評価されます。価格への影響ゼロの変数は係数に基づいて削除可能です。

「5日後の価格変化」を選択し、無関係なエントリーを徐々に削除することで有意なニュースをソートすると以下の結果を取得します。

独立変数「5日後の価格変化」

図17 独立変数「5日後の価格変化」

ついに独立変数として「10日後の価格変化」を選ぶと以下のような結果となります。

独立変数「5日後の価格変化」

図18 独立変数「5日後の価格変化」

独立変数として指標数値が公表されて1日後の変化を選択する場合、2010年から2011年半ばまでの期間で価格はリッチモンド研究所によって公表された不動産開発分野のデータと指数によりもっとも影響を受けたのを確認することができます。

データ公表後5日のものでは、生産と非生産業、人件費、失業数の指数が開発産業に関してデータに追加されています。

10日後を見ると影響力のある指数の内訳は変化します。製造業と非製造業の指数、住宅開発応募、失業レベル、エネルギー価格が最前線にきています。

よって、EURUSD ペアに影響する要因は基礎分析のマクロ経済データに酷似していて、その重要性はどのテキストでも強調されています。. 見てのとおり、それは数学と統計学で証明されました。


回帰式と結果予測

価格に影響する要因を知るだけでは十分ではなく、指数公表で価格がどのように変化するか推定できることが重要なのです。そのために本稿のはじめにあげた例のような回帰式を作成するのです。

われわれは図17「5日後の価格変化」から収集されたデータに基付き回帰式を作成します。そのためには見出し 'b' の列から変数を使用します。1行目は数値定数で分析の最後に受け取られます。その計算は別の記事で考察することになるでしょう。

これら係数を基にした回帰式を作ります。

R=-0.0761294138334434+0.355142961984956*[[price change in 1 day]+0.319936701020232*[price change in 10 days]+0.455193706894553*[USD Existing Home Sales (MoM)]-0.146961978306227*[USD MBA Mortgage Applications] + ...,

ここで、係数として列 "b" からの値を使い、角括弧の乗数として公表されたマクロ経済データを使用します。

ソースウェブサイトで公表されたマクロ経済指数の値をこの式に入力し、ゼロより大きいか小さい数値 R を得ます。新規データ入力結果がゼロより大きければ、それは価格が分析に選択された期間内で上昇することを意味します。R の値が価格上昇を示すのです。負の R は価格の下降を意味します。この場合の R 値は価格下落を示します。

上記の式に値を入れ、EURUSDの例を基に結果を考察します。式に係数を入れる例として2010年8月4日のエントリーデータを使用します。


b value [b]х[value]
インターセプト -0.0761 1.00000 -0.0761
1 日後の価格変化 0.3551 -0.0070 -0.0025
10日後の価格変化 0.3199 0.0244 0.0078
USD 既存の住宅販売 (MoM) 0.4552 -0.022 -0.0100
USD MBA 住宅ローン申込み -0.1470 -0.044 0.0065
USD 雇用コスト指数 144.0041 0.006 0.8640
USD NAPM-Milwaukee 0.0106 59 0.6278
USD 既存の住宅販売 0.0000 5660000 -0.6596
USD 失業率 -6.7866 0.099 -0.6719
USD ISM 製造業 0.0197 56.2 1.1052
USD 空軍を除く非防衛資本財受注 -2.8934 0.048 -0.1389
USD 耐久財 輸送費 4.9290 0.012 0.0591
USD 住宅価格購入指数(QoQ) -5.9295 -0.018 0.1067
USD シカゴ購買担当 -0.0160 59.1 -0.9433
USD 個人消費支出のコア (YoY) -19.8579 0.015 -0.2979



-0.0230

R=-0,0230、よって2010年8月4日に始まる5日間下降トレンドは続き、価格は -230 ポイントまで落ちました。この期間の EURUSD ペアのチャートを見ます。

 EURUSD 2010年8月

図19 EURUSD 2010年8月

チャートからわかるように、予測は正確で価格はトレード日数5日(8月11日にクローズ)で 1.3154 から 1.2844 まで落ちました。 -310 ポイントです。回帰式の結果に基づく価格下落の予測は実証されました。同様にして別の日付を入れることができます。


おわりに

本稿で考察したマクロ経済指標に基づく分析方法により、ファンダメンタル分析をシンプルにし自動化することができます。それにより初心者の方でも膨大な量の経済統計を扱うことができるのです。

その上、ファンダメンタル分析に対するその方法はニュースに対して即座に反応しそれに応じてディールを調整する機会を与えてくれます。

ですが、予測は予想される方向に通貨価格が変化することを必ずしも保証するとは考えるべきでないことに留意ください。予測結果は確率的なもので多くの要因に左右されるものです。また、回帰式は新規データが出ると再計算する必要があります。

みなさんの予測の成功を願っています!

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

添付されたファイル |
Calendar_USD.zip (48.71 KB)
MetaTrader マーケットの概要(インフォグラフィック) MetaTrader マーケットの概要(インフォグラフィック)

数週間前「フリーランス」サービスのインフォグラフィックを公表しました。また「マーケット」の統計をいくつか明らかにすることを約束しました。ここでわれわれが収集したデータの検討にみなさんをご招待します。

最適化数点のシンプルな考え 最適化数点のシンプルな考え

最適化のプロセスにはコンピュータや MQL5 クラウドネットワーク検証エージェントのリソースも大量に必要とします。本稿では作業の促進とMetaTrader 5 ストラテジーテスタの改良に利用する簡単な考えをいくつか取り上げます。こういったアイデアはドキュメンテーション、フォーラム、記事から得ました。

第三世代ニューラルネットワーク:深層ネットワーク 第三世代ニューラルネットワーク:深層ネットワーク

本稿ではマシン学習の新しい視点方向-深層学習、より正確には深いニューラルネットワークについてお話します。第二世代のニューラルネットワークについて、その連携のアーキテクチャと主なタイプ、メソッド、学習ルール、主な欠点とそれに続き第三世代の開発とその主要タイプ、特殊性、トレーニング方法について簡単に再検討しています。実データについて集積されたオートエンコーダのウェイトによって開始される深いニューラルネットワークの構築とトレーニングにおける実践的実験を行います。入力データを選択するところから行列偏差までの全段階について詳細にお話します。本稿最終部分は MQL4/R を基にした内蔵インディケータを持つ Expert Advisor での深いニューラルネットワークのソフトウェア実装です。

MQL5 クックブック:トレードトランザクションイベントの処理 MQL5 クックブック:トレードトランザクションイベントの処理

本稿ではイベント駆動型プログラミングの観点から MQL5 言語の機能を考察します。この方法の最大のメリットはプログラムがトレード処理の段階的な実装に関する情報を入手することができることです。また「トレードトランザクション」イベントハンドラによって現在進行中のトレード処理に関する情報を受信し処理する例を取り上げます。私見ですが、この方法はあるターミナルから別のターミナルへディールをコピーするのにも利用可能です。