MetaTrader 5をダウンロードする

人工知能を用いたTDシーケンシャル(トーマス デマークのシーケンシャル)

19 6月 2017, 10:46
Mihail Marchukajtes
0
1 506

1. はじめに

人工知能システムは人間の毎日の活動を通して広がっています。トレーダーは、人工知能システムを取り入れた先駆者の一つです。ニューラルネットワークに基づく人工知能システムがどのように取引に使用できるのかを考えていきます。

初めに、ニューラルネットワーク自体は取引することができないことに合意しましょう。つまり、ニューラルネットワークには無期限に価格データ、指標などを供給することができるため、最終的な結果は絶対に得られません。そこで、このアイディアはすぐに捨てることができます。ニューラルネットワークは戦略と隣り合わせでしか存在ことができず、意思決定、フィルタリング、予測を「支援」します。完全な戦略を表すニューラルネットワークはナンセンスです(少なくとも個人的にはこれまで見たことがありません)。

本稿では、よく知られている戦略とニューラルネットワークを融合させた成功裡の取引方法を説明します。お話しするのは、人工知能システムを用いたトーマス デマークの シーケンシャル 戦略についてとなります。シーケンシャルはデマークによって「The New Science of Technical Analysis(テクニカル分析の新科学)」という本でよく記述されています。これはどんなトレーダーにとっても有用な読み物です。詳細についてはこちらをご覧ください。

まず、戦略について一言言います。シーケンシャルは反トレンド戦略で、現れるシグナルは互いに依存しません。言い換えれば、買いシグナルと売りシグナルを連続して受信することが可能で、これがシーケンシャルの使用を非常に複雑にします。他の戦略同様、この戦略は偽シグナルを生成します。これを探し当てます。シーケンシャルに基づいたシグナル生成原理は、著者自身によってよく説明されています。ここでは彼の解釈を少し変更し、セットアップシグナルとインターセクションシグナルを使用して、戦略の最初の部分のみを適用します。これらのシグナルは2つの理由から選択されました。第1に、これらのシグナルは上端と下端に配置されています。第2に、それらは、「カウントダウン」と「エントリー」よりも頻繁に発生します。

人工知能は全くの取引戦略(従来のMAクロスでさえ)に埋め込み可能であることには留意されるべきです。何にしても、どの戦略においても最も重要なのは決定を下す瞬間です。要点は、各バーを分析することはユートピアであるということです。したがって、市場状況を分析するための瞬間、つまりバーを決定する必要があります。取引戦略とはまさにこのことです。ここでもまた、シグナルが受信される限り、分析方法はMAクロスからフラクタル構成まで完全に自由です。シーケンシャルの場合、興味深いのは、市場の状況を特定してシグナルの正当性を判断するための緑色の点のウィンドウです。

               

 図1 nikelodeon.mql5指標によるTDSEQUENTA

シーケンシャル取引戦略のニューラルネットワークなしでの操作を示す図を分析してみましょう。 図では、緑色の点を見ることができます。ここに示されているのは、特定の数のバー(たとえば、9つの連続するバー)を使用せず、条件に基づく、戦略の適応バージョンです。戦略の条件がもはや満たされなくなると、シグナルが表示されます。したがって、シグナルは、現在の市場状況に応じて、独自の数の点の後に現れます。これがシーケンシャルの市場への適応法です。この効果は、緑色の点で構成されるウィンドウを分析する機能を提供します。このウィンドウは、すべてのシグナルに対して異なる持続時間を持ち、AIを使用する場合に利点となります。ここでは、緑色の点の後の青色の点が買いシグナル、赤色の点が売りシグナルを示すようにしました。

最初の売りシグナル(赤い点)は、後に続くシグナルがより高いので、偽であることが分かります。シグナルごとに操作してこの赤い点を使って市場に参入すると、確実にお金を失うことになります。最初の青い点も偽で、その価格での買いでは大幅な損金が発生します。偽シグナルと有効なシグナルはどのように見分けるのでしょうか。このタスクは、人工知能、すなわちニューラルネットワーク(NN)によって解決することができます。


2. 市場の文脈 

