English Русский Deutsch
preview
MQL5の圏論(第11回):グラフ

MQL5の圏論(第11回):グラフ

MetaTrader 5 | 14 8月 2023, 08:14
123 0
Stephen Njuki
Stephen Njuki

はじめに

前回の記事では、典型的なモノイド内の対称性の概念を探ることにより、モノイド群を詳しく掘り下げました。モノイド群のすべてのメンバーが単位元を生成するためにミラー要素間の逆および制限された二項演算を持たなければならないという追加の公理を導入することで、重要な取引決定点でのモノイドの適用可能性を拡張しました。これに基づいて、圏論と、グラフ理論を調べることによる取引システム開発における実際の応用の研究を続けます。

グラフは、複雑なシステムをモデル化し、さまざまなコンポーネント間の関係を視覚化するための強力なツールとして機能します。取引システム開発のコンテキスト内で、MQL5での圏論グラフの実装は、貴重な洞察と、意思決定プロセスの見方に別の視点を提供する可能性があります。前回の記事では、取引の意思決定を改善するためにモノイド集合の再分類と正規化におけるモノイド群の可能性を示唆しましたが、この記事では、MQL5取引システム開発の一部としての圏論グラフの有用性を探ります。圏論におけるグラフの広範な有用性と相互関連性は認識されていますが、この記事は取引システム開発に対する具体的なメリットを強調することを目的としています。トレーリングストップ管理は、取引システムを検討した以前の記事の場合と同様です。

この記事全体を通じて、MQL5でグラフを利用することのさらなるメリットを明らかにし、グラフがどのようにシステム設計と組織を強化し、高度なデータ分析と視覚化を促進し、システムの最適化とパフォーマンスの向上にどのように貢献するかを検証します。ただし、それらは焦点ではありません。


圏論におけるグラフの理解

グラフは、システム内で相互接続された頂点とそれらをリンクする矢印を「具体的に」定義する方法です。したがって、圏理論内では、それらは4つのもの、すなわち、頂点の集合、これらの頂点をリンクする矢印の集合、各矢印のソース頂点を写像する矢印集合から頂点集合への準同型写像関数、そして最後に、矢印のターゲットからこれらの頂点への準同型写像関数から構成されます。

ただし、先に進む前に、グラフ理論と圏論の主な違いについて述べておくと役立つかもしれません。一見すると、どちらも物事を結びつけるものであるように見えますが、なぜ同じものではないのかという平凡な疑問が生じるかもしれません。この質問に答えるには、調理プロセスを例として、その手順と各段階の材料を考えてみます。グラフ理論は、特定のレシピに対するこれらの準備ステップのシーケンスと、おそらくレシピを変更または改善する際に使用できるこれらのステップの他の反復()に焦点を当てます。一方、圏論では、各調理ステップでの変換にさらに注目し、他のレシピの調理ステップの変換とどのように比較できるかを検討することで、より抽象的な見方をします。もう1つのレシピは、各調理ステップを材料のリストを特徴とする集合/始域であるとみなした場合、別のカテゴリになります。言い換えれば、圏論はステップシーケンスよりも射(この場合は関手)に重点を置いています。したがって、ここでは圏論のツールとしてグラフを見ています。この主題の詳細についてはグラフのカテゴリとカテゴリのグラフに談話があります。

したがって、私たちの目的では、グラフは、相互接続されたシステム内のステップの数と順序をカタログ化する手段と考えることができます。モノイドの検討を始めて以来、次の手順に従った取引決定システム(各ノードにモノイドがある)を検討してきました。

  1. 時間枠を選択
  2. 過去の期間を選択
  3. 適用価格を選択
  4. 指標を選択
  5. そして最後に取引アクションを選択

これは、以下に示すように図的に表すことができます。


以下に示すように、同じステップの代替システムを描くこともできます。

オプション1


またはオプション2


