Schaff Trend Cycleのダウンロードと解説|MT4インジケーター

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

Schaff Trend CycleというMT4インジケーターが欲しいです。

どんなインジケーターなのですか?

ホシノ

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

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

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

〇Schaff Trend Cycleインジケーターのダウンロード

〇Schaff Trend Cycleの使い方や計算方法などについて

目次

Schaff Trend Cycleのダウンロード

ここからSchaff Trend Cycleインジケーターのダウンロードが可能。
ダウンロードするインジケーターファイルは.ex4ファイルとなる。
MT4のインジケーターフォルダへ移動すれば使用可能だ。

Schaff Trend Cycleのインストール

ダウンロードしたSchaff Trend CycleインジケーターはMT4のデータフォルダからindicatorsフォルダを探しファイルを移動する。

ファイル>データフォルダを開く>MQL4>indicators

indicatorsフォルダにファイルを移動し、MT4を再起動するとインストールが完了する。

Schaff Trend Cycleインジケーターとは?

SchaffTrendCycle
Schaff Trend Cycle

Schaff Trend Cycle(STC)は、ダグラス・シューフ(Douglas Schaff)が開発したテクニカル指標で、トレンドの方向性とその変化を検出するために使用される。このインジケーターは、移動平均とストキャスティクスの概念を組み合わせたもので、トレンドの転換点を早期に検出することを目指している。

Schaff Trend Cycleの計算ステップ

  1. 典型価格 (Typical Price, TP) の計算:
    • TP = (高値 + 安値 + 終値) / 3
  2. 移動平均の計算:
    • 短期EMA (MAShort) と長期EMA (MALong) をTPに基づいて計算する。
    • 短期EMAと長期EMAの差 (MACD) を計算する。
      MACD = EMA(TP, MAShort) - EMA(TP, MALong)
  1. ストキャスティクス%K (fast%K) の計算:
    • 直近のCycle期間におけるMACDの最低値 (LLV) と最高値 (HHV) を求める。
    • ストキャスティクス%Kを計算する。
      fast%K = 100 * (MACD - LLV) / (HHV - LLV)
  2. ストキャスティクス%Kの平滑化 (fast%D):
    • fast%Kにスムージング定数(α)を適用して平滑化する。α = 2 / (1 + Cycle / 2) fast%D = α * fast%K + (1 - α) * previous_fast%D
  3. ストキャスティクス%Kの再計算 (slow%K):
    • 直近のCycle期間におけるfast%Dの最低値 (LLV) と最高値 (HHV) を求める。
    • ストキャスティクス%K (slow%K) を再計算する。
      slow%K = 100 * (fast%D - LLV) / (HHV - LLV)
  4. Schaff Trend Cycle (STC) の最終計算:
    • slow%Kを再度スムージングして最終的なSTCを求める。
      STC = α * slow%K + (1 - α) * previous_STC

Schaff Trend Cycleの使い方

Schaff Trend Cycle(STC)は、トレンドフォロー型のテクニカル指標であり、特にトレンドの転換点を見つけるのに効果的だ。以下に、STCをトレードで活用するための具体的な方法について詳しく説明する。

基本的な使用方法

  1. トレンドの検出:
    • 上昇トレンド:STCが20以下のゾーンから上昇し、上向きのクロスを示した場合、上昇トレンドの開始を示唆する。
    • 下降トレンド:STCが80以上のゾーンから下降し、下向きのクロスを示した場合、下降トレンドの開始を示唆する。
  2. エントリーシグナル:
    • 買いシグナル:STCが20以下のレベルから上昇する場合。
    • 売りシグナル:STCが80以上のレベルから下降する場合。
  3. エグジットシグナル:
    • 買いポジション:STCが80以上に達した場合
    • 売りポジション:STCが20以下に達した場合

トレード戦略の具体例

  1. シンプルなクロスオーバーストラテジー:
    • ルール
      • STCが20を下から上にクロスしたら買いポジションをエントリー。
      • STCが80を上から下にクロスしたら売りポジションをエントリー。
    • エグジット
      • 逆のクロスオーバーが発生したとき、または一定の利益目標に達したときにポジションをクローズ。
  2. ダイバージェンスの活用:
    • ルール
      • 価格が新高値(または新安値)を形成しているにもかかわらず、STCが新高値(または新安値)を形成していない場合、価格の転換の可能性を示唆。
      • この場合、STCの方向に合わせてトレードを検討。
    • エグジット
      • ダイバージェンスが解消された場合、または逆方向のシグナルが発生した場合にポジションをクローズ。
  3. 他のインジケーターとの併用:
    • STCを他のトレンドフォローインジケーター(例:移動平均、MACD)と組み合わせることで、シグナルの信頼性を向上。
    • 例えば、移動平均が上昇トレンドを示している場合にSTCが買いシグナルを出した場合、そのシグナルの信頼性が高まる。