「一昨日は取引システムは完璧に機能していました。昨日は大失敗でしたが、今日はまた大丈夫です。」おなじみでしょうか。もちろん、トレーダーはみんな、取引システムの品質が日々変化するという事実に直面しています。問題はシステムそのものではありません。問題はいわゆる取引日の文脈で、取引量、建玉、価格変動の以前の変化に基づいて形成されるものです。簡単に言えば、取引の背景は、これらのデータによって正確に決定されます。これらのデータは、一日の終わりごとに異なります。重要な推奨事項は、ロボットを取引する日と似た条件で最適化するということです。NNを最適化する際に最も難しいのは、教師データに当日に形成されるパターンが含まれていないことを確認することです。 毎日のコンテキストは、そのような包含の1つです。

次の例を考えてみましょう。本日の取引量と建玉は減少し相場 は上昇しました。明らかに、市場は弱体化しており、逆転の見通しが予想されます。取引量と建玉の減少と相場の上昇を伴う日だけを使ってNNを訓練することにより、今日発生する確率の高いパターンをNNの入力として提供する可能性が高くなります。これによってNNは市場の文脈の中で訓練されます。市場は、同じようなパラメータを持った日と同じように反応する可能性が高いのです。存在する取引量、価格、建玉の組み合わせがたった9種類であることは容易に計算でわかります。ネットワークごとに別々の状況を訓練することで、市場全体がカバーされます。9つの訓練されたモデルは平均2週間機能しますが、より長く機能する場合もあります。

eVOLution-dvoid.1.3 (1)指標の助けを借りれば、日々の文脈の中で作業を整理するのはとても簡単です。この指標は基本的に...\Files\evolution-dvoid\ディレクトリにあるdvoid-BP.csvファイルからデータを読み込みます。ここでは、米ドルに対する英ポンドのクォーツが使用されていることがわかります。データを正確に表示して、1日の文脈で正確に使用できるようにするには、毎朝モスクワ時間7時30分にシカゴ証券取引所のサイトにアクセスして、前日の終わりの取引量建玉を示すDaily Bulletin(英国ポンドのものは27番)をダウンロードします。これらのデータを、毎日取引を始める前に"dvoid-BP.csv"に追加します。日中、指標には、以前の値と比較した取引量の変化が表示されます。つまり、必要なのは市場規模の実際の取引量ではなくてその変化です。建玉にも同じことが言え、その相対的な動きは重要です。


3. モデルの編成へのアプローチ

教師データを増やして適切なレベルの汎化を提供するためには、重要な条件を導入する必要があります。 買いシグナルと売りシグナルは別々に有効と偽に分離するということです。そうすれば、NN自体のリソースはシグナルをソートするために無駄にされることはありません。これらのシグナルを事前に分離して、買いシグナルと売りシグナルの2つのモデルを作成します。教師データのサイズはこの単純なトリックで2倍になります。教師データが大きくて汎化レベルが高いほど、モデルは長いこと市場に適したままであるというのは既知の事実です。

ここで信頼区間の概念を紹介しましょう。これは、モデルが信頼され、使用に適していると考えられる区間です。計算されたモデルの信頼区間が訓練区間の1/3を占めると仮定します。つまり、モデルを30シグナルで訓練すると、適切な動作期間は10シグナルとなります。しかし、モデルが訓練間隔の3倍長く続くことは珍しいことではありません。

訓練期間が長くなると、モデルの汎化能力は当然低下します。これは「至高の目標」が存在しないという理論の確認です。市場のすべての履歴によってNNを100%の汎化に訓練することができれば、無期限に作業できる理想的なモデルを得ることができます。悲しいかな、現実的に、これはユートピアでしかありません。しかし、良き長期的モデルを構築することは可能です。その秘訣は、入力としてネットワークに渡されるデータにあります。それらが出力変数の本質を反映し、その原因である場合、モデルを構築することは簡単です。

ところで出力変数についてですが、出力変数の選択はネットワークを構築するための入力データを見つけるの同様に難しいです。シグナルの履歴データを見て、どれが有効でどれが偽であったかを正確に判定することは可能です。原則として、出力変数を構築するに当たって、各シグナルは明確に解釈され、ネットワーク出力を理想的にします。つまり、出力にはエラーが一つも含まれていないため、NNの学習は同じ理想的な出力に挑戦します。もちろん、汎化レベルが100%の長期モデルを取得することは事実上不可能です。結局のところ、エラーなしで出力変数のシグナルを十分に解釈するようなデータが存在することは考えにくいものです。もし、そのようなデータが存在するとしたら、ニューラルネットワークの使用は完全に不要になります。