これらのオプション1と2のそれぞれについて、時間枠と取引アクションの間の中間ステップを単純に繰り返しただけです。以下のケーススタディ2で説明するように、さまざまな道を作成する可能性により、取引の意思決定に役立つ可能性のあるさまざまなパターンが示されます。

ただし正式には、時間枠から取引アクションまで実行されるデフォルトのシステムを考慮すると、グラフは矢印テーブルと頂点テーブルの2つのテーブルで表されます。これらを以下に示します。


矢印テーブルのソースインデックスとターゲットインデックスは頂点インデックスです。矢印内のインデックス列は、矢印を列挙するためにのみ機能します。

取引システムを改造するにあたり、過去の記事にあるように、振り返り、適用価格、指標の内部ステップを交互に行うことでグラフの重要性を探求することを検討し、レポートを共有しました。ロジックが過度に複雑にならないように、開始ステップと終了ステップを同じにします。さらに、「理想的なシステムは存在せず、むしろこれらは新しいバーごとに変化すると予想される」という仮説を考慮する場合、さまざまなグラフ間の可能な準同型写像を検討します。したがって、与えられた次のグラフ準同型写像、たとえば最近の2つを投影しようとします。


MQL5と取引システム開発

この連載では、組み込みのMQL5ウィザードライブラリからの取引システム開発について説明してきました。エキスパートアドバイザー(EA)としての取引システムは、ユーザーがライブラリで利用可能なものからシグナル、資金管理方法、およびトレーリングストップ方法をプロセス中に選択する限り、IDE内蔵ウィザードを使用して構築できます。これらの記事では、記事で検討した圏論の概念を使用する代替手段を追加することで、ライブラリ、特にトレーリングストップの組み込みメソッドを拡張することを検討していました。

MQL5での取引システム開発は、比較的単純なコード化されたEAでのデバッグから、正確なティックデータの取得と使用、そして最終的には適切な期間にわたる履歴のテストに至るまで、かなりの数の課題に悩まされることがよくあります。他にも課題はありますが、これらが主な課題であると考えられます。デバッグの問題は、多くの場合、コンパイルの問題(コンパイラーが通知する種類)ではなく、EAのシステムロジックに存在する可能性があるため、他の問題よりも微妙な問題になる傾向があります。そして、これらは、本番稼働までのテストを通じて表われない可能性があります。そのため、できる限り標準ライブラリのパーツからEAを組み立てることが、この落とし穴を回避するのに大いに役立つのです。この目的のために、これらの記事でテストするシステムは、特定の概念を実装するカスタムクラスからの変更のみを加えた、公開されているライブラリと標準コードを使用してウィザードによって組み立てられます。


MQL5取引システムにおけるグラフの有用性を探る

MQL5のグラフの抽象的なメリットから始めると役立つかもしれません。これは、全体的にシステム設計と組織を強化する可能性があるためです。

時間枠の選択と取引アクションの選択の間に取引ステップの理想的な順序がないという仮説を考慮すると、これらのシステム間の変化をグラフ準同型写像として利用できる可能性があります。これらの準同型写像は、予測が可能かどうかを確認するために、順序どおりに二次関係または線形関係を調べることができます。別の言い方をすると、グラフを活用して取引システムのコンポーネントの関係をより適切に管理しています。

グラフの準同型写像の間にそのような関係を確立できれば、それが二次であろうと線形であろうと、他のまたは同様の価格行動の状況でそれを再利用できるため、そのような関係を再調査して計算する必要がなくなります。別の言い方をすれば、取引システムのモジュール性と再利用性を向上させているのです。

それだけではありません。「閉じた」取引システムから一歩外に出て、グラフのさまざまな「道」によって他に何が示されるかを確認しようとすると、道の種類と価格変動の間の相関関係を分析できる可能性があります。始値、高値、安値、終値の典型的な4つの価格を持つ単一の価格バーを検討するとします。通常、それらの順序は常にOHLCであるとは限らないため、これらを道とみなすことができます。強気のバーでは、常にではありませんが、注文はOLHCになる可能性があります。このような観察は、以前の足内価格変動の経路タイプに基づいて価格行動の変化を早期に検出することによるパターン認識につながる可能性があります。

