SuperTrendスーパートレンドのダウンロードと解説|MT4インジケーター
SuperTrendというMT4のインジケーターが欲しいです。
FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。
このページでわかること・できること
〇SuperTrend(MT4インジケーター)のダウンロード
〇SuperTrendの使い方やプログラムについて
SuperTrendのダウンロード
ここからインジケーターのダウンロードが可能。
ダウンロードするインジケーターファイルは.ex4ファイルとなる。
MT4のインジケーターフォルダへ移動すれば使用可能だ。
SuperTrendのインストール
ダウンロードしたSuperTrendインジケーターはMT4のデータフォルダからindicatorsフォルダを探しファイルを移動する。
indicatorsフォルダにファイルを移動し、MT4を再起動するとインストールが完了する。
SuperTrendはどんなインジケーターか?
SuperTrendインジケーターは、トレンドフォロー型のトレード戦略において現在の市場トレンドを識別し、エントリーポイントやエグジットポイントを見つけるために使用されるテクニカルインジケーター。
以下にSuperTrendインジケーターの基本的な使い方をわかりやすく説明する。
基本概念
SuperTrendインジケーターは、主に以下の要素で構成される:
- ATR(Average True Range):市場のボラティリティ(価格変動の幅)を測定する指標。
- Multiplier:ATRに乗じる倍率。
インジケーターの構成
SuperTrendインジケーターは、チャート上に1本のラインとして表示される。このラインは、価格の上または下に位置し、トレンドの方向を示している。
- ラインが価格の下に位置する場合:現在のトレンドは上昇(Bullish)と判断される。
- ラインが価格の上に位置する場合:現在のトレンドは下降(Bearish)と判断される。
インジケーターの計算方法
- Median Price:
- 高値(High)と安値(Low)の平均。
[math]{Median Price} = \frac{\text{High} + \text{Low}}{2}[/math]
- 高値(High)と安値(Low)の平均。
- 上下バンドの計算:
- [math]{Upper Band} = \text{Median Price} + (\text{Multiplier} \times \text{ATR})
- [math]{Lower Band} = \text{Median Price} – (\text{Multiplier} \times \text{ATR})[/math]
- [math]{Upper Band} = \text{Median Price} + (\text{Multiplier} \times \text{ATR})
- トレンドの判定:
- 価格が上のバンドを超えると、トレンドは上昇に変わる。
トレンドが上昇に変わる条件:[math]{Close}_i > \text{Upper Band}_{i-1}[/math] - 価格が下のバンドを下回ると、トレンドは下降に変わる。
トレンドが下降に変わる条件:[math]{Close}_i < \text{Lower Band}_{i-1}[/math]
- 価格が上のバンドを超えると、トレンドは上昇に変わる。
トレードのシグナル
SuperTrendインジケーターを使ったトレードの基本的なシグナルは以下の通り:
- 買いシグナル(Buy Signal):
- SuperTrendラインが価格の下に移動したとき。
- このとき、ラインは上昇トレンドを示す色になる。
- 売りシグナル(Sell Signal):
- SuperTrendラインが価格の上に移動したとき。
- このとき、ラインは下降トレンドを示す色になる。
基本的な使用方法
- チャートにインジケーターを追加:
- MT4にSuperTrendインジケーターを追加する。
- パラメータとして、ATRの期間(例えば10日)とMultiplier(例えば3.0)を設定する。
- トレンドの確認:
- チャート上に表示されたSuperTrendラインの位置を確認する。
- ラインが価格の下にある場合は上昇トレンド、価格の上にある場合は下降トレンドと判断。
- エントリーとエグジット:
- 買いポジションはラインが価格の下に移動したときにエントリーし、下降トレンドに変わったときにエグジット。
- 売りポジションはラインが価格の上に移動したときにエントリーし、上昇トレンドに変わったときにエグジット。
実践的な使用
SuperTrendはその名の通り、トレンドの視覚化を補助するインジケーターだ。
そのため、トレンドが発生していない状況ではサインの反転が頻発し、俗に言うダマシの状態となる。
ダマシを防ぐためにも、SuperTrend単体で分析せず、上位足の監視と合わせたフィルタリングなどでサインを絞ることが肝要となる。上位足でのトレンド方向のみにエントリーする、上位足のトレンド終了までポジション保有する、など。
まとめ
SuperTrendインジケーターは、そのシンプルさと視覚的な明瞭さから多くのトレーダーに愛用されている。トレンドフォロー型の戦略を採用する場合、このインジケーターはエントリーとエグジットのタイミングを見つけるための強力なツールとなりえる。ただし、市場の状況によってはダマシも発生するため、他のテクニカル指標と併用することが推奨される。
SuperTrendのプログラム
//+------------------------------------------------------------------+
//| Super Trend.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 strict
#property indicator_chart_window
#property indicator_color1 Yellow
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2
#property indicator_buffers 2
double TrendUp[], TrendDown[]; // 上向きトレンドと下向きトレンドのバッファー
int changeOfTrend; // トレンド転換のフラグ
extern int Nbr_Periods = 10; // ATR の期間
extern double Multiplier = 3.0; // マルチプライヤー
//+------------------------------------------------------------------+
//| カスタムインジケーターの初期化関数 |
//+------------------------------------------------------------------+
int init() {
// インジケーターの設定
SetIndexBuffer(0, TrendUp);
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
SetIndexLabel(0, "上向きトレンド");
SetIndexBuffer(1, TrendDown);
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2);
SetIndexLabel(1, "下向きトレンド");
return 0;
}
//+------------------------------------------------------------------+
//| カスタムインジケーターの終了処理関数 |
//+------------------------------------------------------------------+
int deinit() {
return 0;
}
//+------------------------------------------------------------------+
//| カスタムインジケーターの計算関数 |
//+------------------------------------------------------------------+
int start() {
int limit, i, flag, flagh, trend[];
double up[], dn[], medianPrice, atr;
int counted_bars = IndicatorCounted();
if (counted_bars < 0)
return (-1);
if (counted_bars > 0)
counted_bars--;
limit = Bars - counted_bars;
if (counted_bars == 0)
limit -= 1 + 1;
int xsize = ArraySize(TrendUp);
ArrayResize(trend, xsize);
ArrayResize(up, xsize);
ArrayResize(dn, xsize);
//---- 計算処理
for (i = limit; i >= 0; i--) {
atr = iATR(NULL, 0, Nbr_Periods, i);
medianPrice = (High[i] + Low[i]) / 2;
up[i] = medianPrice + (Multiplier * atr);
dn[i] = medianPrice - (Multiplier * atr);
trend[i] = 1;
if (Close[i] > up[i + 1]) {
trend[i] = 1;
if (trend[i + 1] == -1)
changeOfTrend = 1;
}
else if (Close[i] < dn[i + 1]) {
trend[i] = -1;
if (trend[i + 1] == 1)
changeOfTrend = 1;
}
else if (trend[i + 1] == 1) {
trend[i] = 1;
changeOfTrend = 0;
}
else if (trend[i + 1] == -1) {
trend[i] = -1;
changeOfTrend = 0;
}
if (trend[i] < 0 && trend[i + 1] > 0) {
flag = 1;
}
else {
flag = 0;
}
if (trend[i] > 0 && trend[i + 1] < 0) {
flagh = 1;
}
else {
flagh = 0;
}
if (trend[i] > 0 && dn[i] < dn[i + 1])
dn[i] = dn[i + 1];
if (trend[i] < 0 && up[i] > up[i + 1])
up[i] = up[i + 1];
if (flag == 1)
up[i] = medianPrice + (Multiplier * atr);
if (flagh == 1)
dn[i] = medianPrice - (Multiplier * atr);
//-- インジケーターを描画
if (trend[i] == 1) {
TrendUp[i] = dn[i];
if (changeOfTrend == 1) {
TrendUp[i + 1] = TrendDown[i + 1];
changeOfTrend = 0;
}
}
else if (trend[i] == -1) {
TrendDown[i] = up[i];
if (changeOfTrend == 1) {
TrendDown[i + 1] = TrendUp[i + 1];
changeOfTrend = 0;
}
}
}
return 0;
}
//+------------------------------------------------------------------+
ソースコードを詳細に解説
ヘッダ情報
#property strict
#property indicator_chart_window
#property indicator_color1 Yellow
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2
#property indicator_buffers 2
#property strict
: コードの厳密なチェックを有効にする。#property indicator_chart_window
: インジケーターをチャートウィンドウに表示。#property indicator_color1 Yellow
: インジケーターの最初のラインの色を黄色に設定。#property indicator_color2 Red
: インジケーターの2番目のラインの色を赤に設定。#property indicator_width1 2
: 最初のラインの幅を2に設定。#property indicator_width2 2
: 2番目のラインの幅を2に設定。#property indicator_buffers 2
: インジケーターが使用するバッファの数を2に設定。
グローバル変数と入力パラメータ
double TrendUp[], TrendDown[]; // 上向きトレンドと下向きトレンドのバッファー
int changeOfTrend; // トレンド転換のフラグ
extern int Nbr_Periods = 10; // ATR の期間
extern double Multiplier = 3.0; // マルチプライヤー
TrendUp[]
とTrendDown[]
: 上向きトレンドと下向きトレンドの値を保持するバッファー。changeOfTrend
: トレンド転換を示すフラグ。Nbr_Periods
: ATRの計算に使用する期間。Multiplier
: ATRに掛ける倍率。
初期化関数
int init() {
// インジケーターの設定
SetIndexBuffer(0, TrendUp);
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
SetIndexLabel(0, "上向きトレンド");
SetIndexBuffer(1, TrendDown);
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2);
SetIndexLabel(1, "下向きトレンド");
return 0;
}
SetIndexBuffer
: バッファをインジケーターに関連付けする。SetIndexStyle
: インジケーターのスタイルを設定。SetIndexLabel
: インジケーターのラベルを設定。
終了処理関数
int deinit() { return 0; }
- インジケーターの終了時に呼び出される。
計算関数
int start() {
int limit, i, flag, flagh, trend[];
double up[], dn[], medianPrice, atr;
int counted_bars = IndicatorCounted();
if (counted_bars < 0)
return (-1);
if (counted_bars > 0)
counted_bars--;
limit = Bars - counted_bars;
if (counted_bars == 0)
limit -= 1 + 1;
int xsize = ArraySize(TrendUp);
ArrayResize(trend, xsize);
ArrayResize(up, xsize);
ArrayResize(dn, xsize);
IndicatorCounted
: 計算済みのバーの数を返す。ArraySize
: 配列のサイズを返す。ArrayResize
: 配列のサイズを変更。
メインループ
for (i = limit; i >= 0; i--) {
atr = iATR(NULL, 0, Nbr_Periods, i);
medianPrice = (High[i] + Low[i]) / 2;
up[i] = medianPrice + (Multiplier * atr);
dn[i] = medianPrice - (Multiplier * atr);
trend[i] = 1;
if (Close[i] > up[i + 1]) {
trend[i] = 1;
if (trend[i + 1] == -1)
changeOfTrend = 1;
}
else if (Close[i] < dn[i + 1]) {
trend[i] = -1;
if (trend[i + 1] == 1)
changeOfTrend = 1;
}
else if (trend[i + 1] == 1) {
trend[i] = 1;
changeOfTrend = 0;
}
else if (trend[i + 1] == -1) {
trend[i] = -1;
changeOfTrend = 0;
}
if (trend[i] < 0 && trend[i + 1] > 0) {
flag = 1;
}
else {
flag = 0;
}
if (trend[i] > 0 && trend[i + 1] < 0) {
flagh = 1;
}
else {
flagh = 0;
}
if (trend[i] > 0 && dn[i] < dn[i + 1])
dn[i] = dn[i + 1];
if (trend[i] < 0 && up[i] > up[i + 1])
up[i] = up[i + 1];
if (flag == 1)
up[i] = medianPrice + (Multiplier * atr);
if (flagh == 1)
dn[i] = medianPrice - (Multiplier * atr);
//-- インジケーターを描画
if (trend[i] == 1) {
TrendUp[i] = dn[i];
if (changeOfTrend == 1) {
TrendUp[i + 1] = TrendDown[i + 1];
changeOfTrend = 0;
}
}
else if (trend[i] == -1) {
TrendDown[i] = up[i];
if (changeOfTrend == 1) {
TrendDown[i + 1] = TrendUp[i + 1];
changeOfTrend = 0;
}
}
}
return 0;
}
iATR
: ATR(Average True Range)を計算する。- 各バーについて以下を行う:
medianPrice
を計算。up
およびdn
の値を計算。- 現在の価格が
up
を超えている場合、トレンドは上向き。逆に、dn
を下回っている場合、トレンドは下向き。 - トレンドが変わった場合、
changeOfTrend
フラグを設定。 - トレンドに基づいて
TrendUp
およびTrendDown
バッファに値を設定。
MT4インジケーターまとめ
-
平均足をサブウィンドウに表示するMT4インジケーター
-
T3のダウンロードと解説|MT4インジケーター
-
【海外FX】ボリンジャーバンドを使ったMT4のインジケーター特集【無料】
-
平均足Smoothdのダウンロードと解説|MT4インジケーター
-
Schaff Trend Cycleのダウンロードと解説|MT4インジケーター
-
MT4からインジケーターを無料でダウンロード|1350種類から検索
-
Aroonのダウンロードと解説|MT4インジケーター
-
GMMA・グッピーのダウンロードと解説|MT4インジケーター
-
TMAのダウンロードと解説|MT4インジケーター
-
BSIのダウンロードと解説|MT4インジケーター
-
Donchian channelのダウンロードと解説|MT4インジケーター
-
【MT4】高値と安値がわかる無料インジケーター特集|High Low【海外FX】
-
MT4【ZigZag】ジグザグの無料インジケーター特集【最新版】
-
【MT4】スキャルピングで使えるオシレーター解説【無料インジケーター】
-
SuperTrendスーパートレンドのダウンロードと解説|MT4インジケーター
-
【無料】スキャルピングトレードのサインがでるMT4インジケーター特集【最新23選】
-
TTFのダウンロードと解説|MT4インジケーター
-
【MT4】ピボットのインジケーター特集【無料】
-
ボリンジャーバンドをサブウインドウに表示するMT4インジケーター
-
TEMAのダウンロードと解説|MT4インジケーター
-
RCIのダウンロードと解説|MT4インジケーター
-
PivotPointsピボットポイントのダウンロードと解説|MT4インジケーター
-
【無料】マルチタイムフレームのMT4インジケーター特集【最新版】
-
1日の区切りに垂直線を引くMT4インジケーター|OneDayLine