具体的なトレード例

  1. 買いポジションのエントリー:
    • 価格がレンジを抜けて上昇し始めたとき、STCが20以下から上昇し始めるのを確認。
    • このタイミングで買いポジションをエントリー。
    • 損切りは直近のスイングローに設定。
    • 利益確定はSTCが80に達したとき、または設定した利益目標に達したとき。
  2. 売りポジションのエントリー:
    • 価格がレンジを抜けて下降し始めたとき、STCが80以上から下降し始めるのを確認。
    • このタイミングで売りポジションをエントリー。
    • 損切りは直近のスイングハイに設定。
    • 利益確定はSTCが20に達したとき、または設定した利益目標に達したとき。

長期トレンドの中で押し目買い、戻り売りのタイミングを計る

表示させているチャートの上位足から長期トレンドの方向を決めておき、長期トレンドの方向にそった押し目買い、戻り売りでエントリーする。
そのタイミングを計るインジケーターとして、Schaff Trend Cycleは有効である。

注意点

  • 偽シグナル:どのテクニカル指標も偽シグナルを出す可能性がある。STCも例外ではないため、他の指標やフィルターと併用することが推奨される。
  • マーケットのコンディション:STCはトレンド市場で効果的ですが、レンジ相場ではパフォーマンス低下の可能性がある。市場の状況に応じて使用することが重要となる。

まとめ

Schaff Trend Cycleは、トレンドフォロー型のトレード戦略において有効なインジケーターだ。早期にトレンドの転換点を捉えることで、トレードのエントリーとエグジットのタイミングを改善できる。効果的に利用するためには、他の指標やフィルターと組み合わせて使用し、リスク管理を徹底することが重要となる。

Schaff Trend Cycleのプログラム

//+------------------------------------------------------------------+
//|                                             SchaffTrendCycle.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_separate_window
#property indicator_minimum -10
#property indicator_maximum 110
#property indicator_buffers 2
#property indicator_color1 Blue

//---- 入力パラメータ
extern int MAShort = 23;
extern int MALong = 50;
extern double Cycle = 10;
extern int CountBars = 300;

//---- バッファ
double MA[];
double ST[];
double MCD_Arr[];

//+------------------------------------------------------------------+
//| カスタムインジケーター初期化関数                                |
//+------------------------------------------------------------------+
int init()
  {
   // インジケーターバッファの初期化
   IndicatorBuffers(3);
   SetIndexBuffer(0, MA);
   SetIndexBuffer(1, ST);
   SetIndexBuffer(2, MCD_Arr);
   
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2, Blue);
   IndicatorShortName("Schaff Trend Cycle");

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Schaff Trend Cycle                                               |
//+------------------------------------------------------------------+
int start()
  {
   int shift, counted_bars = IndicatorCounted();
   double MCD, LLV, HHV, MA_Short, MA_Long, prev, smconst;
   int n = 0;
   int s = 1;
   bool check_begin = false, check_begin_MA = false;
   
   // スムージング定数の初期化
   smconst = 2.0 / (1.0 + Cycle / 2.0);
   
   // 計算の開始点を設定
   if (counted_bars > 0)
     shift = Bars - counted_bars - 1;
   else
     shift = Bars - CountBars;
   
   while (shift >= 0)
     {
      // 短期および長期EMAの計算
      MA_Short = iMA(NULL, 0, MAShort, 0, MODE_EMA, PRICE_TYPICAL, shift);
      MA_Long = iMA(NULL, 0, MALong, 0, MODE_EMA, PRICE_TYPICAL, shift);
      MCD = MA_Short - MA_Long;
      
      // MCD値の保存
      MCD_Arr[n] = MCD;
      
      if (n >= Cycle - 1)
        {
         check_begin = true;
         n = 0;
        }
      else
        n++;
      
      if (check_begin)
        {
         // MCDの最低値と最高値を計算
         LLV = MCD_Arr[0];
         HHV = MCD_Arr[0];
         for (int i = 1; i < Cycle; i++)
           {
            if (MCD_Arr[i] < LLV) LLV = MCD_Arr[i];
            if (MCD_Arr[i] > HHV) HHV = MCD_Arr[i];
           }
         
         // MCDのストキャスティクス%Kの計算
         ST[shift] = (MCD - LLV) / (HHV - LLV) * 100.0;
         s++;
         
         if (s >= Cycle / 2)
           {
            check_begin_MA = true;
            s = 1;
           }
        }
      else
        {
         ST[shift] = 0;
        }
      
      if (check_begin_MA)
        {
         // ストキャスティクス%K値のEMAの計算 (MA)
         if (shift < Bars - 1)
           {
            prev = MA[shift + 1];
            MA[shift] = smconst * (ST[shift] - prev) + prev;
           }
         else
           {
            MA[shift] = ST[shift];
           }
        }
      
      shift--;
     }
   
   return(0);
  }
