MQL5プログラミング記事

icon

取引戦略をプログラミングするためのMQL5言語を、ほとんどがコミュニティメンバーによって書かれた数多くの公開記事で学びます。記事は統合、テスター、取引戦略等のカテゴリに分けられていて、プログラミングに関連する疑問への解答を素早く見つけることができます。

新着記事をフォローして、フォーラムでディスカッションしてください。

新しい記事を追加
最新 | ベスト
preview
リプレイシステムの開発(第31回):エキスパートアドバイザープロジェクト - C_Mouseクラス(V)

リプレイシステムの開発(第31回):エキスパートアドバイザープロジェクト - C_Mouseクラス(V)

リプレイ/シミュレーションの終了まで残り時間を表示できるタイマーが必要です。これは一見、シンプルで迅速な解決策に見えるかもしれません。多くの人は、取引サーバーが使用しているのと同じシステムを適応して使用しようとするだけです。しかし、この解決策を考えるとき、多くの人が考慮しないことがあります。リプレイでは、そしてシミュレーションではなおさら、時計の動きは異なるということです。こうしたことが、このようなシステムの構築を複雑にしています。
preview
リプレイシステムの開発 - 市場シミュレーション(第24回):FOREX (V)

リプレイシステムの開発 - 市場シミュレーション(第24回):FOREX (V)

本日は、Last価格に基づくシミュレーションを妨げていた制限を取り除き、このタイプのシミュレーションに特化した新しいエントリポイントをご紹介します。操作の仕組みはすべて、FOREX市場の原理に基づいています。この手順の主な違いは、BidシミュレーションとLastシミュレーションの分離です。ただし、時間をランダム化し、C_Replayクラスに適合するように調整するために使用された方法は、両方のシミュレーションで同じままであることに注意することが重要です。これは良いことです。特にティック間の処理時間に関して、一方のモードを変更すれば、もう一方のモードも自動的に改善されるからです。
preview
リプレイシステムの開発 - 市場シミュレーション(第25回):次の段階への準備

リプレイシステムの開発 - 市場シミュレーション(第25回):次の段階への準備

この記事では、リプレイ/シミュレーションシステム開発の第1段階を完了しました。この成果により、システムが高度なレベルに達したことを確認し、新機能の導入への道を開くことができました。目標は、システムをさらに充実させ、市場分析の調査開発のための強力なツールに変えることです。
preview
MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第5回)

MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第5回)

この記事は、MQTT 5.0プロトコルのネイティブMQL5クライアントの開発ステップを説明する連載の第5回です。今回は、PUBLISHパケットの構造、Publishフラグの設定方法、Topic Name文字列のエンコード方法、必要な場合のPacket Identifierの設定方法について説明します。
preview
MQL5における組合せ対称交差検証法

MQL5における組合せ対称交差検証法

この記事では、ストラテジーテスターの低速&完全アルゴリズムを使用してストラテジーを最適化した後に過剰学習が発生する可能性の程度を測定するために、純粋なMQL5における組合せ対称交差検証法の実装を紹介します。
preview
ニューラルネットワークが簡単に(第51回):Behavior-Guided Actor-Critic (BAC)

ニューラルネットワークが簡単に(第51回):Behavior-Guided Actor-Critic (BAC)

最後の2つの記事では、エントロピー正則化を報酬関数に組み込んだSoft Actor-Criticアルゴリズムについて検討しました。このアプローチは環境探索とモデル活用のバランスをとりますが、適用できるのは確率モデルのみです。今回の記事では、確率モデルと確定モデルの両方に適用できる代替アプローチを提案します。
preview
リプレイシステムの開発(第29回):エキスパートアドバイザープロジェクト - C_Mouseクラス(III)

リプレイシステムの開発(第29回):エキスパートアドバイザープロジェクト - C_Mouseクラス(III)