このため、出力変数はわずかな誤差を持って形成されるべきであり、シグナルからの小さな損失は大きな利益によってカバーされるべきです。この結果、出力変数は、理想的ではないが資金を増加させる可能性があるものとなります。言い換えれば、他の有益なシグナルによって十分カバーされるような、わずかな損失が誤差によって引き起こされますが、これによって、出力変数に対する汎化レベルの高いモデルを得ることができます。この場合、そのようなモデルの誤差の程度を知ることは非常に重要です。したがって、シグナルの信頼性はこれによって訂正されます。

最後に、モデルを構築するときの最も重要な点は、出力変数に対して意味を選択することです。当然のことながら、一番に思い浮かぶのは利益です。過去の勝ちシグナルは1、負けシグナルは0と表記されます。しかし、出力に関するセマンティック変数は他にも多くあり、シグナルの後にロールバックがあるか、特定の利益が達せられるか、シグナルに続くバーは弱気であるか強気であるかなどの市場についての貴重な情報を提供します。したがって、同じ入力データを使用しながら、出力変数にさまざまな意味を割り当てることができます。これは市場に関するより多くの情報を生み出し、複数のモデルが互いを確認し合えば、利益の可能性が増します。

しばしば、長期で100以上のシグナルを受信しようとするトレーダーを見かけますが、これには同感できません。食べていくためには10-15のシグナルで十分で、誤差は20%に抑えるというのが私個人の意見です。これは、10件のうち2件のシグナルが最大損失を与えるとしても、8つの正しいシグナルが残っているという事実に起因します。少なくとも2件は損失をカバーするのに十分な利益を生み出すでしょう。

では、充分に長く機能するモデルを構築するにはどうしたらいいでしょうか。たとえば、1、2週間の間、M5でシステムを安定して稼働させる必要があり、主指標、主取引システム(ここではシーケンシャル)が毎日平均5シグナルを生成すると仮定します。市場状況の9つのモデルのそれぞれについて10シグナルが取られます。1週間にはわずか5取引日しかないので、モデルのいくつかは全く作動しない可能性があります。実践から、各モデルは週に2回以下、非常にまれな場合には1週間に3回、トリガされることがわかっています。10シグナルのサンプル外の期間の信頼区間を考慮すると、これは汎化されたNNが1週間以上も機能することを示します。


4. ニューラルネットワーク理論

ここでニューラルネットワークの理論に移りましょう。トポロジー、名前、訓練方法についてお話しすると思われているかもしれませんが、そうではありません。

ここでお話しするのは、ニューラルネットワークの使用には2つの方向があってトポロジーが異なり、そのうちの1つは予測、もう1つは分類に使われるということです。

予測ネットワークは、出力変数の将来の値を生成します。方向自体に加えて、クォーツの方向(上または下)の度合いも生成すると考えられています。たとえば、現在のEURレートが1.0600で、ネットワークが、それが1時間で1.0700に上昇すると出力するとします。つまり、ネットワークは+100ポイントを予測します。未来は定義されていないため、このようなニューラルネットワークへのアプローチは承認できません。個人的に、私はこの哲学的議論がこのようなNNの使い方を放棄するのに十分であると思います。もちろん、これは単なる好みの問題であることはわかっていますし、ネットワークの予測が非常にうまくいっていることには言及する価値もあります。

しかし、私が好むのは分類ネットワークです。これらが与えるのは市場の状態についての知識です。それがより正確にわかるほど、取引はより成功します。いずれの場合も、ネットワークからの応答を受け取ったら何らかの行動を起こす必要があります。初めの場合、1.0600で買い、価格が1.0700に達したら売ります。2番目の場合、単に買って次のシグナルで決済しますが、正確な価格レベルは予測できません。

このアプローチの本質を明らかにするために、1つの歴史的な逸話を見てください。ある日、世界チェスチャンピオンのギャリー カスパロフは、次の動きを計画するときにどれだけ多くの動きを考えるかを尋ねられました。 誰もが、カスパロフの答えが大数だと思っていました。しかし、このチェスプレイヤーが言ったことは、ゲームの本質を理解しているのはごく少数であることを証明するものでした。「チェスの中で最も重要なことは、何段階先に進むかではなく、現在の状況をいかにうまく分析できるかです。」外国為替市場にも同じことが当てはまります。ゲームの本質を理解するために、先のバーを見る必要はありません。ある時点での市場の現在の状態を判断して適切な動きをするだけで十分です充分なのです。