//+------------------------------------------------------------------+

ソースコードの詳細を解説

プロパティ設定

#property indicator_separate_window
#property indicator_minimum -10
#property indicator_maximum 110
#property indicator_buffers 2
#property indicator_color1 Blue
  • #property indicator_separate_window:インジケーター表示をサブウィンドウに指定。
  • #property indicator_minimum -10:インジケーターのY軸の最小値を-10に設定。
  • #property indicator_maximum 110:インジケーターのY軸の最大値を110に設定。
  • #property indicator_buffers 2:インジケーターが2つのバッファを使用することを指定。
  • #property indicator_color1 Blue:インジケーターのラインの色を青色に設定。

入力パラメータ

extern int MAShort = 23; extern int MALong = 50; extern double Cycle = 10; extern int CountBars = 300;

  • extern int MAShort = 23:短期EMAの期間を23に設定。
  • extern int MALong = 50:長期EMAの期間を50に設定。
  • extern double Cycle = 10:サイクル期間を10に設定。
  • extern int CountBars = 300:計算するバーの数を300に設定。

バッファの定義

double MA[]; double ST[]; double MCD_Arr[];

  • double MA[]:ストキャスティクス%K値のEMAを保存するバッファ。
  • double ST[]:ストキャスティクス%K値を保存するバッファ。
  • double MCD_Arr[]:EMAの差(MCD値)を保存するバッファ。

初期化関数

int init()
  {
   // インジケーターバッファの初期化
   IndicatorBuffers(3);
   SetIndexBuffer(0, MA);
   SetIndexBuffer(1, ST);
   SetIndexBuffer(2, MCD_Arr);
   
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2, DarkOrchid);
   IndicatorShortName("Schaff Trend Cycle");

   return(INIT_SUCCEEDED);
  }
  • IndicatorBuffers(3):インジケーターが3つのバッファを使用。
  • SetIndexBuffer(0, MA):最初のバッファ(MA)を設定。
  • SetIndexBuffer(1, ST):2番目のバッファ(ST)を設定。
  • SetIndexBuffer(2, MCD_Arr):3番目のバッファ(MCD_Arr)を設定。
  • SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2, Blue):1番目のバッファをラインスタイルで描画し、太さを2、色をBlueに設定。
  • IndicatorShortName("Schaff Trend Cycle"):インジケーターの短縮名を設定。

メイン計算関数

