この初心者向けの完全な MQL4 チュートリアルで、構文、変数、コメント、関数とは何かを学び、独自の自動取引戦略を開発してください。
構文
コメント
変数
機能 (標準)
関数 (カスタム)
句法
C から派生した多くの言語のいずれかでのプログラミングに慣れている場合は、MQL でのプログラミングが非常に得意になります。
しかし、言語を学びたいほとんどの非プログラマーにとって、新しい書き方を学ばなければなりません。
MQL では、すべてのステートメントはセミコロンで終わり、式と呼ばれます。 式は複数行にまたがることができ、セミコロンで終わる必要があります。
外部ダブルストップ = 15.0; // 単一行の式
またはこのマルチ-line 式:
if(FastMACurrent > SlowMACurrent)
open buy=true; // 複数行の式 p >
プログラミングに慣れていない場合は、各ステートメントの最後に必ずセミコロンを付ける必要があります。 そうしないのは初心者にありがちな間違いです。
セミコロン ルールの例外: 複合演算子。
複合演算子は、中括弧 {} 内に複数の式を含むコード行です。 複合演算子には、制御演算子 (if、switch)、ループ演算子 (for、while)、および関数宣言を含めることができます。 制御演算子の例を次に示します。
if (bars <100)
{ Print("バーの数が少ないですthan 100 ”);
return(0); }
最初の if 演算子の後にセミコロンを入れていないことに注意してください。 また、閉じ中括弧の後にセミコロンを入れる必要もありません。 Print() 関数の後にセミコロンがあります。 これは、中かっこ内に 1 つ以上の式を含めることができ、各式はセミコロンで終わる必要があるためです。
コメント
他の言語のコメントと同様に、MQL4 コメントは、マークの一部を説明したり、テストやデバッグ中にコードを一時的に削除したりするためにコード内で使用されることがあります。 コードを理解しやすくするために、コードをできるだけ文書化すると役立つ場合があります。 コーディング言語は非常に難解な場合があるため、コードが何を達成しようとしているのかを平易な英語で明確にすることが役立ちます。 また、コメントを使用すると、コード行を削除せずに一時的に削除できます。
コメントを入力するには 2 つの方法があります: 1) 単一行のコメント、および 2) 複数行のコメント。
単一行のコメント構文
// コメントを作成しました。
コメントの後には 2 つのスラッシュ (//) が続きます。 // で始まる行はフリーテキストであり、プログラムによって無視されます。 これは、テスト目的でコード行をマスクする場合に便利です。
多行注释语法
/* 大量のコードをブロックしたいと考えています */
コメントは「/*」で始まり「*/」で終わります。
この形式のコメントは、次のように各行の先頭に 2 つの正の文字を配置する代わりに、複数行のコードを一度にすばやく無効にするために使用されます。最初のメソッドのスラッシュ。 ブロックするコードが大量にある場合、各行の先頭に二重スラッシュを追加するのは時間がかかりすぎるため、複数行のコメント手法を使用する方がはるかに簡単です。
変数
変数は、プログラムの実行に必要なデータを保存する、プログラミング言語の基本的な記憶単位です。 変数は宣言する必要があります。変数を宣言するには、次の例のように 3 つの部分をまとめます。
Double Lot = 0.1;
ここでは 3 つの部分に分かれています:
p>
データ型 (例: double )、その後に識別子 (例: Lots)、そして等号の後のデフォルト値 (例: 0.1)。
データ型は、数値、テキスト文字列、日付、色など、変数が保持する情報の種類を指定します。 以下に一般的なデータ型をいくつか示します:
Data Type | Description |
---|---|
int | 0、3、-5 などの整数 (整数)。 整数変数に割り当てられた数値は切り上げられます |
double | 0.01 などの小数 |
string | 「マスケット銃を発砲しました」のようなテキスト文字列”。 文字列は二重引用符で囲む必要があります。 |
boolean | 真/偽値。 1 (true) または 0 (false) として表すこともできます。 |
datetime | 日時 (例: 2011.01.01 01:11)。 |
ここで、私の識別子「Lots」には、「ilots」、「ordersize」、「volume」など、さまざまな名前を付けることができます。
識別子は変数とカスタム関数の名前で、数字、文字、アンダースコア文字 (_) を任意に組み合わせて 31 文字まで使用できます。 識別子は、最終的には意図を説明するために任意に選択された単語です。
一部のプログラマーが単純な単語の代わりに文字と数字 (例: "gd_104") を識別子として使用しているのを見てきましたが、これではコードが次のようになります。外部の人 (または、文字と数字の組み合わせが何を指すのか忘れた場合は自分自身) が読むことができます。 読みやすく、覚えやすいようにするのが最善です。 また、識別子は大文字と小文字が区別され (Lot と Lots は異なる識別子です)、スペルも区別される (Lot と Lots は異なる識別子です) ので、すべての識別子が大文字で、スペルが正しいことを確認してください (初心者によくある間違い)。
変数が宣言されると、次の例のように、新しい値を割り当てることでその値を変更できます。
double Lot = 0.1;
mylotsi = many;
//mylotsi は 0.1
p >
割り当てられる変数は同じデータ型である必要があることに注意してください。そうでない場合、悪い結果が生じます。
extern にあらかじめ割り当てられている変数を外部変数と呼びます。
外部 2 針 = 0.1;
外部ダブルストップ = 50;
p>
これらは、EA の最初の部分で、プログラム プロパティ ウィンドウから値にアクセスして操作するのに役立ちます。
定数
変数が後で変更または修正できるデータ値を保持している場合、定数はその反対であり、決して変更されないデータ値です。
たとえば、0 から 9 までのすべての数値は整数定数、true と false はブール定数、赤は色の定数、2011.01.01 00:00は、2010 年 1 月 10 日の日時定数です。
価格データ、チャート期間、色、取引操作などには、さまざまな標準定数があります。 PERIOD_M1 は M1 チャートの時間枠の定数であり、OP_SELL は売り成行注文を参照していることがわかります。
定数の詳細については、「MQL4 リファレンスの標準定数」を参照してください。
関数
関数はこの言語の基礎です。 関数は、注文の発注やトレーリングストップの計算など、特定のタスクを実行するように設計されたコードのブロックです。
標準関数
MQL4 には、テクニカル指標の関数を除いた 220 以上の標準関数があります。 コード内でこれらの関数に遭遇すると、通常、それらは独自の色 (例: 紫) で表示され、前述の print 関数などの括弧で囲まれた式を参照します。
Print("100 未満の小節");
Print() 関数は、プログラムの外部で何かを宣言するための一般的な関数であり、Comment()、PlaySound()、MessageBox() などの関数も同様のカテゴリに分類されます。 これらの標準 (またはネイティブ) 機能については、ここですべて読むことができます。
関数には再利用可能なという利点があります。つまり、必要に応じてプログラム内のさまざまなポイントから実行できます。 一般に、関数は多くのプログラム ステートメントを 1 つのユニットに結合し、それに名前を付けます。 このユニットは、プログラムの他の部分から呼び出すことができます。
標準関数とカスタム関数の使用については、今後の記事で詳しく説明します。
カスタム関数
標準関数またはネイティブ関数に加えて、独自のニーズに応じて関数を作成し、関数の再利用性を活用できます。 クローズオーダー関数などの関数を作成した場合、コードのさまざまな部分で何度も再利用したり、関数をコピーして貼り付けて、使用する他のエキスパートアドバイザーで簡単に使用したりできます。