FX・ビットコイン・オプションのシステムトレード開発と取引録

FXとビットコインのシステムトレードの開発録、オプション取引の履歴を書き連ねています。MT4, Pythonで開発しています。

MQL4ブック MT4

プログラムの種類

スポンサードリンク

プログラムの種類

MQL4でプログラムを書き始めるときには、まずどのタイプのプログラムであるかという質問に答えなければなりません。 プログラムの内容と機能はこれに完全に依存しています。 MQL4には、EA、スクリプト、カスタムインジケータの3種類のアプリケーションプログラムがあります。 開発するプログラムは、これらのタイプのいずれかに属します。彼らはすべて目的と特色を持っています。 これらのタイプについて詳しく検討してみましょう。

エキスパートアドバイザー(EA) は、MQL4でコード化されたプログラムであり、クライアント端末から呼び出され、毎回実行されます。 EAの主な目的は、取引に対するプログラム制御です。 EAはユーザーによってコード化されています。 クライアント端末には組み込みのEAはありません。

s スクリプト は、MQL4でコード化されたプログラムであり、クライアント端末によって一度だけ実行されます。 スクリプトは、一度だけ実行される操作を実行するためのものです。 スクリプトはユーザーによってコード化されています。 これらはクライアント端末と組み込みのプログラムとしては配信されません。

カスタムインジケータ は、MQL4でコード化されたプログラムであり、クライアント端末によって呼び出され、毎回実行される。 基本的には、線などの事前に計算されたデータをグラフィカルに表示することを目的としています。 指標は取引できません。 インジケータには、テクニカル(組み込み)インジケータとカスタムインジケータの2種類があります。 指標は技術指標の使用 とカスタム指標の作成で詳細に検討されています。

あなたは、特定のプログラムの目的と、さまざまなタイプのプログラムの特性と限界に応じて、書き込むプログラムのタイプを選択します。

プログラムのプロパティ

実行のためのプログラムの起動

EAsとカスタムインジケータをスクリプトから区別する基準があります。 これは実行時間です。 いくつかの基本的なコンセプトでは、プログラムがチックがあるほど頻繁に開始されることについて既に言及しました。 このステートメントは、EAおよびカスタムインジケータには当てはまりますが、スクリプトではfalseです。

EAとカスタム指標 。 シンボルウィンドウにプログラム(EAまたはカスタムインジケータ)を添付すると、プログラムはいくつかの準備を行い、ティックウェイモードに切り替わります。 新しいチックが来るとすぐに、プログラムはクライアント端末によって実行のために起動され、アルゴリズムによって必要なすべての操作が行われます。 完了すると、プログラムは制御をクライアント端末に渡す。すなわち、ティック待ちモードに切り替わる。

プログラムが実行されているときに新しいティックが来た場合、これはプログラムの実行に影響を与えません。プログラムはアルゴリズムに従って実行され続け、プログラムは完了時にのみクライアント端末にコントロールを渡します。 このため、すべてのダニがEAまたはカスタムインジケータを起動するわけではありません。 コントロールがクライアント端末にあり、プログラムがティック・ウェイティング・モードになっているときに来るティックだけが、EAまたはカスタム・インジケータを呼び出します。

新しい目盛りがプログラムを起動して実行されます。 したがって、EAまたはカスタムインジケータは、シンボルウィンドウに添付され、時々実行されるように、長い時間内に動作することができます(プログラムがティックウェイティングモードの間に新しいティックが入ることが多い) 。

さらに、EAはプログラムの最初の起動時に実行命令によってインジケータと異なります。 この違いは、特定のタイプのプログラム内の特殊関数の特定のプロパティによって決まります(「 特殊関数 」を参照)。 シンボルウィンドウに接続すると、EAはinit()関数内に必要な準備を行います。 その後、最初の着信時にのみstart()関数を呼び出し、tick-waitingモードに切り替えます。 EAと異なり、カスタムインジケータはinit()関数を実行し、start()関数を1回呼び出してインジケータ値の最初の計算を行います。 その後、新しいティックでstart()関数だけを呼び出してプログラムを起動します。 つまり、演算子はstart()関数のアルゴリズムに従って実行されます。