C_Mouseクラスを改良した後は、分析のためのまったく新しいフレームワークを作るためのクラスを作ることに集中しましょう。この新しいクラスを作るのに、継承やポリモーフィズムは使用しません。その代わりに、価格線に新しいオブジェクトを追加します。それがこの記事でやろうとしていることです。次回は、分析結果を変更する方法について見るつもりです。これらはすべて、C_Mouseクラスのコードを変更することなくおこなわれます。実際には、継承やポリモーフィズムを使用すれば、もっと簡単に実現できるでしょう。しかし、同じ結果を得る方法は他にもあります。
preview
母集団最適化アルゴリズム:Stochastic Diffusion Search (SDS)

母集団最適化アルゴリズム:Stochastic Diffusion Search (SDS)

この記事では、ランダムウォークの原理に基づく非常に強力で効率的な最適化アルゴリズムである確SDS(Stochastic Diffusion Search、確率的拡散探索)について説明します。このアルゴリズムは、複雑な多次元空間で最適解を求めることができ、収束速度が速く、局所極値を避けることができるのが特徴です。
preview
機械学習における量子化(第1回):理論、コード例、CatBoostでの実装解析

機械学習における量子化(第1回):理論、コード例、CatBoostでの実装解析

この記事では、ツリーモデルの構築における量子化の理論的な応用を考察し、CatBoostに実装された量子化手法を紹介します。複雑な数式は使用しません。
preview
リプレイシステムの開発(第30回):エキスパートアドバイザープロジェクト - C_Mouseクラス(IV)

リプレイシステムの開発(第30回):エキスパートアドバイザープロジェクト - C_Mouseクラス(IV)

今日は、プログラマーとしての職業生活のさまざまな段階で非常に役立つテクニックを学びます。多くの場合、制限されているのはプラットフォーム自体ではなく、制限について話す人の知識です。この記事では、常識と創造性があれば、クレイジーなプログラムなどを作成することなく、MetaTrader 5 プラットフォームをより面白くて多用途にし、シンプルでありながら安全で信頼性の高いコードを作成できることを説明します。創造力を駆使して、ソース コードを1行も削除したり追加したりすることなく、既存のコードを変更します。
preview
DoEasy-コントロール(第11部):WinFormsオブジェクト—グループ、CheckedListBox WinFormsオブジェクト

DoEasy-コントロール(第11部):WinFormsオブジェクト—グループ、CheckedListBox WinFormsオブジェクト

この記事では、WinFormsオブジェクトのグループ化と、CheckBoxオブジェクトリストオブジェクトの作成について検討します。
preview
機械学習における量子化(第2回):データの前処理、テーブルの選択、CatBoostモデルの訓練

機械学習における量子化(第2回):データの前処理、テーブルの選択、CatBoostモデルの訓練

この記事では、ツリーモデルの構築における量子化の実際の応用について考察します。量子化テーブルの選択方法とデータの前処理について検討します。複雑な数式は使用しません。
preview
リプレイシステムの開発 - 市場シミュレーション(第23回)FOREX (IV)

リプレイシステムの開発 - 市場シミュレーション(第23回)FOREX (IV)

これで、ティックをバーに変換したのと同じ時点で作成がおこなわれます。こうすることで、変換プロセス中に問題が発生した場合、すぐにエラーに気づくことができます。これは、早送り中にチャート上に1分足を配置するコードと同じコードが、通常のパフォーマンス中に足を配置する位置決めシステムにも使用されるためです。言い換えれば、このタスクを担当するコードは他の場所には複製されません。このようにして、メンテナンスと改善の両方においてはるかに優れたシステムが得られます。
preview
DoEasy-コントロール(第16部):TabControl WinFormsオブジェクト — 複数行のタブヘッダー、コンテナに合わせたヘッダーの伸び

DoEasy-コントロール(第16部):TabControl WinFormsオブジェクト — 複数行のタブヘッダー、コンテナに合わせたヘッダーの伸び

