MT4|市場ごとに高値と安値を色分けする|時間帯ブレイクアウト

Market Zoneアイキャッチ
  • URLをコピーしました!

MT4チャートで、各市場の高値と安値を視覚的に区別したいのですが。

ホシノ

FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。

BBF_MQL5-20240501
リアルトレード公開|EA BBF

このページでわかること・できること

〇アジア、ヨーロッパ、アメリカ市場の高値と安値を色分けできるスクリプトについて

〇スクリプトのダウンロード

〇スクリプトのインストールと使い方

目次

各市場ごとに高値と安値を色分けできるスクリプト|Market Zone

Market Zoneチャート画像
Market Zoneを使えば各市場を視覚的に判別しやすくなる

MT4用スクリプト「Market Zone」を使えば、アジア市場、ヨーロッパ市場、アメリカ市場でチャートを色分けできる。
市場ごとに高値と安値が視認できるため、市場ごとのサポート、レジスタンスのブレイクアウトがわかりやすくなる。

Market Zoneのダウンロードはこちら

スクリプトのインストール

ダウンロードしたスクリプトはMT4のデータフォルダからScriptsフォルダへ移動することでインストールできる。
ファイルの移動後はMT4の再起動でインストールが完了となる。

ディレクトリへのアクセス順序
ファイル>データフォルダを開く>MQL4>Scripts

Market Zoneの使い方

インストールが完了したスクリプトはMT4のナビゲーターから呼び出しが可能となる。
スクリプトの起動にはダブルクリック、またはチャートへドロップする。

Market Zoneパラメーター画像
パラメーター画面では各市場の色を指定できる

「OK」をクリックで各市場ごとの長方形が描画される。

各市場の時間帯

アジア時間 3:00から9:00

ヨーロッパ時間 9:00から16:00

アメリカ時間 16:00から23:00

スクリプトの特徴

このスクリプトは、市場の異なる時間帯における高値と安値を取得し、それに基づいてチャート上に長方形を描画できる。
そのため、主に市場セッションごとの価格動向を分析するのに有効となる。

例えば、アジア市場、ヨーロッパ市場、アメリカ市場など、異なる市場セッションごとに重要な価格レベルを把握したい場合に活用できる。
これにより、各市場セッションのオープン時に価格のブレイクアウトを意識するトレードが容易になる。

Market Zoneのプログラム

//+------------------------------------------------------------------+
//|                                                  Market Zone.mq4 |
//|                                     Copyright 2024, FX-Bonus.net |
//|                                            https://fx-bonus.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, FX-Bonus.net"
#property link      "https://fx-bonus.net/"
#property version   "1.00"
#property show_inputs
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
// Input parameters
input color asiaColor = clrBlue;       // アジア時間
input color europeColor = clrYellow;   // ヨーロッパ時間
input color americaColor = clrPink;    // アメリカ時間

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
    // 直近のデータの終了時刻を取得
    datetime endTime = Time[0];

    // 各期間の開始時刻と終了時刻を計算
    datetime startTime1 = GetRecentTime(3, endTime);
    datetime endTime1 = GetRecentTime(9, endTime);
    datetime startTime2 = GetRecentTime(9, endTime);
    datetime endTime2 = GetRecentTime(16, endTime);
    datetime startTime3 = GetRecentTime(16, endTime);
    datetime endTime3 = GetRecentTime(23, endTime);

    // 各期間の高値と安値を計算
    double highestPrice1 = HighBetween(startTime1, endTime1);
    double lowestPrice1 = LowBetween(startTime1, endTime1);
    double highestPrice2 = HighBetween(startTime2, endTime2);
    double lowestPrice2 = LowBetween(startTime2, endTime2);
    double highestPrice3 = HighBetween(startTime3, endTime3);
    double lowestPrice3 = LowBetween(startTime3, endTime3);

    // 長方形のオブジェクト名を生成
    string rectangleName1 = "Rectangle1";
    string rectangleName2 = "Rectangle2";
    string rectangleName3 = "Rectangle3";

    // チャート上に既に同じ名前のオブジェクトがある場合は削除
    if (ObjectFind(0, rectangleName1) >= 0)
        ObjectDelete(0, rectangleName1);
    if (ObjectFind(0, rectangleName2) >= 0)
        ObjectDelete(0, rectangleName2);
    if (ObjectFind(0, rectangleName3) >= 0)
        ObjectDelete(0, rectangleName3);

    // 長方形オブジェクトを作成
    CreateRectangle(rectangleName1, startTime1, highestPrice1, endTime1, lowestPrice1, asiaColor);
    CreateRectangle(rectangleName2, startTime2, highestPrice2, endTime2, lowestPrice2, europeColor);
    CreateRectangle(rectangleName3, startTime3, highestPrice3, endTime3, lowestPrice3, americaColor);

    Print("Rectangles drawn successfully.");
}