スクリプト 。 EAやインジケータとは異なり、新しいチックを待つことなく、シンボルウィンドウにアタッチされた直後にスクリプトが実行されます。 スクリプトのコード全体が1回実行されます。 すべてのプログラム行が実行されると、スクリプトはその操作を終了し、シンボルウィンドウからアンロードされます。 スクリプトは、オーダーを開いたり閉じたり、画面にテキストを表示したり、グラフィカルオブジェクトをインストールしたりするなど、ワンタイム操作を行う場合に役立ちます。

EA、スクリプト、およびカスタムインジケータの実行の違いは、特殊機能のプロパティによって詳細に検討される特殊機能のプロパティによって決まります。

トレーディング

上記のプログラムに印を付ける主な基準の1つは取引の指示を出すことです。 取引指示とは、プログラムを取引サーバに渡して、注文を開いたり、終了したり、変更したりするためのコントロールです。 トレーディング命令は、「トレーディング機能」と呼ばれる組み込み関数を使用してプログラムで形成されます。

EAおよびスクリプトのみ取引機能を使用できます(対応するオプションがEA /スクリプト設定で有効になっている場合のみ)。 カスタム指標でトレーディング機能を使用することは禁じられています。

 

同時使用

プログラムはまた、シンボルウィンドウに同時に取り付けられた異なるタイプのプログラムの量によって互いに異なる。

EA 。 1つのシンボルウィンドウには1つのEAしか付くことができません。 1つのウィンドウで複数のEAを同時に使用することは禁止されています。

スクリプト 。 1つのシンボルウィンドウに1つのスクリプトのみを添付できます。 1つのウィンドウで複数のスクリプトを同時に使用することは禁止されています。

カスタム指標。 1つのシンボルウィンドウに複数のインジケータを同時に追加することができます。 彼らはお互いに干渉しません。

1つのシンボルウィンドウで、すべてのタイプのプログラムを同時に起動することができ、各タイプの制限に準拠しています。 たとえば、1つのシンボルウィンドウで1つのEA、1つのスクリプト、および複数のインジケータを同時に起動できます。 ただし、同時に起動される他の種類のプログラムであっても、1つのシンボルウィンドウで複数のEAやスクリプトを起動することはできません。

同時に、1つのシンボルの異なるウィンドウで同じタイプのプログラムを同時に起動することができます。 たとえば、1つのシンボルに対して2つのEAを起動する場合は、このシンボルの1つのウィンドウで1つのEAを起動し、同じシンボルの別のウィンドウで別のEAを起動できます。 この場合、EAは同時に動作します。 ただし、このように開始されたEAは、相反する取引指示を形成する可能性があることを考慮する必要があります。 たとえば、そのうちの1人が注文を開くための指示を与えることができ、他方は注文を閉じるための指示を与えることができる。 これは、無駄な取引の長いシーケンスを引き起こし、その結果全体的な損失につながる可能性があります。

すべてのタイプのプログラムは、異なるシンボルのウインドウで起動されたものを含めて、クライアント端末で起動された他のすべてのプログラムで使用可能なグローバル変数を作成できます。 これにより、マシンはすべてのプログラムの同時操作を調整することができます。 グローバル変数の使用順序は、グローバル変数のセクションで特に考慮されます。

実行のためのプログラムの呼び出し

すべての種類のプログラムは、ユーザーの意思でのみ実行できます。 MQL4では、プログラム内から実行のためにEA、スクリプト、またはインジケータを呼び出すことはできません。

唯一除外されているのは、組み込み関数iCustom()です。この関数を使用すると、データのカスタムインジケータと技術インジケータの関数を参照できます。 iCustom()またはテクニカルインジケータの関数を参照しても、シンボルウィンドウにインジケータの行が表示されるわけではありません( MQL4のシンプルなプログラムを参照)。

プログラムの特性 EA スクリプト インジケータ
実行時間 長期間 一度 長期間
トレーディング 許可 許可 禁止
行の表示 いいえ いいえ はい
1つのシンボルウィンドウで同じタイプの複数のプログラムを同時に使用する 禁止 禁止 許可
プログラム内からの実行の呼び出し 禁止 禁止 禁止

表2 EAs、スクリプト、およびカスタムインジケータの主なプロパティ

したがって、特定のアルゴリズムに従って取引を管理するプログラムが必要な場合は、EAまたはスクリプトを記述する必要があります。 しかし、特定の依存関係をグラフィカルに表示したい場合は、インジケータを使用する必要があります。

スポンサードリンク
スポンサードリンク

-MQL4ブック, MT4
-,