この記事では、TabControlの開発を続け、ヘッダーのサイズを設定するすべてのモードに対して、コントロールの4つの側面すべてにタブヘッダーの配置(通常、固定、右詰め)を実装します。
preview
リプレイシステムの開発 - 市場シミュレーション(第22回):FOREX (III)

リプレイシステムの開発 - 市場シミュレーション(第22回):FOREX (III)

このトピックに関する記事は今回で3回目になりますが、株式市場とFOREX市場の違いをまだ理解していない方のために説明しなければなりません。大きな違いは、FOREXでは、取引の過程で実際に発生したいくつかのポイントに関する情報がないというか、与えられないということです。
preview
DoEasy - コントロール(第23部):TabControlおよびSplitContainer WinFormsオブジェクトの改善

DoEasy - コントロール(第23部):TabControlおよびSplitContainer WinFormsオブジェクトの改善

今回は、WinFormsオブジェクトの作業領域の境界線に関連する新しいマウスイベントを追加し、TabControlとSplitContainerコントロールの機能に関するいくつかの欠点を修正することにします。
preview
DoEasy - コントロール(第22部):SplitContainer - 作成したオブジェクトのプロパティを変更する

DoEasy - コントロール(第22部):SplitContainer - 作成したオブジェクトのプロパティを変更する

今回は、新しく作成したSplitContainerコントロールのプロパティと外観を変更する機能を実装します。
preview
DoEasy-コントロール(第19部):TabControl、WinFormsオブジェクトイベントでのタブのスクロール

DoEasy-コントロール(第19部):TabControl、WinFormsオブジェクトイベントでのタブのスクロール

この記事では、スクロールボタンを使用してTabControlでタブヘッダーをスクロールする機能を作成します。この機能は、コントロールの両方側からタブヘッダーを1行に配置するためのものです。
preview
母集団最適化アルゴリズム:微小人工免疫系(Micro-AIS)

母集団最適化アルゴリズム:微小人工免疫系(Micro-AIS)

この記事では、身体の免疫系の原理に基づいた最適化手法、つまりAISを改良した微小人工免疫系(Micro Artificial Immune System:Micro-AIS)について考察します。Micro-AISは、より単純な免疫系のモデルと単純な免疫情報処理操作を用います。また、この記事では、従来のAISと比較した場合のMicro-AISの利点と欠点についても触れています。
preview
MQL5でマーケットメイク系アルゴリズムを作成する

MQL5でマーケットメイク系アルゴリズムを作成する

マーケットメーカーはどのように機能するのでしょうか。この問題を考えて、原始的なマーケットメイク系アルゴリズムを作ってみましょう。
preview
母集団最適化アルゴリズム:進化戦略、(μ,λ)-ESと(μ+λ)-ES

母集団最適化アルゴリズム:進化戦略、(μ,λ)-ESと(μ+λ)-ES

この記事では、進化戦略(Evolution Strategies:ES)として知られる最適化アルゴリズム群について考察します。これらは、最適解を見つけるために進化原理を用いた最初の集団アルゴリズムの1つです。従来のESバリエーションへの変更を実施し、アルゴリズムのテスト関数とテストスタンドの手法を見直します。
preview
母集団最適化アルゴリズム:細菌採餌最適化-遺伝的アルゴリズム(BFO-GA)

母集団最適化アルゴリズム:細菌採餌最適化-遺伝的アルゴリズム(BFO-GA)

本稿では、細菌採餌最適化(BFO)アルゴリズムのアイデアと遺伝的アルゴリズム(GA)で使用される技術を組み合わせ、ハイブリッドBFO-GAアルゴリズムとして最適化問題を解くための新しいアプローチを紹介します。最適解を大域的に探索するために細菌の群れを使い、局所最適解を改良するために遺伝的演算子を使用します。元のBFOとは異なり、細菌は突然変異を起こし、遺伝子を受け継ぐことができるようになっています。