MT4/MT5 ボラティリティ確認インジケータ

下記の記事でSLをボラティリティから考えようと思って作ったインジケータになります、単純動作なので、コードを置いておきたいと思います。業者によっては、桁数の調整が必要です。

あわせて読みたい
FXトレード戦略 | ChatGPTと考える | ストップ狩りや最適なロスカット(ストップロス) 2025年も始まりましては、トレード状況はいかがでしょうか!このウェブサイトはアフィリ目的と、自分の振り返り用や情報発信として作成しているウェブサイトですが、も...
MT4用

//+——————————————————————+
//| 20240711_Dayvolatility.mq4 |
//| suzi-fx.com |
//| https://suzi-fx.com/ |
//+——————————————————————+
#property copyright “suzi-fx.com”
#property link “https://suzi-fx.com/”
#property version “1.00”
#property strict
#property indicator_chart_window

// input パラメータ
input int n = 5; // 平均するローソク足の本数
input int p = 25; // パーセント表示

// グローバル変数
double avgRange;
double pips=Point()*10;
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int OnInit()
{
// オブジェクトを作成
ObjectCreate(0, “AvgCandleRange”, OBJ_LABEL, 0, 0, 0);
// テキストのプロパティを設定
ObjectSetText(“AvgCandleRange”, “Calculating…”, 12, “Arial”, clrWhite);
ObjectSet(“AvgCandleRange”, OBJPROP_CORNER, CORNER_LEFT_UPPER);
ObjectSet(“AvgCandleRange”, OBJPROP_XDISTANCE, 220);
ObjectSet(“AvgCandleRange”, OBJPROP_YDISTANCE, 0);
ObjectSet(“AvgCandleRange”, OBJPROP_COLOR, clrWhite);
ObjectSet(“AvgCandleRange”, OBJPROP_BACK, true);

// タイマーをセット(10秒ごとに更新)
// 平均値を計算
avgRange = CalculateAverageRange(n);

// 平均値を表示
string text = “Ave: ” + DoubleToString(avgRange/pips, 0)+”(“+p+”%=”+DoubleToString(avgRange/pips*p/100,0)+”)”+” Today:”+ DoubleToString((iHigh(NULL, PERIOD_D1, 0) – iLow(NULL, PERIOD_D1, 0))/pips,0);

ObjectSetText(“AvgCandleRange”, text, 10, “Arial”, clrWhite);

EventSetTimer(10);

return(INIT_SUCCEEDED);
}
//+——————————————————————+
//| インジケータのクリーンアップ関数 |
//+——————————————————————+
void OnDeinit(const int reason)
{
// タイマーを解除
EventKillTimer();

}
//+——————————————————————+
//| タイマーイベント処理関数 |
//+——————————————————————+
void OnTimer()
{
// 平均値を計算
avgRange = CalculateAverageRange(n);

// 平均値を表示
string text = “Ave: ” + DoubleToString(avgRange/pips, 0)+”(“+p+”%=”+DoubleToString(avgRange/pips*p/100,0)+”)”+” Today:”+ DoubleToString((iHigh(NULL, PERIOD_D1, 0) – iLow(NULL, PERIOD_D1, 0))/pips,0);

ObjectSetText(“AvgCandleRange”, text, 10, “Arial”, clrWhite);
}

//+——————————————————————+
//| Custom indicator iteration function |
//+——————————————————————+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//—

//— return value of prev_calculated for next call
return(rates_total);
}
//+——————————————————————+

//+——————————————————————+
//| 平均値を計算する関数 |
//+——————————————————————+
double CalculateAverageRange(int numBars)
{
double sumRange = 0.0;

// 日足のローソク足をループ
for (int i = 1; i <= numBars; i++) // i = 1で現在形成中の足を除く
{
// 高値と安値の差分を計算
double range = iHigh(NULL, PERIOD_D1, i) – iLow(NULL, PERIOD_D1, i);
sumRange += range;
}

// 平均値を計算
double avgRange = sumRange / numBars;

return(avgRange);
}
//+——————————————————————+

MT5用

