MQL5言語での自動売買ロボットのプログラミングと使用に関する記事

MetaTraderプラットフォームのために作られたExpert Advisorsは、開発者により導入された様々な機能を実行します。自動売買ロボットは1日24時間、通貨をトラックし、取引をコピーし、レポートを送信し、ニュースを分析し、 特別に作成されたグラフィカルインターフェイスを提供することができます。

記事はプログラミングのテクニック、データ処理のための数学的なアイデア、自動売買ロボットの開発と発注についてのヒントを記載します。

新しい記事を追加
最新 | ベスト

DoEasyライブラリでの価格(第64部): 板情報、DOMスナップショットのクラスおよびスナップショットシリーズオブジェクト

本稿では、2つのクラス(DOMスナップショットオブジェクトのクラスとDOMスナップショットシリーズオブジェクトのクラス)を作成し、DOMデータシリーズの作成をテストします。

DoEasyライブラリでの価格(第62部): ティックシリーズをリアルタイムで更新して板情報で作業するための準備

この記事では、ティックデータの更新をリアルタイムで実装し、板情報を操作するための銘柄オブジェクトクラスを準備します(DOM自体は次の記事で実装されます)。

自己適応アルゴリズム(第IV部):その他の機能とテスト

引き続き、必要最小限の機能でアルゴリズムを実装して結果をテストします。収益性は非常に低いですが、連載では、完全に自動化された、根本的に異なる市場で取引される完全に異なる商品で収益性の高い取引モデルを示しています。

ニューラルネットワークが簡単に(第10回): Multi-Head Attention

ニューラルネットワークにおける自己注意のメカニズムについては、以前に検討しました。実際には、最新のニューラルネットワークアーキテクチャは、いくつかの並列した自己注意スレッドを使用して、シーケンスの要素間のさまざまな依存関係を見つけます。このようなアプローチの実装を検討し、ネットワーク全体のパフォーマンスへの影響を評価しましょう。

自己適応アルゴリズム(第III部):最適化の放棄

履歴データに基づく最適化を使用してパラメータを選択する場合、真に安定したアルゴリズムを取得することは不可能です。安定したアルゴリズムは、常時、どんな取引商品で作業していても、必要なパラメータを認識している必要があります。予測や推測ではなく、確実に知っているべきです。

自己適応アルゴリズムの開発(第II部): 効率の向上

この記事では、以前に作成したアルゴリズムの柔軟性を向上させることでトピックの開発を続けます。アルゴリズムは、分析期間内のローソク足の数の増加または上昇/下降ローソク足超過率のしきい値の増加によって、より安定しました。分析のためにより大きなサンプルサイズを設定するかより高いローソク足の超過率を設定して、妥協する必要がありました。

パターン検索への総当たり攻撃アプローチ(第III部): 新しい水平線

本稿では、総当たり攻撃のトピックを続けます。プログラムアルゴリズムに市場分析の新しい機会を導入することで分析速度を高め、結果の品質を向上します。新しい追加により、このアプローチ内でグローバルパターンの最高品質で表示できるようになります。

自己適応アルゴリズムの開発(第I部):基本的なパターンの検索

この連載では、ほとんどの市場要因を考慮した自己適応アルゴリズムの開発を示すとともに、これらの状況を体系化してロジックで説明し、取引活動で考慮に入れる方法を示します。非常に単純なアルゴリズムから始めて、徐々に理論を習得し、非常に複雑なプロジェクトに進化していきます。

ニューラルネットワークが簡単に(第8回): アテンションメカニズム

以前の記事では、ニューラルネットワークを整理するための様々な選択肢を既に検証しました. また、画像処理アルゴリズムから借りた畳み込みネットワークについても検討しました. 今回の記事では、言語モデルの開発に弾みをつけた「アテンション・メカニズム」を考えることを提案します

DoEasyライブラリの時系列(第59部): 単一ティックのデータを格納するオブジェクト

本稿からは、価格データを処理するライブラリ機能を作成します。今日、さらに別のティックで到着したすべての価格データを格納するオブジェクトクラスを作成します。

パターン検索への総当たり攻撃アプローチ(第II部): イマージョン

本稿では、引き続き総当たり攻撃アプローチについて説明します。改良されたアプリケーションの新バージョンを使用して、パターンをより良く説明を試みます。また、さまざまな時間間隔と時間枠を使用して、安定性の違いの特定も試みます。

ニューラルネットワークが簡単に(第7回): 適応的最適化法

以前の記事では、ネットワーク内のすべてのニューロンに対して同じ学習率を用いてニューラルネットワークをトレーニングするためにストキャスティクススロープ降下法を使用しました。 本論文では、各ニューロンの学習速度を変化させることができる適応学習法に着目します。 その是非についても検討していきたいと思います。

ニューラルネットワークが簡単に(第6回): ニューラルネットワークの学習率を実験する