これは私が最も好むイデオロギーですが、これもやはり好みの問題です。予測ニューラルネットワークの人気も高く、その存在する権利を否定することはできません。


5. 人工知能システムの内部構成

ニューラルネットワークの構築と使用の2つ(予測と分類)のアプローチの存在に加えて、このテーマにはAIシステムの開発者とそのユーザーという2種類のスペシャリストが存在します。ストラディバリは間違えなく、バイオリンをとてもうまく演奏したのでしょうが、バイオリンの名手としては有名になりませんでした。楽器の製造者は確かにそれを使うことができますが、マスターがいつも自分が作ったものの可能性を完全に理解できるとは限りません。残念ながら、ここに記載されているオプティマイザの著者からは電子メールへの返信がなく、連絡することができませんでした。しかし、彼は多くのフォーラムの常連に知られています。彼の名前はYury Reshetovです。

私は彼のアプローチを作業に使用し、彼とのコミュニケーションの結果、オプティマイザの内部構造を知りました。ここではそれをお伝えしたいと思います。オープンソースでの公開だったので、Reshetovさんが気になさらないことを願っています。AIシステムのユーザーとして、プログラムコードを理解する必要はありませんがオプティマイザの内部構造を知ることは必要です。この製品に注目したのは主にオプティマイザが古典的なものとは異なる訓練方法を使用しているからです。ニューラルネットワークを訓練する際の弱点は過剰訓練です。過剰訓練が起こったかどうか、またどの程度まで起こったのかを判断するのは事実上不可能です。Reshetovのオプティマイザは異なるアプローチを採用しています。ネットワークの過剰訓練は不可能で、過小訓練することしかできません。このアプローチにより、ネットワーク学習の質をパーセンテージで評価することができます。100%の上限がありますが、そのような結果を達成することは非常に困難です。たとえば、80%のレベルで訓練されたネットワークは20%の場合にエラーを生成することがわかっているので、それに備えることができます。これが、当方法の主な利点の1つです。

オプティマイザ操作では、コード付きのファイルが作成されます。それは2つのネットワークを含み、それぞれは非線形方程式です。各関数はまずデータを正規化し、その後非線形方程式の入力に供給されます。汎化能力を高めるために、2つのネットワークからなる「委員会」が実施されています。シグナルは、両方とも「はい」と答えると有効、両方とも「いいえ」と答えた場合は偽となります。両ネットワークの値が異なった場合には「不明」応答が受信されます。注意事項:過去のデータでは常にシグナルを分類することができるため、過去に「不明」状態はありません。したがって、ここでは、「不明」とは、偽シグナルと有効シグナルの両方の同時発生を意味します。これはバイナリ計算から量子計算への移行をもたらします。類推として、量子ビットを考えてみましょう。量子ビットは1と0の値を取ることができ、「不明」と同じです。この応答は、履歴内では1と0の両方になります。取引にはここに隠された小さなトリックが使われますが、これについては少し後で説明します。

データの準備に移りましょう。データ自体は、Excelテーブルとして表されます。ここの列はネットワーク入力です。最後の列は出力変数で、1と0が含まれます。ここでの場合、利益を受けたシグナルは1、損失を受けたシグナルは0です。この表の行は、シグナルが現れたときに格納されたデータを表します。オプティマイザに読み込むと、この表は教師データとテストサンプルの2つのに分割され、2つのネットワークは横断的に訓練されます。しかし、計算と最適化はこれらのネットワークの委員会で実行され、各ネットワークは全体的な結果を考慮されながら別々に訓練されます。

最後に、使用したAIシステムやプログラミング環境は関係ないことを強調します。ネットワークの入力データが良好なおかげで、最も基本的なパーセプトロンでさえも誤差の逆伝播の方法を使用して訓練され、過剰訓練されることはありません。不可欠な要素は、AIシステムではなく使用されるデータの品質です。 したがって、オプティマイザは最初にデータを正規化し、その後、データは従来の非線形方程式に供給されます。入力データが出力変数の理由である場合、20個の係数を持つこの単純な方程式は、近い将来20%の誤差で10件のシグナルを生成するでしょう。しかし、何度も指摘されているように、価格変革はどのようなものでも遅れにつながります。指標には通常遅れがあり、これはAIシステムの動作に影響します。入力変数と出力変数については、次の記事で詳しく説明します。

 