また、時間枠の選択で始まり取引アクションの選択で終了する5ステップ取引システムの内部ステップを単純に色分けし、EAにこれらの色分けされた一連のステップを定期的に更新してチャート上に表示させると、次のようになります。添付されていれば、その時点でどのようなシステムを使用しているかが一目でわかります。これは、理想的なステップシーケンスが新しいチャート価格バーごとに変化する可能性があるという以前の仮説に固執する場合に役立ちます。このような動的な形式での取引システムの視覚的表現は、トレーダーが分析し、長期的な価格動向の傾向を理解するのに非常に役立ちます。

入力パラメータがグラフの設定に調整されている場合、取引システムの最適化とパフォーマンスの向上をグラフで活用することもできます。たとえば、ここで検討しているものとは異なる取引システムで、各タイプの足内価格ステップの理想的なエントリシグナルを見つけようとした場合(上記のOHLCを参照)、これらは戦略的な期間にわたって最適化され、ウォークフォワードテストが可能になります。戦略に根拠があるかどうかを確認するためにおこなわれます。

ただし、グラフにもボトルネックがあります。主なものは、視覚的な表現と解釈の要件です。流動的な取引環境ではこれはかなりの負担になる可能性があります。そのため、グラフを使用するEAは、より流動的で効率的な実行を可能にするために、さまざまなシステムステップのインデックス作成などのメモリ効率の高い方法を使用して、可能な限りシームレスで機敏になる必要があります。


ケーススタディ:MQL5でのグラフの実装

ケーススタディ1:イントラ価格バー値に基づくグラフ

最初のケーススタディでは、以前の記事の場合と同様に、遅行イントラ価格バーのさまざまなグラフの道が後続の価格バーの最終的な高値と安値の範囲に与える影響を調べることができます。要約すると、イントラ価格バーは始値、安値、高値、終値のシーケンスを考慮します。常に始値で始まり終値で終わりますが、高値と安値の順序は標準的ではありません。この変動性により、その後の高値と安値の変化との関係を研究することができます。これを達成するには、以前と同様にExpert Trailingクラスのインスタンスを構築し、このペアをライブラリ内の他の既存のクラスと組み合わせてシグナルとマネーの管理を行い、EAを形成します。この研究では、トレーリングクラスを素晴らしいオシレーターシグナルクラスおよび固定証拠金管理クラスと組み合わせます。

2022年6月から今年6月までの1時間枠でUSDJPYペアのテストを実行すると、以下のレポートに示す結果が得られます。

r1

ケーススタディ2:従来の取引システムを改変したグラフ

2番目の研究では、以前の記事で使用した取引システムの内部ステップのさまざまな反復を検討できます。ステップは、時間枠の選択、振り返り期間の選択、適用価格の選択、指標の選択、そして最後に取引決定の選択であったことを思い出してください。したがって、ケース1のグラフの道の最初と最後の頂点を制約したため、時間枠の選択と取引決定の選択もそれぞれ最初と最後に固定します。したがって、テストと検討では、振り返り期間、適用価格、指標の選択を繰り返して、さまざまな道を見つけ出します。各道の影響は、ケース1と同様に、価格バーの範囲間の変化を予測する精度が検査されます。選択した反復に基づいて作成された予測は、以前の記事の場合と同様に、トレーリングストップの調整に使用されます。

ケース1と同様にUSDJPYペアでテストを実行すると、以下のレポートに示す結果が得られます。

r2


潜在的な課題と考慮事項

