English Русский 中文 Español Deutsch Português
ニューラルネットワークを利用した価格予測

ニューラルネットワークを利用した価格予測

MetaTrader 4トレーディング | 16 3月 2016, 09:40
1 803 0
Shashev Sergei
Shashev Sergei

はじめに

過去数年間、ニューラルネットワークに対する興味が爆発し、異なる分野-ビジネス、医療、技術、地質学、物理学、でうまく利用されるのを見てきました。ニューラルネットワークは予測、分類、管理が必要な分野で幅広く利用されています。そのように印象的な成功はいくつかの理由によるものでます。

  • 広い可能性 ニューラルネットワークはひじょうに力強いモデル化ツールで、たいへん複雑な関係の再生産を可能にします。 特に、ニューラルネットワークは元々ノンリニアです。長年にわたり、リニアなモデル化が大半の分野でモデル化の主要な手法でした。なぜならそれ向けの最適化手順がよく発達しているからです。線形近似が十分でないタスクでは、リニアモデルは動作が不十分なのです。また、ニューラルネットワークは『次元の呪い』を克服します。それは変数の数が多い場合、リニアな関係をモデル化することができないものです。
  • 使い勝手の良さ ニューラルネットワークは例によって学びます。ニューラルネットワークのユーザーは代表的なデータを照合し、 トレーニングのアルゴリズムを開始します。それは自動でデータストラクチャを受け入れます。もちろん、ユーザーはデータ選択を準備し、適切なネットワーク構造を選択し、結果を解釈する方法について発見的知識を一式持っている必要があります。ただし、ニューラルネットワークを成功利用するために必要な知識レベルは、従来の統計手法に必要なレベルよりもずっと低くてすむのです。

ニューラルネットワークをは直観的観点から魅力的なものです。というのも、神経組織の原始的な生物学的モデルが基になっているためです。将来、そのような神経生物学モデルが実に知的なコンピュータの創造に導入されるかもしれません。[1]

金融時系列の予測はあらゆる投資活動の主要な構成要素です。投資の全体的考え-将来に利益を得る目的で資金を投資することは、将来予測の考えに基づいています。したがって、金融時系列の予測は投資産業-すべての証券取引所と店頭(OTC)市場、に根差しています。

すべてのトレードの99%は投機的、すなわち実際の取引高ではなく、『安く買い、高く売る』というスキームにより利益を得ること、であると知られています。すべてトレード参加者による価格変動の予測が基になっているのです。重要なことは、トレード参加者の予測は相反するということです。よって、投機的な操作の学が市場参加者の予測の差を特徴づけるのです。すなわち、実際、金融時系列の予測の不可能性です。

金融時系列のこのもっとも重要な特徴は、1990年のL. Bachelier による論文で述べられている『効率的』市場の理論の基礎となるものです。この論文によると、投資家はニューヨーク市場に対するダウ・ジョーンズや S&P500 といった指数によって評価される平均的市場の収益性に頼るのです。投機的利益はランダムな性質を持ち、ギャンブルのようなものです(そこには何か魅力があるのですよね?)。市場曲線の予測不可能な性質の理由は、お金が公の場で地面に落ちていないのはなぜか、と同じです。あまりにも多くの人がそれを取りたいと願うからです。

当然、効率的な市場の理論は、(お金が地面に落ちているのを探している)市場参加者からは支持されません。その多くは、偶然そうに見えて実はすべての時系列は隠れた規則性だらけ、すなわち時系列は少なくとも部分的には予想可能である、と考えているのです。波動分析の創始者、R. Elliot は30年台に自身の記事でその隠れた経験的規則性を見つけ出そうとしました。

80年台、この観点は意外にも新しく出現した動的カオスの理論で支持されました。この理論はカオス状態と偶発性(無作為性)の対偶に基づくものです。カオスの連続はただランダムに見えますが、確定的動的プロセスとして、短期の予測が可能です。可能性の高い予測分野は、 予測の水平線によって時間的に制限されていますが、予測から実利を得るにはこれで十分なのです(Chorafas, 1994)。ノイズの多いカオスの連続から規則性を抽出するベストな数学手法を利用する人は、装備の少ない人の犠牲の上に大きな利益を期待できるのです。