//+------------------------------------------------------------------+
//| 直近の指定された時刻(hour)を計算する関数                        |
//+------------------------------------------------------------------+
datetime GetRecentTime(int hour, datetime currentTime)
{
    // 直近の指定された時刻を計算
    datetime recentTime = currentTime - (currentTime % 86400) + hour * 3600;

    // 計算した時間を返す
    return recentTime;
}

//+------------------------------------------------------------------+
//| 長方形オブジェクトを作成する関数                                  |
//+------------------------------------------------------------------+
void CreateRectangle(string name, datetime startTime, double startPrice, datetime endTime, double endPrice, color rectangleColor)
{
    if (!ObjectCreate(0, name, OBJ_RECTANGLE, 0, startTime, startPrice, endTime, endPrice))
    {
        Print("Error creating rectangle: ", GetLastError());
        return;
    }
    ObjectSetInteger(0, name, OBJPROP_COLOR, rectangleColor); // 色
    ObjectSetInteger(0, name, OBJPROP_WIDTH, 2);              // 枠線の太さ
    ObjectSetInteger(0, name, OBJPROP_STYLE, STYLE_SOLID);    // 枠線のスタイル
    ObjectSetInteger(0, name, OBJPROP_BACK, true);            // 背景に描画するか
}

//+------------------------------------------------------------------+
//| 指定された時間範囲内の高値を取得する関数                          |
//+------------------------------------------------------------------+
double HighBetween(datetime startTime, datetime endTime)
{
    double highest = 0;
    for (int i = 0; i < Bars; i++)
    {
        if (Time[i] >= startTime && Time[i] <= endTime)
        {
            if (High[i] > highest)
            {
                highest = High[i];
            }
        }
    }
    return highest;
}

//+------------------------------------------------------------------+
//| 指定された時間範囲内の安値を取得する関数                          |
//+------------------------------------------------------------------+
double LowBetween(datetime startTime, datetime endTime)
{
    double lowest = 0;
    for (int i = 0; i < Bars; i++)
    {
        if (Time[i] >= startTime && Time[i] <= endTime)
        {
            if (Low[i] < lowest || lowest == 0)
            {
                lowest = Low[i];
            }
        }
    }
    return lowest;
}
//+------------------------------------------------------------------+

プログラムコードの詳細解説

  1. インプットパラメーター:
    • asiaColor, europeColor, americaColor: 長方形の色を設定する。
      デフォルトはそれぞれ青、黄色、ピンクが指定される。
  2. OnStart 関数:
    • メインの実行関数であり、各市場セッションの高値と安値を取得し、それに基づいて長方形を描画する。
    • 各市場セッションごとに開始時刻と終了時刻を計算し、その時間帯内の高値と安値を取得している。
    • CreateRectangle 関数を使用して、取得した高値と安値をもとに長方形を描画する。
  3. GetRecentTime 関数:
    • 指定された時間(hour)を計算し、直近のその時間の時刻を取得。
  4. CreateRectangle 関数:
    • 長方形オブジェクトを作成し、設定された色や枠線の太さなどを設定する。
  5. HighBetween 関数と LowBetween 関数:
    • 指定された時間範囲内の高値と安値を取得する関数です。
    • High[i] は i 番目のバーの高値を示し、Low[i] は安値を示します。
    • 指定された時間範囲内で最も高い値と最も安い値を見つけて返す。

便利なMT4スクリプト集

  • URLをコピーしました!
  • URLをコピーしました!

このEAを使って、将来の見通しが立ちました

収入を増やしたい、将来のための資産が欲しい、支払いに縛られない自由な生活がしたい

このEAを使うと将来が見通せます。

22年以上で無敗の安定取引。リスク0%運用も可能なロジック。年利100%越えの上級者向け取引も可能。

マネーマシンとして育て上げることで大きな不労所得を得られます。

BBF-Girl
ドリームEA_BBF 無料ダウンロード
BBF_MQL5-20240501
リアルトレード公開|EA BBF

ポジション監視の時間

集中力は続いてますか?


オートクローズツールを使ってポジション管理を自動化


自動ポジション管理だから万が一でも大丈夫

あなたは空いた時間を自由に、効率的に使えます

自動決済ルールは独自にカスタム可能

ストップ、リミット変更にも対応。

エントリー後のポジション管理をすべて自動化できるトレーディングサポートツール。

トレード中のちょっとした離席など、念のためセットといった使い方も可能。

MT4用自動決済ツール【AutoCloseTool】は無料で入手できます。

オートクローズツール

取引ごとにキャッシュバックが発生します

もらわないだけ損している
取引ごとに毎回発生する現金のキャッシュバック
海外FXのキャッシュバックはメリットしかないサービスです

取引ごとにキャッシュバック
目次