自動売買の新星!MetaTrader 5向けEAの全貌

Mike 2012.11.30 20:13 11 0 0
添付ファイル

Expert Advisorとは?

このExpert Advisor(EA)は、MQL4からリライトされたもので、作者はlsvです。ソースリンクはこちら - https://www.mql5.com/ru/code/9431

動作原理

このEAはティックデータを基に動作し、どの時間足でも利用可能です。現在の市場価格のパターンを平均化し、異なるパラメータを持ついくつかのパターンを生成します。生成されるパターンの数はNidelt変数で設定され、最初のパターンにはdstopパラメータが、次のパターンにはdstop*2、そしてdstop*Nまで続きます。価格がdstop*Nの値に変わると、新しいパターンのポイントがキャッチされ、最新のポイントは削除されます。こうしてパターンはNideltポイントの固定長を持ちます。パターンの設定値が多いほど、より深く履歴をキャッチします。つまり、異なる履歴の深さで市場を同時に追跡しているのです。

市場の状況が変わると、仮想ポジションが開かれます。ここでの目的は、特定の市場状況にポジションを結びつけることです。価格の値のシーケンスコードをバイナリーシーケンスに変換し、あるポイントの値が前の値より高ければ1、そうでなければ0となります。このシーケンスからユニークなパターン番号を計算します。

仮想ポジションは1つから3つまで開くことができ、それぞれに個別のストップロス/テイクプロフィットがあります。ストップロスとテイクプロフィットの値は同じですが、1つのポジションにはdstop*1、別のポジションにはdstop*2というように設定します。価格がストップロス/テイクプロフィットの確率値に基づいて上昇すると、そのパターンの可能な上昇値が追加され、下降すると確率値が下降します。これらの仮想ポジションは、各パターンのパラメータ、パターン番号(形状)、ストップロス/テイクプロフィットのそれぞれに対して開かれます。同時に、これらの組み合わせに基づいて仮想取引の上昇または下降確率が計算されます。

3つのパラメータ(パラメータ、番号、ストップロス/テイクプロフィット)の組み合わせによって10以上の仮想取引が生成されると、同じ市場状況が発生した際に(特定のパラメータと番号のパターンが自動検出される)、その場合、ストップロス/テイクプロフィットの値に基づいて計算された確率に沿った方向でポジションを開くことができると考えられます。

統計を集めるには時間がかかるものです。作者は「数週間かかることもある」と述べています。統計の収集プロセスはテスターを使用することで加速できますが、テスターのティックプライス変動と実際の市場では大きな違いがあることがあります。作者はこのように推奨しています:テスターでEAを訓練し、その後デモ口座で約1週間運用します。EAがポジティブな結果を示した場合(少し学習したことになります)、リアル口座での使用が可能になります。

Expert Advisorの準備

EAの運用準備の第一段階は、そのパラメータの最適化です:Nidel、Nstop、dstop、forg、Probab、NN、delta。この段階では、ReadHistoryとSaveHistoryのパラメータをオフにして最適化を行います。許容されるパラメータの組み合わせが見つかったら、SaveHistory=trueで1回のテストを行います。その後、ReadHistory=trueの状態でEAを口座に展開すると、EAはテスターで十分な統計を集めたため、すぐに稼働し始めます。EAがオーバーラーニングし、再起動した際に作業を開始できるように、自動的にデータを保存するために、口座での作業中はSaveHistoryをオンにすることをお勧めします。

テスターでSaveHistoryを使用すると、学習データはファイルに保存され、ファイル名はFD_[Symbol]になります。たとえば、EAがEURUSDでテストを行うと、ファイル名は「FD_EURUSD」となり、GBPUSDの場合は「FD_GBPUSD」となります。これらのファイルは、すべてのターミナルの共通データフォルダであるFilesフォルダに保存されます。General Data FolderはMetaEditorのメインメニューから開くことができます。このフォルダを通じてデータはReadHistoryによって読み込まれます。

学習結果を保存することに加えて、EAは取引プロセスに必要な2つのファイルも保存します。それらのファイル名はFDlast_buy[Symbol][TimeFrame]およびFDlast_sell[Symbol][TimeFrame]です。これらのファイルには注意を払わなくても大丈夫です。

EAは時間足によって、学習データの保存周期と仮想取引の最小間隔にのみ依存します。これは2バーの密度に等しいため、異なる時間足でのEAの作業結果にはいくらかの違いがあります。

以下の画像は、EURUSD M15でのデフォルト設定でのEAの学習結果を示しています。

 

パラメータ一覧

  • ReadHistory - 学習済みの履歴を読み込む。
  • SaveHistory - 学習履歴を保存する。テスト中はテスト終了まで保存し、口座での作業中は定期的にオーバーラーニングにより保存。
  • Lots - ポジションボリューム。
  • Nidelt - パターンの数は30を超えてはいけません。
  • Nstop - 仮想ポジションのパラメータの数(ストップロスとテイクプロフィットの異なる値、ストップロスとテイクプロフィットは等しい)、1、2または3。
  • dstop - 仮想ポジションのパラメータ変更のステップ(ストップロスとテイクプロフィット)。
  • forg - 学習結果の忘却率、値は1より少し大きくする必要があります。
  • Probab - ポジションオープンを行う学習結果に基づく確率レベル。
  • NN - パターンサイズは12を超えてはいけません。
  • delta - パターンパラメータの変更ステップ。
  • ReplaceStops - 新しいオープニングシグナルに対してストップロス/テイクプロフィットを変更。ストップロス/テイクプロフィットの移動はポジションの方向にのみ影響します。
  • Trailing - トレーリングストップレベル;値が0の場合、トレーリングストップは無効になります。
リスト
コメント 0