この10年はテクニカル分析-市場動向の異なるインディケータに基づく経験則のセット、の人気が持続したことで特徴づけられます。テクニカル分析は、その他の証券のほかに、この金融商品の個別の動向に注目するものです。テクニカル分析はひじょうに主観的で、チャートの右端-そこで正確に書かく方向の予測を必要とするのですが、では効率的に動作しません。それがニューロネットワーク分析がもっと人気を博した理由です。なぜなら、テクニカル分析と逆で、入力情報のタイプに制限を設けないためです。これは、他の金融商品の動向に関する情報であるとともに、既定のインディケータシリーズのインディケータなのです。無駄ではなく、ニューラルネットワークは、大きなポートフォリオと連携し、異なる市場間の相関を重視して機関投資家(たとえば大規模な年金キャピタルファンド)によって広く利用されています。

純粋なニューラルネットワークモデル化はデータだけに基づき、先行引数はまったく使用しません。これが同時に長所でもあり短所でもあるのです。平均的データはトレーニングには不十分で、潜在的エントリの次元は大きすぎます。

よい予測のためには、大きな機能性を持つニューロパッケージを使用する必要があるのはそのためです。



データ準備

操作を始めるにあたり、データを準備する必要があります。この作業の正確性が成功の80%を左右します。

ニューラルネットワークの教祖はエントリとエグジットとして Ct.クオートの値は使うべきではない と言います。ひじょうに重大なのはクオートの変化なのです。これら変化の振幅が一般的にクオート自体よりは小さい一方で、連続した引用値の間には強相関があります。次の瞬間のもっとも可能性ある引用値はその前の値 C(t+1)=C(t)+delta(C)=C(t) に等しくなります。

その間、トレーニングのクオリティを高めるために、エントリの統計的独立を目指すべきです。すなわち、そのような相関を避けるのです。それが、エントリ値として統計的にもっとも独立した値を選択する理由です。たとえば、クオートはデルタ(C)、または相関増分対数 log(C(t)/C(t+1))で変化します。

インフレの影響が感知できる場合、最終選択が長い時系列にとって良いものです。そのような場合、系列の一部のシンプルな違いは異なる振幅を持ちます。というのも、それらは実際異なる単位で評価されているからです。そして、逆に連続するクオートの関係が測定単位に依存せず、測定単位のインフレ変化によらず、同じスケールとなります。結果として、系列の大きな定常性により、トレーニングに大きな履歴を使用できるようになります。そのためより良いトレーニングが行えるのです。

ラグスペースへの浸漬のデメリットは、ネットの制限された『視力』です。逆に、テクニカル分析は、ウィンドウを過去に固定せず、ときには遠い系列値を使います。たとえば、最大、最小系列値は比較的遠い過去のものであっても、トレーダーの心理に大きな影響を与える、そのため予測には価値があるはずである、と言われます。ラグスペースへの浸漬の十分広くないウィンドウは、そういった情報を提供することはできず、そのことで同然予測の効率を下げます。一報、そのような次元までウィンドウを広げることは、極限まで遠い系列値を含む場合、ネットの次元性を増やします。それは、ニューロネット予測の精度を下げることにつながります。

この一見行き詰まり状態の解決法は、系列の過去の変動のコーディングの代替方法です。本能的に、系列履歴が過去に遡るほど、その変動の細かな点が予測結果に与える影響は少なくなります。それは、実質的に将来を作るトレーダーの主観的な過去の知覚についての心理に基づいているのです。結果的に、系列の動きがあるのを見つける必要があります。それは選択精度でしょう。将来で先になるほど、曲線の一般形式は保たれていても、詳細ではなくなります。

ここでひじょうに頼もしいツールはウェーブレット分解です。情報性の面では、それはラグ浸漬と同様ですが、データ圧縮を受け入れるのが簡単です。それは選択精度によって過去を述べるものです。



ソフトウェアの選択

ニューラルネットワークを操作する目的のソフトウェアはさまざまです。多かれ少なかれユニバーサルなものもあれば、高度に専門化されているものもあります。以下にそのプログラムの一部をリストアップしました。

1. Matlab は数学的な計算用のデスクトップ・ラボラトリで、電気回路の設計や、複雑なシステムのモデル化を行います。それには内蔵プログラム言語とニューラルネット用の大きなツールセットがあります。それはANFISエディタ(教育、作成、トレーニング、グラフィックインターフェース)で、ネットワークをプログラムするためのコマンドインターフェースnnTool -ネットワークをより精密にコンフィギュレーションするためのもの、です。