6. TDシーケンシャルとNN

さて、上記の理論の実際的な応用に移りましょう。

ライブ取引でインターバルを分析します。NN操作は青い矢印で示されます。下向きに赤い点を指している矢印は売りシグナルが有効であることを意味します。矢印が上向きの場合、シグナルは偽です。矢印がない場合に示されるのは「不明」応答です。これは買いシグナル(青い点)では反対です。上向きの矢印は有効なシグナル、下向きの矢印は誤ったシグナルを示します。

日中のモデルの操作を考えてみましょう。利益を得ることは一見難しく見えますが、実際は難しくありません。ここでは分離原則の理解が助けになります。例えば、異なる2つのシグナルがあるとします。AIによれば、そのうちの1つは無効で、あと一つは実際に利益を得る売買シグナルです。AIから受信された次の「偽」売りシグナルは、同じ分離領域を参照しているかどうか、またはそれらが単に同じであるかどうかについて確認される必要があります。条件が満たされている場合、シグナルが利益につながるためには、指標を、矢印が市場の方向すなわちシグナルの利益に向くようにする必要があります。

図をご覧ください。最初の売りシグナル(赤い点)は不採算であることが判明しました。しかし、矢印が下向きになると、シグナル#1と売りシグナル#2が同じ領域にあるので、有益となります。矢印を回すことによって、2番目のシグナルも利益を上げることができ、取引することができました。次に買いシグナルを考えてみましょう。見てわかるように、この場合、AIは再び収益性の高いシグナルが偽であると仮定するという間違いを犯しました。状況を修正するには、買いシグナル#3の矢印を逆転させるだけです。その結果、シグナル#4は正しい方向を示し始めました。しかし、シグナル#5は以前のシグナルとは異なる別の領域に入り、一般的に市場の反転につながりました。

言い換えれば、我々は着実に失われた反モデルを得て、それを逆転させ、有益なモデルを得たのです。この方法はモデルの方向付けと呼ばれます。原則として、これは単一のシグナルで実現されます。買いシグナルと売りシグナルが1つずつ日の冒頭に表示されるのを待って、それらを方向付けして作業に使用するだけで十分です。これによって、1日に少なくとも3〜4シグナルが得られます。大切なのは、過去のシグナルとそのパフォーマンスを確認することではありません。代わりに、2つの最新のシグナルを互いに比較し、それらが単一のグループに属しているかどうかを確認し、前のシグナルの結果が分かっている場合には、どのような処置をとらなければならないかを確認することです。同時に、ニューラルネットワークがエラーを生成する可能性があることは忘れるべきではありません。


図2 BuyVOLDOWNOPNDOWN.mq5及びSellVOLDOWNOPNDOWN.mq5指標


図3 BuyVOLDOWNOPNDOWN.mq5及びSellVOLDOWNOPNDOWN.mq5指向指標

次の2つの図は、ネットワークの4日間にわたる動作を示しています。動作には2番目のシグナルのみが使用されることには留意すべきです。利益を受け取ったすべてのシグナルは緑色の線、損失を伴うシグナルは赤色の線でマークされます。最初の図はネットワークの純粋な操作を示し、2番目の図はその日の最初のシグナルに従って操作を示しています。最初の図は間違いなく印象的です。しかし、2番目の図を見て取引システムを方向付け、日の2番目のシグナルから取引を処理し始めると、画像ははるかにきれいになります。逆転技法の適用には慎重さが欠かせないことはお忘れにならないでください。


図4 正しい方向に向いていない日足指標


図5 日の最初のシグナルに基づいて方向付けられた日足指標(売買別)

 

この形式では、モデルはもはや失敗作には見えず、むしろかなり機能的です。信頼区間リソースを使い果たしていないので、おそらく数日有効です。