上記の2つのケーススタディで実装されたテストEAからわかるように、取引システムでのグラフの使用はかなり複雑で、有意義な結果を得るには急勾配の学習曲線が必要です。最初のEAでは、始値、高値、安値、終値のバー内価格ステップから道を導き出しました。これらの道は、各矢印の重み付けさえ含まれていない基本的なクラスとしてコード化されています。この機能は、時間の経過とともにグラフクラスインスタンスが新しい矢印情報で更新される場合に役立ちます。代わりに使用したのは、新しいバーごとに初期化されるクラスインスタンスであり、学習したメモリが失われます。後者の実装では、理想的には、これらのグラフのIDEサンドボックスにファイルを保存する必要がありますが、それ自体がメモリを消費します。さらに、ケーススタディで使用した単純なクラスと比較して、テストにかかる処理能力と時間が増加します。また、各頂点をバー内の価格点として定義することを選択しましたが、各価格点を終値として定義するというより計算効率の高いオプションを使用することもできました。これは、決定を慎重に比較検討し、システムの期待される精度とのバランスを取る必要があることを示しています。さらに、有向グラフには多くの種類があり、開発者は、念頭に置いている戦略に最も適したものを慎重に選択する必要があることを意味します。さらに悪いことに、証券会社の価格データは決して完全ではなく、ギャップや価格の欠落が多いことがよくあります。それに加えて、グラフの矢印間の関係、接続された価格ポイントの関係はかなり複雑です。それは、市場の状況、投資家心理、経済事象やその他多数の要因を含む多数の要因によって影響されます。グラフシステム開発者は、長期的にシステムが有意義な取引結果を得ることができるように、これを把握する方法を考案する義務があるかもしれません。ここで導入された曖昧さの量を考慮すると、プロセスは確かに複雑になります。そして最後に、ここでスケーラビリティを考慮する必要があります。新しい価格データが毎日実現されると、グラフ、特に重みを伴う学習(ケーススタディではカバーしませんでした)を更新する必要があるからです。開発者がこれを回避するためにクラスをコーディングするスマートで効率的な方法を思いつくことができない限り、グラフの再トレーニングの計算負荷は時間の経過とともにさらに高くなるはずです。

少なくともMQL5でのグラフ理論の実装を支援するのに適したライブラリはまだありません。これは、プログラマーが実行可能なソリューションを考案するために、時間とリソースを大幅に投資する必要があることを意味します。また、それらは一般的に共有されずに独立しているため、間違いが発生しやすくなります。比較のために、MQL5 IDEでは、相対強度指標からボリンジャーバンド(合計47個以上)まで、多数のアイデアを実装した多数の取引指標が利用可能で、最初からコードを作成することなく使用できます。

上で強調したように、MQL5の適切なライブラリを使用せずにグラフ構造とアルゴリズムを最初から実装することは、時間がかかるだけでなくエラーが発生しやすく、トレーダーは実行可能なソリューションのコーディングに多大な労力を費やす必要があります。このプロセスでは開発時間が長くなるだけでなく、バ​​グや非効率が発生するリスクも高まります。

グラフ理論の実装とは対照的に、他のいくつかの取引概念では、MQL5で広く使用され、十分に文書化されたライブラリを利用できます。これには、移動平均、オシレーター、トレンドラインなどの組み込みテクニカル指標が含まれます。トレーダーは、車輪を再発明することなく、これらの指標に簡単にアクセスして利用できます。さらに、取引コミュニティによって開発されたカスタム指標の膨大なコレクションが利用可能であり、トレーダーは多数の事前構築されたソリューションから選択できます。

さらに、MQL5は、統計計算、数学的変換、確率分布などの数学関数の包括的な集合を提供します。これらの機能により、トレーダーは複雑な計算と分析を実行できるようになり、洗練された取引戦略の開発が容易になります。

MQL5は多くの取引概念用のライブラリを提供する点では優れていますが、グラフの実装に特化した標準ライブラリが不足していることが大きな課題となっています。戦略にグラフを組み込みたいトレーダーは、過剰な時間と労力、低い信頼性と効率、そして急な学習曲線という障害に直面します。