2. Statistica は、データ分析と統計的規則性を検索するための強力なソフトウェアです。このパッケージでは、ニューロネットの動作はSTATISTICA ニューラルネットワーク(短縮して ST ニューラルネットワーク、StatSoft 社のニューロネットパッケージ)のブロックで提供されます。それはデータ分析のニューロネット手法のセット全体を実現するものです。

3. BrainMaker は、まだ正式なメソッドとアルゴリズムはなく、不完全でノイズの多い矛盾したエントリデータを持つタスクを実行するためのものです。そのようはタスクに対しては、為替や金融予測、危機条件のモデル化、パターン認識、その他を参照します。

4. NeuroShell Day Trader はトレーダーの特殊な要求を満たすニューロネットシステムで、使い勝手はひじょうによいものです。このプログラムは高度に専門化されており、実際にはかなりブラックボックスに近いものですが、取引を目的としています。

5. その他プログラムはあまり一般的ではないものです。

主要処理には Matlab がひじょうに適しています。Forex 予測に対してニューロネットの適正を明確にしてみます。

MatLab 複合体に関する情報は以下で、ィキペディアにあります。https://en.wikipedia.org/wiki/MATLAB

プログラムに関する多くの情報はウェブサイト http://www.mathworks.com/にあります。
http://www.mathworks.com/store/ でプログラム購入が可能です。

実験

データ準備

データは MetaTrader の標準ツールによって簡単に取得できます。

サービス → クオートアーカイブ → エキスポート

結果、*.csv ファイルを取得します。それはデータ準備用の生の資料です。ファイルを処理しやすい *.xls ファイルに変換するには、*.csv ファイルからデータをインポートします。このため、エクセルで以下を作成します。

データ → 外部データをインポートする → データをインポートし、準備済みの元ファイルを指定する。インポートマスタでは、必要な処理が3ステップで行われます。




3番目のステップで、More... によって整数の分離子と小数部分を点で置き換えます。

文字列ではなく数字としてデータを受け取らせるには、整数の分離子と小数部分を点で置き換えます。

サービス → パラメータ → インターナショナル → 整数と称f数部分の分離子

始値と終値の保存例がスクリーンショットで表示しています。それ以外のデータはまだ必要ありません。

ここで何を予測したいかによってデータをすべて変換します。前の4つについて、翌日の終値を予測します(データは5列で表示され、価格は年代順になっています)。

1.2605

1.263

1.2641

1.2574

1.2584

1.2666

1.263

1.2641

1.2574

1.2584

1.2666

1.2569

1.2641

1.2574

1.2584

1.2666

1.2569

1.2506

1.2574

1.2584

1.2666

1.2569

1.2506

1.2586

1.2584

1.2666

1.2569

1.2506

1.2586

1.2574

 


Excel での操作が簡単なおかげで、データは数分で準備完了です。準備済みデータファイル例は本稿に添付があります。

Matlab にファイルに気づかせるには、準備済みデータをファイル *.txt または*dat に保存する必要があります。それらを *.txt ファイルに保存します。そうすると各ファイルは分割されます。-ネットトレーニング用(選択)とその検証用(外部選択)です。このように備された euro.zip データはのちの処理に適しています。



Matlab の知識

コマンド行から anfisedit コマンドでパッケージ ANFIS を起動します。このエディタは4本のバーで構成されています。-データ用(データをロードする)、ネット生成用(FIS を生成する)、トレーニング用(FIS をトレーニングする)、その検証用(FIS を検証する)です。上のバーはニューラルストラクチャ(ANFIS Info)をプレビューするためのものです。

パッケージ操作について詳しくは以下を参照ください。

http://www.mathworks.com/access/helpdesk/help/toolbox/fuzzy/

前の段階で準備されたデータのロード処理を起動するには、 Load Data をクリックし、選択データを持つファイルを指定します。そして Generate FIS をクリックしてニューラルネットワークを作成します。

各エントリ変数に対しては、三角形の参照関数を持つ言語変数を3つ設定します。エグジット関数の参照の関数としてリニア関数を設定します。