//+——————————————————————+
//| 20240711_Dayvolatility.mq5 |
//| suzi-fx.com |
//| https://suzi-fx.com/ |
//+——————————————————————+
#property copyright “suzi-fx.com”
#property link “https://suzi-fx.com/”
#property version “1.00”
#property strict
#property indicator_chart_window
// input パラメータ
input int n = 5; // 平均するローソク足の本数
input int p = 25; // パーセント表示
// グローバル変数
double avgRange;
double pips = Point() * 10;
//+——————————————————————+
//| インジケータの初期化関数 |
//+——————————————————————+
int OnInit()
{
// オブジェクトを作成
if (!ObjectCreate(0, “AvgCandleRange”, OBJ_LABEL, 0, 0, 0))
{
Print(“Object creation failed! Error: “, GetLastError());
return INIT_FAILED;
}
// テキストのプロパティを設定 ObjectSetString(0, "AvgCandleRange", OBJPROP_TEXT, "Calculating..."); ObjectSetInteger(0, "AvgCandleRange", OBJPROP_CORNER, CORNER_LEFT_UPPER); ObjectSetInteger(0, "AvgCandleRange", OBJPROP_XDISTANCE, 220); ObjectSetInteger(0, "AvgCandleRange", OBJPROP_YDISTANCE, 0); ObjectSetInteger(0, "AvgCandleRange", OBJPROP_COLOR, clrWhite); ObjectSetInteger(0, "AvgCandleRange", OBJPROP_BACK, true); // 平均値を計算 avgRange = CalculateAverageRange(n); // 平均値を表示 string text = "Ave: " + DoubleToString(avgRange / pips, 0) + "(" + IntegerToString(p) + "%=" + DoubleToString(avgRange / pips * p / 100, 0) + ")" + " Today:" + DoubleToString((iHigh(_Symbol, PERIOD_D1, 0) - iLow(_Symbol, PERIOD_D1, 0)) / pips, 0); ObjectSetString(0, "AvgCandleRange", OBJPROP_TEXT, text); // タイマーをセット(10秒ごとに更新) EventSetTimer(10); return INIT_SUCCEEDED;
}
//+——————————————————————+
//| インジケータのクリーンアップ関数 |
//+——————————————————————+
void OnDeinit(const int reason)
{
// タイマーを解除
EventKillTimer();
// オブジェクトを削除 ObjectDelete(0, "AvgCandleRange");
}
//+——————————————————————+
//| タイマーイベント処理関数 |
//+——————————————————————+
void OnTimer()
{
// 平均値を計算
avgRange = CalculateAverageRange(n);
// 平均値を表示 string text = "Ave: " + DoubleToString(avgRange / pips, 0) + "(" + IntegerToString(p) + "%=" + DoubleToString(avgRange / pips * p / 100, 0) + ")" + " Today:" + DoubleToString((iHigh(_Symbol, PERIOD_D1, 0) - iLow(_Symbol, PERIOD_D1, 0)) / pips, 0); ObjectSetString(0, "AvgCandleRange", OBJPROP_TEXT, text);
}
//+——————————————————————+
//| インジケータの計算関数(今回は不要) |
//+——————————————————————+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
return rates_total;
}
//+——————————————————————+
//| 平均値を計算する関数 |
//+——————————————————————+
double CalculateAverageRange(int numBars)
{
double sumRange = 0.0;
for (int i = 1; i <= numBars; i++) // i = 1で現在形成中の足を除く { double range = iHigh(_Symbol, PERIOD_D1, i) - iLow(_Symbol, PERIOD_D1, i); sumRange += range; } return sumRange / numBars;
}


XM(XMTrading)ボーナス情報

XM(XMTrading)

総合評価:

海外口座日本人No.1! ●圧倒的なボーナス群:新規口座ボーナス(¥13,000相当:入金不要)+入金ボーナス100%(¥50,000相当)+入金ボーナス20%(総額¥1,300,000相当) ●入金以上の損失無し(ゼロカット) ●長年の実績と信頼 ★新規登録でインジケータプレゼント中


TariTali(タリタリ):高キャッシュバック率と使いやすいサイト設計

TariTali(タリタリ)

総合評価:

高いキャッシュバック率 ●キャッシュバック額の確認が容易な使いやすいサイト設計 ●様々な出金方法(銀行振込/SticPay/bitwallet)に対応、1500円から出金可能


FXRoyalCashBack(ロイヤルキャッシュバック):高キャッシュバック率とWキャッシュキャンペーン

FXRoyalCashBack(ロイヤルキャッシュバック)

総合評価:

TariTaliと同等の高キャッシュバック率 ●サイトの使い勝手はTariTaliに劣るが、XMオートリベートなら関係なし ●Wキャッシュバックキャンペーン¥10,000は要チェック新規登録でインジケータプレゼント中

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