これまで、様々な種類のニューラルネットワークをその実装とともに考察してきました。 すべての場合において、ニューラルネットワークは、学習率を選択する必要があるグラディエントディーセント法を用いてトレーニングされました。 今回は、正しく選択されたレートの重要性とニューラルネットワーク学習への影響を例を用いて示したいと思います。

ニューラルネットワークが簡単に(第5回): OPENCLでのマルチスレッド計算

ニューラルネットワークの実装のいくつかのタイプについては、これまで説明してきました。 これまで考慮されたネットワークでは、各ニューロンに対して同じ操作が繰り返されます。 さらに論理的な進展としては、ニューラルネットワークの学習プロセスを高速化するために、現代の技術が提供するマルチスレッドコンピューティング機能を利用することです。 可能な実装の1つは、この記事で説明しています。

DoEasyライブラリの時系列(第57部): 指標バッファデータオブジェクト

本稿では、1つの指標に対して1つのバッファのすべてのデータを含むオブジェクトを開発します。このようなオブジェクトは、指標バッファのシリアルデータを格納するために必要になります。その助けを借りて、任意の指標のバッファデータ、および他の同様のデータを相互に並べ替えて比較できるようになります。

DoEasyライブラリの時系列(第56部):カスタム指標オブジェクト、コレクション内指標オブジェクトからのデータ取得

本稿では、EAで使用するためのカスタム指標オブジェクトの作成について検討します。ライブラリクラスを少し改善し、EAの指標オブジェクトからデータを取得するメソッドを追加しましょう。

パターン検索への総当たり攻撃アプローチ

本稿では、市場パターンを検索し、特定されたパターンに基づいてエキスパートアドバイザーを作成し、これらのパターンが有効であるかどうかを確認します。

ニューラルネットワークが簡単に(第4回): リカレントネットワーク

これまでニューラルネットワークの勉強を続けてきました。 この記事では、ニューラルネットワークのもう一つのタイプであるリカレントネットワークについて考えてみます。 このタイプは、MetaTrader 5の取引プラットフォームで価格チャートで表現される時系列を使用するために提案されています。

ニューラルネットワークが簡単に(第3回): コンボリューションネットワーク

ニューラルネットワークの話題の続きとして、畳み込み型ニューラルネットワークの考察を提案します。 この種のニューラルネットワークは、通常、視覚的なイメージの分析に適用されます。 本稿では、これらのネットワークの金融市場への応用について考察します。

PythonやRの知識が不要なYandexのCatBoost機械学習アルゴリズム

この記事では、具体的な例を用いて、機械学習プロセスのコードと主要な段階の説明をします。 このモデルを取得するためには、PythonやRの知識は必要ありません。 さらに、MQL5の基本的な知識があれば十分です - まさに私のレベルです。 したがって、この記事が、機械学習の評価やプログラムへの実装に興味のある人たちの手助けとなり、幅広い人たちの良いチュートリアルとなることを期待しています。

並列粒子群最適化

本稿では、粒子群アルゴリズムを使用した高速最適化の手法について説明しています。また、この手法のMQLでの実装を提示します。これは、エキスパートアドバイザー内のシングルスレッドモードとローカルテスターエージェントで実行されるアドオンとしての並列マルチスレッドモードの両方ですぐに使用できます。

トレーディングアルゴリズム開発への科学的アプローチ

この記事では、一貫した科学的アプローチを用いて価格パターンを分析し、それに基づいてトレードアルゴリズムを構築するという、トレードアルゴリズムを開発するための方法論を考察します。 開発の理想を事例を用いて示します。

高度なリサンプリングと総当たり攻撃によるCatBoostモデルの選択

本稿では、モデルの一般化可能性を向上させることを目的としたデータ変換への可能なアプローチの1つについて説明し、CatBoostモデルの抽出と選択についても説明します。

カスタムシンボル。実用的な基礎

この記事では、クオートを表示するための一般的な方法を示すために、カスタムシンボルプログラムの生成を行います。 派生したカスタムシンボルチャートから実際のシンボルをトレードするためのEAにおける提案された亜種についても説明します。 この記事にはMQLのソースコードが添付されています。

クイック手動取引ツールキット: ポジションと指値注文の使用

本稿では、ツールキットの機能を拡張します。特定の条件で取引ポジションを決済する機能を追加し、これらの注文を編集する機能を備えた、成行注文と指値注文を制御するための表を作成します。

数式の計算(第2部)Prattパーサーおよび操車場パーサー

この記事では、演算子の優先順位に基づいたパーサーを使用した数式の解析と評価の原則について検討します。Prattパーサーと操車場パーサー、バイトコードの生成とこのコードによる計算を実装し、式の関数として指標を使用する方法と、これらの指標に基づいてエキスパートアドバイザーで取引シグナルを設定する方法を確認します。

クイック手動取引ツールキット: 基本機能