ニューロネットのトレーニングには、パッケージはトレーニングアルゴリズムを2つもちます。-バックプロパゲーションと混成のアルゴリズムです。構成トレーニングでは、ネットは2~3回の実行でトレーニングされます。トレーニング後のトレーニング選択(60個の値)では、ネットによる予測はいくつかの点で実際の予測とは異なります。

ですが、われわれが予測する必要があるのは将来です!外部選択データとして、内部選択データの後に今後9日を取りました。外部選択データでは、平均二乗誤差は32ポイントで、それはもちろん実取引では許容できませんが、ニューロネット方向がさらに発達する-ゲームはろうそく足の価値あり、ことを示します。

われわれの作業結果は、近い将来の絶対的な価格値を予測することのできる多層ハイブリッドニューラルネットワークです。それは基本的に、Y. Reshetov が記事 /ja/articles/1447 で述べ、 Expert Advisor https://www.mql5.com/ru/code/10289として実現される一層ニューラルネットワークからの構造と目的で変化します。

ニューラルネットワークの専門家はこれをしないことを強く薦めますが、われわれはクオートについて多かれ少なかれ許容できる予測を得ます。結果のニューロネットを閲覧するには、ストラクチャをクリックします。トレーニング済みニューラルネットワークは添付ファイルneuro.zip にあります。

パッケージの多大なメリットは、その別のプログラムとの統合性にあります。統合 DDE、com オブジェクト、dll のバリアントは複数あります。よって、ツールを一から作成する必要はありませんh http://forum.mql4.com/ru/5220。すぐに使えるプログラムソリューションを使用して、ニューラルネットワーク、遺伝的アルゴリズムと連携できるのです。そして、安定的な予測結果を得たら、ニューラルネットワークを dll によってプログラム MetaTrader に統合するのです。



おわりに

ニューラルネットワークは、金融市場で作業するにはひじょうに力強いツールですが、この技術を学ぶにはテクニカル分析を学ぶのと同じくらいの時間と労力が必要です。

ニューラルネットワークのメリットは意思決定の客観性にあります。デメリットは、決定が実際ブラックボックスでなされる点です。

この技術で作業する際発生しうる問題は、正しいデータの事前処理に関連しています。この段階はデータ予測における重大な役割を果たし、ニューラルネットワークでの作業を不成功に終わらせる数多くの試みはこの段階に関連しています。

ネットワークを適切に学習するには、多くの実験が必要です。が、これは骨折り損にはなりません。機関投資家がこのツールを使用すれば、一般トレーダーもまたトレーニングされたニューラルネットワークによって成功しようとすることができます。なぜなら、インディケータと価格からファンダメンタル分析のシグナルまで、ネットワークにはすべてを入力することが可能だからです。



参照資料リスト

1. Neurocomuting and its application in science and business. A. Ezhov, S. Shumskij. 1998

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

添付されたファイル |
euro.zip (8.55 KB)
neuro.zip (4.64 KB)
ターミナル MetaTrader 4 のテスター:これは知っているべきです ターミナル MetaTrader 4 のテスター:これは知っているべきです
ターミナル MetaTrader 4 の精巧なインターフェースは最先端のものですが、それだけではなくターミナルには周到な戦略テスターが備わっています。 トレーディングターミナルとしての MetaTrader 4 の価値が明確である一方、テスターの戦略検証のクオリティは実践でのみ評価することができます。本稿では MetaTrader 4 で検証を行うことのメリットと利便性について説明します。
デイトレーディングの時間変換の原則 デイトレーディングの時間変換の原則
この記事は、価格フローを取得するためのオペレーション時間のコンセプトについて記載しています。この時間変換を考慮し、変更される移動平均のコードも含んでいます。
MQL におけるオブジェクト・アプローチ MQL におけるオブジェクト・アプローチ
本稿はまず MQL 環境で作業を行う初心者プログラマ、プロのプログラマー両方にとって興味深いものとなります。また、本稿が環境開発者や観念論者に読まれると、役に立つと思われます。というのも、ここで分析される疑問は将来 MetaTrader や MQL を実装する上でのプロジェクトとなりうるからです。
Skypeを用いて、エキスパートアドバイザーからメッセージを送る方法 Skypeを用いて、エキスパートアドバイザーからメッセージを送る方法
この記事は、Skypeを用いてエキスパートアドバイザーから携帯電話にメッセージ、SMSを送る方法について取り扱います。