MQL4(MT4) の事前定義変数(Predefined Variables)と使用例

MQL4 Reference
スポンサーリンク

事前定義変数(The predefined Variables)

MQL4 (MT4)の事前定義変数の概要と使い方をChatGPTに確認しました。
参考にして下さい。

使用GPTs:EA Creator

概要

MQL4プログラム(エキスパートアドバイザー、スクリプト、またはカスタムインジケーター)が起動される際、現在の価格チャートの状態を反映する一連の事前定義された変数がサポートされています。

これらの事前定義された変数の値は、MQL4プログラムが起動される前にクライアント端末によって設定されます。事前定義された変数は定数であり、MQL4プログラムから変更することはできません。ただし、特別な変数_LastErrorは例外であり、ResetLastError関数によって0にリセットすることができます。

変数一覧

MetaTrader 4 (MT4) プラットフォームのMQL4言語における事前定義された変数の一覧表とその説明です。これらの変数は、エキスパートアドバイザーやカスタムインジケーターなどのMQL4プログラム内で直接使用できます。

変数名説明
_Digits現在のシンボルの小数点以下の桁数
_Point現在のシンボルのポイントサイズ(見積もり通貨)
_LastError最後に発生したエラーコード
_Period現在のチャートの時間枠
_RandomSeed擬似乱数ジェネレータの現在の状態
_StopFlagプログラム停止フラグ
_Symbol現在のチャートのシンボル名
_UninitReason初期化解除の理由コード
Ask現在のシンボルの最新の売り手価格(アスク価格)
Bars現在のチャートのバー数
Bid現在のシンボルの最新の買い手価格(ビッド価格)
Close各バーの終値を含むシリーズ配列
Digits現在のシンボル価格の小数点以下の桁数
High各バーの最高価格を含むシリーズ配列
Low各バーの最低価格を含むシリーズ配列
Open各バーの始値を含むシリーズ配列
Point現在のシンボルのポイント値(見積もり通貨)
Time各バーのオープン時間を含むシリーズ配列
Volume各バーのティックボリュームを含むシリーズ配列

これらの変数は、MQL4プログラムにおいて非常に頻繁に使用され、価格データの取得、トレード決定のロジック構築、チャート情報の取得など、さまざまな目的で利用されます。

使用例

事前定義されたMQL4変数の使用例です。

_Digitsと_Pointを使用した例

これらの変数を使用して、現在のシンボルの価格を正確な桁数で表示し、1ポイントの価値を計算します。

void OnStart()
{
    Print("小数点以下の桁数: ", _Digits);
    Print("1ポイントの価値: ", _Point);
    double price = NormalizeDouble(Bid, _Digits);
    Print("現在のビッド価格: ", price);
}

_LastErrorを使用したエラーハンドリングの例

エラーをチェックし、エラーが発生した場合にはそのエラーコードを表示します。

void OnStart()
{
    // 何らかのトレード操作を試みる(例: 注文を開く)
    bool result = OrderSend(_Symbol, OP_BUY, 0.1, Ask, 2, 0, 0, "", 0, 0, clrNONE);
    if(!result)
    {
        int errorCode = GetLastError();
        Print("エラーが発生しました。エラーコード: ", errorCode);
    }
}

_Periodを使用した例

現在のチャートの時間枠を表示します。

void OnStart()
{
    Print("現在のチャートの時間枠: ", _Period);
}

_RandomSeedを使用した例

擬似乱数ジェネレータのシード値を設定します。

void OnStart()
{
    _RandomSeed = 12345; // シード値を設定
    int randomValue = MathRand();
    Print("乱数値: ", randomValue);
}

_Symbolを使用した例

現在のチャートのシンボル名を表示します。

void OnStart()
{
    Print("現在のチャートのシンボル: ", _Symbol);
}

_UninitReasonを使用した例

エキスパートアドバイザーの終了理由を表示します。この変数は、OnDeinit関数内で特に有用です。

void OnDeinit(const int reason)
{
    Print("エキスパートアドバイザーの終了理由: ", reason);
}

Ask, Bid, Barsを使用した例

現在のシンボルのアスク価格、ビッド価格を表示し、チャートのバー数をカウントします。

void OnStart()
{
    Print("アスク価格: ", Ask);
    Print("ビッド価格: ", Bid);
    Print("チャートのバー数: ", Bars);
}

Open, High, Low, Closeシリーズ配列を使用した例

最新バーのOHLC(始値、最高値、最低値、終値)価格を表示します。

void OnStart()
{
    int lastIndex = Bars - 1; // 最新のバーインデックス
    double openPrice = Open[lastIndex];
    double highPrice = High[lastIndex];
    double lowPrice = Low[lastIndex];
    double closePrice = Close[lastIndex];

    Print("最新バーの始値: ", openPrice);
    Print("最新バーの最高値: ", highPrice);
    Print("最新バーの最低値: ", lowPrice);
    Print("最新バーの終値: ", closePrice);
}

Timeシリーズ配列を使用した例

最新バーのオープン時間を表示します。

void OnStart()
{
    datetime lastOpenTime = Time[Bars-1];
    Print("最新バーのオープン時間: ", TimeToString(lastOpenTime, TIME_DATE | TIME_MINUTES));
}

Volumeシリーズ配列を使用した例

最新バーのボリュームを表示します。

void OnStart()
{
    int lastVolume = Volume[Bars-1];
    Print("最新バーのボリューム: ", lastVolume);
}

これらの使用例は、MQL4プログラミングにおいて事前定義された変数をどのように活用できるかを示しています。これらの変数は、トレーディング戦略の開発や分析、エキスパートアドバイザーやカスタムインジケーターの作成において、非常に役立ちます。

MQL4リファレンス

正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/predefined

関連記事

スポンサーリンク
海外FXキャッシュバック口座開設ならTariTali(タリタリ)

コメント

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