今日、多くのトレーダーが自動取引システムに切り替えています。これらのシステムには、追加のセットアップが必要なものも完全に自動化されてすぐに使用できるものもあります。ただし、昔ながらの方法で手動で取引することを好むトレーダーもかなりいます。本稿では、ホットキーを使用してすばやく手動で取引し、ワンクリックで一般的な取引アクションを実行するためのツールキットを作成します。

クロスプラットフォームグリッドEAの開発:マルチカレンシーEAのテスト

この1か月で相場は30%以上も下落しました。(コロナショック後です。) グリッド系とマーチンゲール系のEAのテストには最適な時期のようです。 本記事は、「クロスプラットフォームのグリッドEAを作る」シリーズの無計画な続編です。 現在の相場では、グリッドEAのストレスレストを整えるチャンスとなっています。 ということで、この機会にEAのテストをしてみましょう。

時系列の予測(第2部):最小二乗サポートベクターマシン(LS-SVM)

この記事では、サポートベクター法に基づいて時系列を予測するアルゴリズムの理論と実際の使用法について説明します。また、このメソッドのMQL実装を提案し、テスト指標とエキスパートアドバイザーを提示します。このテクノロジーはまだMQLに実装されていません。まず、そのための数学を理解する必要があります。

トレーディングにおけるOLAPの適用(その4)。テスターレポートの定量的・視覚的分析

この記事では、シングルパスや最適化結果に関連するテスターレポートのOLAP分析のための基本的なツールを提供しています。 このツールは標準フォーマットのファイル(tstとopt)を扱うことができ、グラフィカルなインターフェイスも提供します。 最後にMQLのソースコードを添付します。

時系列の予測(第1部):経験的分解モード(EMD)法

この記事では、経験的分解モードに基づいて時系列を予測するアルゴリズムの理論と実際の使用法について説明します。また、このメソッドのMQL実装を提案し、テスト指標とエキスパートアドバイザーを提示します。

トレードにおけるOLAPの適用(パート3):トレード戦略の開発の相場分析

この記事では、トレードに適用される OLAP テクノロジを引き続き取り扱います。 最初の 2 つの記事で紹介した機能を拡張します。 今回は、クオートの運用分析について検討します。シェイプセレクタ 集計されたヒストリーデータに基づいて、トレード戦略に関する仮説を打ち出し、テストします。 この記事では、バーパターンとアダプティブトレードを研究するためのEAを紹介します。

相場パターンを見つけるための計量的アプローチ:自己相関、ヒートマップ、散布図

この記事では、季節的特徴の拡張である自己相関ヒートマップと散布図を紹介します。 この記事の目的は、"マーケットメモリ"が季節的な性質を持ち、任意のオーダーの増分の最大相関によって表現されることを示すものです。

個別のモジュールを使用したEAの構築

EAやスクリプトのインジケータを開発する際、開発者はトレーディング戦略と直接関係のないさまざまなコードを作成する必要があります。 この記事では、トレーリング、フィルタリング、スケジュールコードなど、既存のブロックを使用してEAを作成する方法を検討します。 このプログラミングアプローチの利点を見てみましょう。

クロスプラットフォーム グリッドEAの開発(最終パート):収益性を高める方法と多様化

このシリーズのこれまでの記事では、多かれ少なかれ収益性の高いグリッドEAを作成するためのさまざまな方法を試しました。 今回は多様化を通じてEAの収益性を高めます。 究極の目標は、最大20% 以下のドローダウンで年間100%の利益を達成することです。

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第19部): ライブラリメッセージのクラス

本稿では、テキストメッセージを表示するクラスについて検討します。現在、異なるテキストメッセージが多数あるので、ロシア語または英語のメッセージを他の言語に保存、表示、翻訳する方法を再調整するときが来ました。さらに、新しい言語をライブラリに追加して言語をすばやく切り替える便利な方法を導入するのが望ましいでしょう。

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第18部): 口座オブジェクトとその他のライブラリオブジェクトの相互作用

本稿では、口座オブジェクトの作業をすべてのライブラリオブジェクトの新しい基本オブジェクトに配置します。また、CBaseObj基本オブジェクトを改善し、追跡パラメータの設定とライブラリオブジェクトイベント受信をテストします。

古典的な隠れたダイバージェンスを解釈する新しいアプローチ第2部

本稿では、さまざまな指標のレギュラーダイバージェンスと効率性について批判的に検討します。さらに、分析の精度を高めるためのフィルタリングオプションと、非標準ソリューション機能の説明が含まれています。 その結果、技術的なタスクを解決するための新しいツールを作成します。

クロスプラットフォームグリッドEAの開発(パートIII):マーチンゲールによる補正ベースのグリッド

この記事では、可能な限り最高のグリッドベースのEAの開発に取り組みます。 いつものように、MetaTrader4とMetaTrader5の両方で動作することができるクロスプラットフォームEAになります。 当初このEAは、長期間にわたって利益を上げることができませんでしたが、それ以外は良好でした。 2番目となるこのEAは、数年以上にわたって動作する可能性があります。