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

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

MQL4ブック MT4

いくつかの基本的な概念

興味のある主題は、MQL4で書かれたプログラムです。 プログラムの作成の規則の詳細な提示を始める前に、プログラムを特徴付ける基本的な概念とその情報環境との相互関係について説明する必要があります。 MetaTrader 4クライアント端末はオンライン接続で動作します。 金融市場の状況は絶えず変化し、クライアント端末のシンボルチャートに影響します。 ティックは、クライアント端末に市場の価格変化に関する情報を提供する。

ダニの概念

ダニ は、ある瞬間にシンボルの新しい価格によって特徴付けられるイベントです。

ティックは、取引センターに設置されたサーバーによってすべてのクライアント端末に配信されます。 現在の市場状況に応じて、ダニが多かれ少なかれ受信される可能性がありますが、それぞれが新たな見積もりをもたらします。つまり、別の通貨換算の1通貨のコストです。

クライアント端末内で動作するアプリケーションは、長期間(例えば、数日または数週間)にわたって動作し得る。 各アプリケーションは、特定のタイプのプログラムに対して設定されたルールに従って実行されます。 たとえば、エキスパートアドバイザー(EA)は常に継続的に機能しません。 EAは通常、新しいティックが来た瞬間に開始されます。 このため、tickは単に新しい見積もりではなく、クライアント端末によって処理されるイベントとして特徴付けられます。

EAの運用期間は、EAに含まれるプログラムコードによって異なります。 通常のEAは、10分の1秒または100分の1秒の間に1つの情報処理サイクルを完了します。 この時間内に、EAはいくつかのパラメータを処理し、取引決定を行い、トレーダーに有用な情報などを提供することができる。 この作業が終了したら、EAは新しいチックが来るまで待機モードに入ります。 この新しい目盛りは、EAを再び起動し、プログラムは適切な動作を再び行い、待機モードに戻る。 新しいチックの出現がプログラム動作にどのように影響するかについての詳細な説明は、次に続く。

制御の概念

制御と は、 プログラム内でのコード実行の流れ、およびプログラムとクライアント端末間のフローについて話す ために使用される用語 です。

コントロール は、プログラムアルゴリズムおよびクライアント端末の機能によって予め設定された動作を実行するプロセスである。 制御は、あるコードラインから別のコードラインへ、プログラムからクライアント端末へ、プログラム内で転送することができる。

コントロールは、会議中に他のスピーカーにフロアを与える1つのスピーカーと同様の方法で転送されます。 ミーティングのスピーカーと同様に、クライアント端末とプログラムは互いに制御を移します。 そこでは、クライアント端末が支配的です。 議長の権威が普通の話し手の権威よりも高いように、その地位はプログラムの地位よりも高い。

プログラムが起動する前に、制御はクライアント端末の監督下にある。 プログラムが起動され、新しいティックが受信されると、クライアント端末は制御をプログラムに転送する。 この時点でプログラムコードの実行が開始されます。

クライアント端末は、制御をプログラムに転送した後、その動作を停止しない。 それはPC上で起動されている間、最大のパフォーマンスで動作し続けます。 プログラムは、クライアント端末が制御権を譲渡した瞬間にのみ動作を開始することができる(会議の議長が会議を常に制御しているのに対し、現在の話者は限られた期間)。

操作が完了すると、プログラムはクライアント端末に制御を返し、自分自身で起動することはできません。 しかし、プログラムが制御権を持っている間、プログラムはいつクライアント端末に制御を戻すかを決定する。 言い換えれば、クライアント端末は、それ自体でプログラムからの制御を取り戻すことができない。 ユーザーの動的な操作(たとえば、プログラムの強制終了)は例外です。

パフォーマンスの問題やプログラムの内部構造について議論するとき、私たちはプログラム内で伝達されるコントロールの部分にほとんど関心があります。 次の図を参照してください(図2)。これは、制御をプログラムに転送する一般的な性質を示しています。 図に示されている円は、プログラムのいくつかの小さな、論理的に完成した断片を特徴づけるのに対して、円の間の矢印は、制御がどのように1つの断片から別の断片に移されるかを示している。

図2 プログラム内のコントロールの転送

クライアント端末からの制御を受け付けた実行プログラムは、固有のアルゴリズムに従っていくつかの動作を開始する。 プログラムにはプログラムの実行順序を決定するコード行が含まれています。 プログラム実行の一般的な順序は、1つのラインから別のラインへの制御を、トップダウン方向に順次転送することである。 以下のセクションでは、コードのプログラム行に何が書かれ、どの規則に従って書かれるかを検討します。

ここでは、論理的に完成したすべてのフラグメントが実行されることを強調することだけが重要です。たとえば、数学的計算が行われ、メッセージが画面に表示され、取引注文が作成されます。 プログラムの現在のフラグメントが実行されるまで、コントロールは保持されます。 完全に完了した後、コントロールは別のフラグメントに転送されます。 したがって、プログラム内の制御は、論理的に完成したフラグメントから、実行されるときに、別のものへと転送される。 最後のフラグメントが実行されるとすぐに、プログラムはクライアント端末に制御を返します。

コメントの概念

プログラムは、プログラム自体を構成するコードとプログラムコードの説明文の2種類のレコードで構成されています。

コメント は、コードを説明するプログラムのオプションで実行不可能な部分です。

したがって、コメントはプログラムのオプション部分です。 これは、準備ができているプログラムは、コメントがあるかどうかに関係なく、コードに従って動作することを意味します。 しかし、コメントはプログラムコードの理解を非常に容易にします。 1行と複数行のコメントがあります。 1行のコメントは、同じ行の二重スラッシュ(//)の後の任意の文字シーケンスです。 1行コメントの記号は改行で終わります。 複数行のコメントは/ の文字で始まり、 /で終わります(図3参照)。

コメントは、プログラムコードの説明に使用されます。 良いプログラムには常にコメントが含まれています。

図3 プログラム内のコメントの例

コメントはコーディングで広く使用されています。 それらは通常グレーで表示されます。 コードを説明し、わかりやすくするために、コメントも使用します。

スポンサードリンク

-MQL4ブック, MT4
-,