int start()
  {
   int shift, counted_bars = IndicatorCounted();
   double MCD, LLV, HHV, MA_Short, MA_Long, prev, smconst;
   int n = 0;
   int s = 1;
   bool check_begin = false, check_begin_MA = false;
   
   // スムージング定数の初期化
   smconst = 2.0 / (1.0 + Cycle / 2.0);
   
   // 計算の開始点を設定
   if (counted_bars > 0)
     shift = Bars - counted_bars - 1;
   else
     shift = Bars - CountBars;
   
   while (shift >= 0)
     {
      // 短期および長期EMAの計算
      MA_Short = iMA(NULL, 0, MAShort, 0, MODE_EMA, PRICE_TYPICAL, shift);
      MA_Long = iMA(NULL, 0, MALong, 0, MODE_EMA, PRICE_TYPICAL, shift);
      MCD = MA_Short - MA_Long;
      
      // MCD値の保存
      MCD_Arr[n] = MCD;
      
      if (n >= Cycle - 1)
        {
         check_begin = true;
         n = 0;
        }
      else
        n++;
      
      if (check_begin)
        {
         // MCDの最低値と最高値を計算
         LLV = MCD_Arr[0];
         HHV = MCD_Arr[0];
         for (int i = 1; i < Cycle; i++)
           {
            if (MCD_Arr[i] < LLV) LLV = MCD_Arr[i];
            if (MCD_Arr[i] > HHV) HHV = MCD_Arr[i];
           }
         
         // MCDのストキャスティクス%Kの計算
         ST[shift] = (MCD - LLV) / (HHV - LLV) * 100.0;
         s++;
         
         if (s >= Cycle / 2)
           {
            check_begin_MA = true;
            s = 1;
           }
        }
      else
        {
         ST[shift] = 0;
        }
      
      if (check_begin_MA)
        {
         // ストキャスティクス%K値のEMAの計算 (MA)
         if (shift < Bars - 1)
           {
            prev = MA[shift + 1];
            MA[shift] = smconst * (ST[shift] - prev) + prev;
           }
         else
           {
            MA[shift] = ST[shift];
           }
        }
      
      shift--;
     }
   
   return(0);
  }

変数の初期化

  • int shift, counted_bars = IndicatorCounted();:計算するバーのシフト位置と、以前計算されたバーの数を取得する。
  • double MCD, LLV, HHV, MA_Short, MA_Long, prev, smconst;:各種計算に使用する変数を定義する。
  • int n = 0; int s = 1;:カウンタ変数を初期化する。
  • bool check_begin = false, check_begin_MA = false;:計算開始のフラグを初期化する。

スムージング定数の初期化

smconst = 2.0 / (1.0 + Cycle / 2.0);

  • サイクルに基づいてスムージング定数を計算する。

計算の開始点を設定

if (counted_bars > 0) shift = Bars - counted_bars - 1; else shift = Bars - CountBars;

  • 以前計算されたバーの数に応じて計算を開始するシフト位置を設定。

メインループ

while (shift >= 0)
  {
   // 短期および長期EMAの計算
   MA_Short = iMA(NULL, 0, MAShort, 0, MODE_EMA, PRICE_TYPICAL, shift);
   MA_Long = iMA(NULL, 0, MALong, 0, MODE_EMA, PRICE_TYPICAL, shift);
   MCD = MA_Short - MA_Long;
   
   // MCD値の保存
   MCD_Arr[n] = MCD;
   
   if (n >= Cycle - 1)
     {
      check_begin = true;
      n = 0;
     }
   else
     n++;
   
   if (check_begin)
     {
      // MCDの最低値と最高値を計算
      LLV = MCD_Arr[0];
      HHV = MCD_Arr[0];
      for (int i = 1; i < Cycle; i++)
        {
         if (MCD_Arr[i] < LLV) LLV = MCD_Arr[i];
         if (MCD_Arr[i] > HHV) HHV = MCD_Arr[i];
        }
      
      // MCDのストキャスティクス%Kの計算
      ST[shift] = (MCD - LLV) / (HHV - LLV) * 100.0;
      s++;
      
      if (s >= Cycle / 2)
        {
         check_begin_MA = true;
         s = 1;
        }
     }
   else
     {
      ST[shift] = 0;
     }
   
   if (check_begin_MA)
     {
      // ストキャスティクス%K値のEMAの計算 (MA)
      if (shift < Bars - 1)
        {
         prev = MA[shift + 1];
         MA[shift] = smconst * (ST[shift] - prev) + prev;
        }
      else
        {
         MA[shift] = ST[shift];
        }
     }
   
   shift--;
  }
  1. 短期および長期EMAの計算
    • MA_ShortMA_LongiMA関数を使って計算し、MCD(短期EMAと長期EMAの差)を求める。
  2. MCD値の保存
    • MCD_Arr[n]にMCDの値を保存し、カウンタnを更新する。
  3. ストキャスティクス%Kの計算
    • MCDの最低値(LLV)と最高値(HHV)を計算し、ストキャスティクス%Kを求めてSTバッファに保存。
  4. ストキャスティクス%K値のEMAの計算 (MA)
    • STバッファの値を使ってEMAを計算し、MAバッファに保存。

関数の終了

return(0);

  • 関数が正常に終了することを示す。

MT4インジケーターまとめ

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

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

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

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

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

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

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

ポジション監視の時間

集中力は続いてますか?


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


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

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

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

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

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

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

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

オートクローズツール

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

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

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