MQL5内のグラフ実装のギャップを埋めるために、いくつかのアプローチが検討できます。これらには、事前に構築されたソリューションの可用性を大幅に向上させるグラフ関連ライブラリの開発と共有をMQL5コミュニティに奨励するコミュニティコントリビューションが含まれる可能性があります。コラボレーション、知識の共有、オープンソースプロジェクトの作成を促進することで、グラフベースの戦略を取り入れようとしているすべてのトレーダーに利益をもたらす活気に満ちたエコシステムが促進されます。もう1つの手段は、代替ソリューションを提供するためにMQL5エコシステムの外側を探索することを検討できるサードパーティライブラリです。PythonやC++などのさまざまなプログラミング言語には、カスタムDLL(ダイナミックリンクライブラリ)やAPI(アプリケーションプログラミングインターフェイス)の対話を通じてMQL5と統合できる広範なグラフライブラリがすでに用意されています。最後に、将来のMQL5アップデートに標準化されたグラフライブラリを含めるようにサービスデスクに働きかけることによるベンダーサポートは、プラットフォーム開発者の専門知識を活用できます。機能拡張をリクエストし、そのようなライブラリの必要性とメリットについてフィードバックを提供することで、プラットフォームプロバイダーがこのギャップに対処するよう動機づけられる可能性があります。

また、IDEで利用可能なOpen-CLは、パフォーマンスの問題への対処に役立つ可能性があります。


今後の方向性と可能性

取引システムの実装の可能性につながる可能性のある圏論グラフの進歩は毎日起こっています。この問題を取り上げているサイトは、こちらこちらなどにあります。chatGPT 4.0のような人工知能プラットフォームとの統合は、たとえば2年前ほど難解ではないかもしれない、と言えば十分でしょう。たくさんのことが起こっています。有意義な影響をもたらす可能性とさらなる研究開発の機会は今後も芽生え続けるため、この分野では今後もさらにエキサイティングなニュースが聞かれる可能性があります。


結論

この記事では、MQL5での圏理論グラフの実装について説明しました。取引システム開発におけるグラフの有用性が強調されてきました。独自の取引システムで採用および使用する前に、提供された資料とコードについてさらなる調査と研究をおこなうことを読者にお勧めします。

MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/12844

添付されたファイル |
ct_11.mqh (27.33 KB)
MQL5における圏論(第12回):順序 MQL5における圏論(第12回):順序
この記事は、MQL5でのグラフの圏論実装に従う連載の一部であり、順序について詳しく説明します。2つの主要な順序タイプを検討することで、順序理論の概念が取引の意思決定に情報を提供する上で、モノイド集合をどのようにサポートできるかを検証します。
古いトレンドトレーディング戦略の再検討:2つのストキャスティクス、MAとフィボナッチ 古いトレンドトレーディング戦略の再検討:2つのストキャスティクス、MAとフィボナッチ
古い取引戦略。この記事では、純粋にテクニカルな方法でトレンドをフォローするための戦略の1つを紹介します。これは純粋なテクニカル戦略で、シグナルとターゲットを出すためにいくつかのテクニカル指標とツールを使用します。戦略の構成要素は次の通りです。14期間のストキャスティクス、5期間のストキャスティクス、200期間の移動平均線、フィボナッチ予測ツール(目標設定用)。
MQL5の圏論(第13回):データベーススキーマを使用したカレンダーイベント MQL5の圏論(第13回):データベーススキーマを使用したカレンダーイベント
この記事は、MQL5での順序の圏論実装に従うもので、MQL5での分類のためにデータベーススキーマをどのように組み込むことができるかを検討します。取引関連のテキスト(文字列)情報を特定する際に、データベーススキーマの概念を圏論とどのように組み合わせることができるかの基礎を見ていきます。カレンダーイベントが中心です。
MQL5でのグラフィカルパネルの作成を簡単に MQL5でのグラフィカルパネルの作成を簡単に
この記事では、取引において最も価値があり役立つツールの1つであるグラフィカルパネルを作成する必要がある人に、シンプルで簡単なガイドを提供します。グラフィカルパネルは、取引に関するタスクを簡素化および容易にして、時間を節約し、気を散らすことなく取引プロセスそのものに集中するのに役立ちます。