分類の本質は、多次元データ空間をユニバーサルラインで分割し、シグナルを「有効」グループと「偽」グループに分類することです。「有効な」シグナルはゼロより上、「偽」シグナルはゼロより下にあります。ここで重要なのは、シグナルを他のシグナルから分離する際の安定性で、TS方向の概念が導入されることになります。重要なのは、ネットワークがいつ一貫して負け始めたかを特定して反転シグナルを生成することです。原則として、この場合、日の最初のシグナルが誘導シグナルとなります。このシグナルは、他の分析要因に基づいて慎重に取引することができます。ネットワークの整列がずれていないことを確認するには、出力変数の0と1の数を等しくしてみることをお勧めします。イコライゼーションのためには、最も遠いシグナルから始めて、過剰な0と1を教師データから自由に取り除いてきます。

安定さが保たれている限り分裂の正確な過程は重要ではありません。例に戻りましょう。図2では、立て続けに2つのエラーを受け取ったのでこの状況を再度の方向付けに利用しました。ご覧のように、M15でシーケンシャルを実行すると、1日に2〜5シグナルを得ることができます。たとえば、2つの買いシグナルが異なるクラス(1つは有効、もう1つは偽)に属する場合、最初のシグナルの結果を知ることで、現在のシグナルが偽か有効かを簡単に判断できます。しかしながら、方向付け法は注意深く適用されるべきです。ネットワークはエラーの発生後に正常に動作し続ける可能性があります。何にしても、機械的な反応とパターンに対する直感は両方、経験とともに身につくものです。得られたモデルの持続可能性についてのトピックには多くのニュアンスがあるので、これは後の記事でより詳細に検討する予定です。

注意事項:添付ファイルは上の図を参照します。ダウンロードし、指定した日付で検証することが可能です。取引システムはクォーツに敏感ではありません。重要な時点のクォーツが異なるためにシーケンシャルが別のブローカーでシグナルを生成しなかった場合がありましたが、そのような場合はまれです。入力データは同じソースから提供されて変わらないため、誰にとっても同じなはずです。同時に、ダウンロードしたファイルをコンピュータで実行したときに同じ結果が得られるという保証はありません。しかし、モデルを使って現在のシグナルと前のシグナルを分離することはできるはずです。

最後に、上記のもう一つの質問について考えてみましょう。ネットワークが「不明」シグナルを生成した場合にはどうすればいいのか、また「不明」とは何を意味するのでしょうか。繰り返しますが、履歴には「不明」というような概念の居場所はありません。「不明」とは単に、教師データに類似のパターンが含まれておらず、この問題に関する委員会の2つのネットワークの意見が分かれていたということです。得られたシグナルが有効かつ偽である可能性があることということです。より大きな履歴セグメントを使用することによって必要なパターンが見つかり、ネットワークがそのパターンを識別できるようになる可能性は非常に高いです。しかし、訓練の期間は短く、およそ30シグナルで、約8-10日に相当します。もちろん、訓練中に存在しなかったシグナルや馴染みのないモデルは定期的に出現します。私の観察によれば、「不明」応答はモデルが長く動作するほど多くなります。これは、過去は未来を指さないという「生きている市場」理論によく似ています。最近のパターンは、すぐに、あるいは遠い将来にのみ繰り返されるかもしれません。市場の本質は、閉じられたバーの重要性は、履歴の中に深く入り込むにつれて徐々に低下するということです。これは、情報についての一般的な規則です。古くなるほど情報の重要性は低くなります。

「不明」状態を分類するには、2つの方法があります。次の図をご覧ください。ここには矢印なしの「不明」シグナルが見られます。委員会の2つのネットワークは、それぞれ違った解釈をしています。これらのシグナルは、図中では1と2で示されています。最初のシグナルは、利益を上げるためには偽でなければなりません。


図6 日々の状況に応じたシグナル方向の編成方法

 

「不明」状態を再分類するには2つの方法があります。最初の方法は非常に簡単です(図7参照)。初めの売りの「不明」シグナルは偽だったと判断しました。つまり、「不明」売りシグナルは偽とみなされます。買いを続けるとすると、シグナル#2もまた偽と見なされます。実際には、ネットワークは間違いを犯しましたが、実際にはこのミスは、より良い価格で市場に参入することによって取り消される可能性があります。したがって、上向き矢印の出現は、シグナルが実際には偽であることが判明したにもかかわらず、大した害を及ぼしません。「不明」買いシグナルが最後に発生した時に買いシグナルが偽であったので、「不明」買いシグナル(青い点)も偽とみなされます。この方法は非常に古く、経験的によく機能することを示しています。


