スポンサーリンク
ホーム » MQL5でEA作ろう講座 » 【超入門】MQL5 EA講座 第71回「トレード用のオリジナルクラスを作る」【MT5用EAの作り方】
a

【超入門】MQL5 EA講座 第71回「トレード用のオリジナルクラスを作る」【MT5用EAの作り方】

MQL5でEA作ろう講座
スポンサーリンク

※【おススメのMT5MQL5対応のFX業者】

MQL5にて開発した、MT5EAを実運用するにあたり、

当サイトでは以下のFX業者をおススメいたします。

外為ファイネスト

EAの利用制限なし。スキャルピングもOK

外為ファイネストに関する記事はコチラ

アヴァトレードジャパン

自動売買界最狭スプレッド水準

アヴァトレードジャパンに関する記事はコチラ

フィリップ証券

フィリップ証券に関する記事はコチラ

—————————————————————

前回は ネッティングシステムにおけるシンプルEAのコード

について解説しました。

前回の第70回中級編は終了し、今回からはいよいよ発展編に入ります。

発展編では何をしていくかというと、クラスを使ったり、実際に作ったりしながら、記述を簡略化する方法や作れるEAの幅を広げ方を学んでいきます。

これからしばらく、オリジナルのクラスを作っていく事に内容の多くが占められることになります。クラスについての理解が追い付いていない方は、以下の↓記事で復習されることをお勧めします。

また、作ったクラス関数群をインクルードファイルにしていく工程も発生するので、include命令についても↓の記事を参考にしていただければと思います。

スポンサーリンク

トレード用クラス作成のロードマップ

これまでに、新規成行注文新規待機注文待機注文の修正方法ストップロスとテイクプロフィットの設定ポジションのクローズなどのやり方について紹介してきました。そして、それらのやり方には全てOrderSend関数を使ってきました。

OrderSend関数や、その引数に使われているMqlTradeRequest構造体MqlTradeResult構造体を用いた記述を見て、ゲンナリされた方も多いと思います。

実際問題、第68回69回で紹介したMT5EAの発注に関する記述は、基本的なものである一方で、メンバ変数の設定が適切でない等の、記述ミスが生じやすいです。

そこで、どのようなMT5EAを開発する時でも、繰り返し利用できるトレード用のクラスを作っていこうという訳です。

MQL5には標準で、便利なライブラリーが多数用意されていますが、クラスの仕組みを理解し、ある程度自分でクラスを作れるようにならないとライブラリーを十分に使いこなすことができないでしょう。

OrderSend関数MqlTradeRequest構造体については↓の記事をご参照ください。

第60回「OrderSend関数とMqlTradeRequest構造体」

MqlTradeResult構造体については↓の記事をご参照ください。

第61回「MqlTradeResult構造体について」

スポンサーリンク

これから作るトレード用クラスの概要

これから作るトレード用のオリジナルクラスには、

という仕組みを実装していきます。

今回から解説していく一度クラスが完成すれば、今後MT5EAのメインプログラムで、クラスインスタンスを宣言しさえすれば、必要な引数を渡すだけで注文関連の処理を行ってくれる関数を呼び出すことができるようになります。

インスタンスについては↓の記事をご覧ください。

MQL5 EA講座 第54回「インスタンスについて」

スポンサーリンク

オリジナルのクラスを作るためのインクルードファイルを生成する

まずはオリジナルのクラスを作るためのインクルードファイルを生成します。

includeファイルの作り方 の手順に従ってMQLウィザードを進めていきます。ファイル名は「OriginalTrade」としました。

これで現時点では中身が空の「OriginalTrade.mqh」ファイルが「include」フォルダ内にできました。

これをたたき台にして、クラス関数を宣言・定義していきます。

MQLウィザードについては↓の記事をご覧ください。

MQL5 EA講座 第2回「メタエディターの使い方」

スポンサーリンク

作成したインクルードファイルにトレードクラスを宣言する

まずは、現時点では中身が空の「OriginalTrade.mqh」ファイルにクラスを宣言します。

//トレード用のクラス「OriginalCTrade」を定義する
class OriginalCTrade
{
	protected:
		MqlTradeRequest request;
		
	public:
		MqlTradeResult result;

}//class OriginalCTrade

クラス名はなんでもいいのですが、「OriginalCTrade」としました。標準ライブラリー内に「CTrade」というクラスが存在するので、それと切り分けるためです。

まずは、{}内に

アクセス指定子protectedにしたMqlTradeRequest構造体インスタンス、「request」

アクセス指定子publicにしたMqlTradeResult構造体インスタンス、「result」

を宣言しました。

protectedキーワードで指定された変数関数は、その利用有効範囲が、宣言したクラスと、派生クラスに制限されます。

一方、publicキーワードで指定された変数関数は、クラスの外からでもアクセスできる、という違いがあります。

なぜ「request」のアクセスレベルprotectedにし、「result」のアクセスレベルprotectedにしているのかは今はピンとこないかと思います。

「request」はクラスの外側からアクセスする必要がなく、「result」はクラスの外側からアクセスする必要があるようにクラスを設計していくから、というのが理由なのですが、詳しいことはクラスを作り終えたときにまたお話しします。

今回は一旦以上とさせていただきます。

次回より、この中にドンドン変数関数を追加していきます。

最後までお読みいただきありがとうございました<m(__)m>

MQL5 EA講座 第70回「簡単な仕組みのMT5用EAを作るーネッティングシステムの-場合ー」

  →【超入門】MQL5 EA講座 第72回「ポジションオープン関数を実装する」【MT5用EA】

—————————————————————

-<PR>-

※【おススメのMT5MQL5対応のFX業者】

MQL5を使って自作したEAシステムトレードに利用するには、取引プラットフォームとしてMT5を提供しているFX会社に口座を開設しなくてはいけません。

当サイトでは以下のFX会社での口座開設・EA運用をおススメしています。

おススメする理由の詳細につきましては、各FX会社について解説する記事を書いておりますので、下記のリンク記事を参考にしていただければと思います。


外為ファイネスト

EAの利用制限なし。スキャルピングもOK

外為ファイネストに関する記事は↓をご覧ください。

アヴァトレードジャパン

自動売買界最狭スプレッド水準

アヴァトレードジャパンに関する記事は↓をご覧ください。

フィリップ証券

フィリップ証券に関する記事は↓をご覧ください。



関連用語リンク集

MQL5FX関連の用語リンク集です。
当サイトでは、元々わからない言葉や概念に出くわしたら、すぐその言葉に立ち戻れるよう、かなり細かく内部リンクを張り巡らせており、多様な用語を網羅しています。

興味のある内容に直接アクセスし、疑問の解決にお役立ていただければと思います。

スポンサーリンク
MQL5でEA作ろう講座
スポンサーリンク
シェアする
エムキューエルをフォローする
スポンサーリンク
【超入門】MQL5 でEAを作ろうブログ

コメント

タイトルとURLをコピーしました