図7 別クラスと見なされたときの「不明」シグナルの再分類

「不明」状態分類の第2の方法は、オプティマイザの内部組織を呼び出し、それを基盤として使用します。したがって、「不明」状態は、委員会の1つのネットワークに1が表示され、もう1つのネットワークに0が表示されているときに表示されます。この方法の本質は、正解を示す委員会のネットワークを選ぶことです。例に戻りましょう。シグナル#1 は、ネットワークAが正でネットワークBが負であったので、偽であることが判明しました。したがって、ネットワークBが正で、ネットワークAが負であった場合、この「不明」状態が有効になります。買いシグナルに関してはすべてが逆です。ネットワークAの応答が負であってネットワークBの応答が正であった場合、前のシグナル(図には存在しない)は偽でした。現在の買いシグナルでは状況が逆のため、このシグナルが有効であると想定し、買い取引を行うことが推奨されます。


図8 各委員会のネットワークの値に応じた「不明」シグナルの再分類

個人的に、私はより論理的な説明をしている「不明」状態の最初の分類方法を好みます。2つのネットワークの委員会を使用する場合、「はい」、「いいえ」、「不明」の3つのクラスがあります。データはこれらの3つのグループに分散されます。重要なのは、3つのグループが存在するということではなく、それらが根本的に異なっているということです。「不明」シグナルを得て後にその方向を見つけると、このグループ内の後続のシグナルは同じ方向を有すると考えられます。現在の経験では、この方法は2番目の方法よりも信頼性が高いことが示されています。

金融市場を予測することは難しいです。それは、実際の人々が働く、生きている、予測不可能な生物です。日中、市場の状況は大幅に変化する可能性があるため、それを想定することは誰もできません。このような変更の特徴は、2つの要素で構成されています。1つ目は前にお話しした市場の状況です。2番目の理由は、買い手と売り手の活動が即刻、リアルタイムで行われることです。したがって、取引とは、時間内に方向を定めて高い注意を払うことです。

AIを使うことは、万能薬でも聖杯でもありません。もちろん、ニューラルネットワークを使用して取引する場合、人工知能の主張を聞く価値はあります。しかし、取引をするときに頭を使ってください。AIからのシグナルが受信されたら、それが確認されるのを待ち、正しいレベルを選択し、ロールバック確率を評価することなどが必要です。これは、第3の記事で議論したいのですが、ニューラルネットワークを使用したシーケンシャル戦略に基づいた取引の実際的な特質に専念するものとなります。

 

7. 終わりに

ここでもう一度、本稿が事実上、純粋に方法論的なものであることを強調したいと思います。記載されたすべての方法は取引システムで使用することができますが、ここでの推奨も役立つことと思います。

記載された方法については支持と反対の両方に意見が分かれるだろうことは確信しています。ここまで読まれた方は少なくとも興味はいくらかお持ちだと思いますので、特に建設的な解決策、洗練や修正をお持ちの場合、反対意見をいただけるとありがたいと思います。言い換えれば、建設的な批判をお願いします。このアプローチの持続可能性は、私と一緒に人工知能システムを構築することによって証明することができます。プロのプログラマーの方と一緒にこのプロジェクトに取り組めればうれしいと思います。ご協力よろしくお願いします。

TDシーケンシャルのコードは本稿末尾に記載されています。また、取引開始時の日の状況と方向性を考慮して、売買シグナルをフィルタリングまたは分類する指標も提供されています。指標はMQL4から書き直されており、本稿に表示されたすべてを完全に再現するための機能は提供していないことにご注意ください。これは、NNの入力データには、有料サブスクリプションでのみ利用可能なClusterDeltaプロジェクトの指標セットが必要なためです。

関心を持つ方すべてのために、指標の操作のための準備ファイルを提供したいと思います。必要なすべての指標をMQL5に書き換えて操作アルゴリズムを完全に再現することは興味深いでしょう。ここでの私の仕事は、ニューラルネットワークの作成と訓練のためのオープンソースコードを有名なデマーク戦略でどのように使用できるかを示すことでした。コメントをお待ちしています。ご質問には答えさせていただきます。


以下は本稿で使用されているプログラムです。

 # 名称
種類
 説明
1  TDSEQUENTA_by_nikelodeon.mq5 指標  これは基本戦略で、売買シグナルをそれぞれ青と赤の点としてで生成します。緑の点はシグナル形成条件が満たされていて、シグナルの形成を待つ必要があることを意味します。この戦略は、緑の点を使用して事前にトレーダーにシグナル形成を警告するので便利です。
2  eVOLution-dvoid.1.3 (1).mq5 指標  前日の取引量と建玉のデータを含むテキストファイルを読み込んでデータ間の差異を計算し、そのすべてを指標バッファに格納します。これはのちにデータを保存するときおよび現在の日のモデルを選択するときにアクセスされます。言い換えれば、この指標は市場の文脈を整理します。
3  dvoid-BP.csv テキストファイル
 毎朝7時30分にシカゴ証券取引所のウェブサイトから取引量と建玉に関する情報を保存するように設計されています。データは毎朝手動で記録されます。ファイルはtxt拡張子でアップロードされるので、ダウンロードした後、拡張子をcsvに変更して、..\Files\evolution-dvoid\dvoid-BP.csvとして配置する必要があります。
4  BuyVOLDOWNOPNDOWN.mq5 指標  取引量と建玉の両方が減少した日に買いシグナルを分類するためのネットワーク
5  BuyVOLDOWNOPNUP.mq5 指標  取引量が減少して建玉が増加した日に買いシグナルを分類するためのネットワーク
6  BuyVOLUPOPNDOWN.mq5 指標  取引量が増加して建玉が減少した日に買いシグナルを分類するためのネットワーク
 7  BuyVOLUPOPUP.mq5  指標  取引量と建玉の両方が増加した日に買いシグナルを分類するためのネットワーク
 8  SellVOLDOWNOPNDOWN.mq5  指標
 取引量と建玉の両方が減少した日に売りシグナルを分類するためのネットワーク
 9  SellVOLDOWNOPNUP.mq5  指標  取引量が減少して建玉が増加した日に売りシグナルを分類するためのネットワーク
 10  SellVOLUPOPNDOWN.mq5  指標  取引量が増加して建玉が減少した日に売りシグナルを分類するためのネットワーク
 11  SellVOLUPOPNUP.mq5  指標
 取引量と建玉の両方が増加した日に売りシグナルを分類するためのネットワーク

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

銘柄とEAのORDER_MAGICによるバランス/エクイティチャートの分析 銘柄とEAのORDER_MAGICによるバランス/エクイティチャートの分析

MetaTrader 5のヘッジ導入は、複数のエキスパートアドバイザーを1つの取引口座で同時に取引する絶好の機会を提供します。1つの戦略が利益を上げ、2番目の戦略が損失を生み出している場合、利益チャートはゼロに近い値を表示するかもしれません。この場合、各取引戦略のバランスチャートとエクイティチャートを別々に作成することが便利です。

クロスプラットフォームEA: シグナル クロスプラットフォームEA: シグナル

この記事では、クロスプラットフォームEAで使用される CSignal および CSignals クラスについて解説します。 MQL4 と MQL5 の違いについて、トレードシグナルの評価に必要なデータがどのようにアクセスされるかを調べ、記述されたコードが両方のコンパイラと互換性があることを確認します。

Wolfe波動 Wolfe波動

このBill Wolfe氏によって提案された視覚的手法は、市場参入の瞬間と方向を特定するためのパターンを検出することを可能にし、価格目標とその到達時間を予測するのに役立ちます。本稿では、Wolfe波動を検索するジグザグに基づいた指標を作成する方法と、この指標に基づいた簡単なエキスパートアドバイザーで取引する方法について説明します。

グラフィカルインターフェイスX:マルチラインテキストボックスでのテキスト選択(ビルド13) グラフィカルインターフェイスX:マルチラインテキストボックスでのテキスト選択(ビルド13)

本稿では、他のテキストエディタと同様に、さまざまなキーの組み合わせによってテキストを選択して選択したテキストを削除する機能を実装します。さらに、引き続きコードを最適化し、ライブラリの進化の第2段階の最終プロセスではすべてのコントロールが別々の画像(キャンバス)としてレンダリングされるため、これに向かってクラスを準備します。