*

Schaff Trend Cycle について

公開日: : 最終更新日:2015/04/16 マネー

Schaff Trend Cycle は私の好きな指標の一つで、MACD のストキャスをストキャスしたものです。

0%(売られすぎ=下げトレンド) と 100%(買われすぎ=上げトレンド) に張り付いていることが多いですが、トレンドが変わるときに大きく動きます。

ダマシが少ない特長と敏感さを併せ持つ、なかなか使えるヤツです。

下のチャートはサブウィンドゥが4つありますが、上から

  1. Schaff Trend Cycle.ex4 (MetaTrader4 標準添付)
  2. STC_pure.ex4 (temjin さん作)
  3. Schaff_Trend_s.ex4 (Schaff Trend Cycle.ex4 にシグナルを付加したもの)
  4. STC_pure.ex4 (STC_pure.ex4 にシグナルを付加したもの)

です。

パラメーターは、MA_Short=8 、 MA_Long=13 、 MA_Cycle=5 、Sig_Period=8 に合わせてあります。

 

標準の Schaff Trend Cycle.ex4 は欠点がありまして、下のチャートのようにペアを入れ替えたり、新しい足が立ったりすると計算が狂って、ほとんどゼロになってしまうことです。

Schaff_Trend_s.ex4 にも当然同じ欠点があります。

計算値が狂うと EA にしたときに売買ができなくなるので困るのです。

そこで重宝するのが STC_pure.ex4 でして、temjin さんのお作りになったものです。

計算値が Schaff Trend Cycle.ex4 と全く同じにならない(おそらく Schaff Trend Cycle.ex4 のほうが正しい)のですが、上記のような欠点がありません。

STC_pure.ex4 は残念ながらシグナルが出ませんが、出た方が絶対に便利なので、シグナルが出るように私が改変してみました。

要するに、STCがシグナルと交差して上抜けると「買い」、下抜けると「売り」になります。

STC_pure_S.mq4 (改変 by やすきー)

//+------------------------------------------------------------------+
//|                               STC_pure_S.mq4(Schaff Trend Cycle) |
//|                           Copyright (c) 2009, temjin.m@gmail.com |
//|                                   http://temjins.blog43.fc2.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright (c) 2009, temjin.m@gmail.com"
#property link      "http://temjins.blog43.fc2.com/"

#property indicator_separate_window
#property indicator_buffers 2 //改変 by やすきー
#property indicator_color1 Turquoise
#property indicator_color2 Yellow

#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_level1 5
#property indicator_level2 95
#property indicator_levelcolor LightSlateGray
//---- input parameters
extern int MA_Short=8;
extern int MA_Long=13;
extern int MA_Cycle=5;
extern int PriceType=0;
extern int SigPeriod=23; //改変 by やすきー

//---- buffers
double mcd[];
double stc1[];
double stc2[];
double pf1[];
double pf2[];
double pfs[]; //改変 by やすきー
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   IndicatorShortName("Schaff Trend Cycle("+MA_Short+","+MA_Long+","+MA_Cycle+")");
   IndicatorBuffers(6); //改変 by やすきー
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,pf2);
   SetIndexLabel(0,"STC");
   SetIndexBuffer(1, pfs); //改変 by やすきー
   SetIndexStyle(1,DRAW_LINE); //改変 by やすきー
   SetIndexBuffer(2, mcd); //改変 by やすきー
   SetIndexBuffer(3, stc1); //改変 by やすきー
   SetIndexBuffer(4, stc2); //改変 by やすきー
   SetIndexBuffer(5, pf1); //改変 by やすきー
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int   limit = Bars - IndicatorCounted();
   int   n;
   double   ema_s,ema_l;
   double   llv, hhv;
   double   smconst = 0.5;

   if(limit == Bars) limit -= MA_Long-1;
   for(int i=limit-1; i>=0; i--)
   {
      //MACDの計算
      ema_s = iMA(NULL,0,MA_Short,0, MODE_EMA, PriceType,i);
      ema_l = iMA(NULL,0,MA_Long,0, MODE_EMA, PriceType,i);
      mcd[i] = ema_s - ema_l;

      //MACDのストキャス計算
      for (n = 0; n < MA_Cycle; n++)
      {
         if (n == 0)
         {
            llv = mcd[i];
            hhv = mcd[i];
         }
         else
         {
            if (llv > mcd[i+n]) llv = mcd[i+n];
            if (hhv < mcd[i+n]) hhv = mcd[i+n];
         }
      }
      if (hhv - llv > 0)
         stc1[i] = ((mcd[i] - llv)/(hhv - llv)) * 100;
      else
         stc1[i] = 50;  

      //ストキャス値の指数平滑
      pf1[i] = smconst * (stc1[i] - pf1[i+1]) + pf1[i+1];

      //2回目のストキャス計算
      for (n = 0; n <MA_Cycle; n++)
      {
         if (n==0)
         {
            llv = pf1[i];
            hhv = pf1[i];
         }
         else
         {
            if (llv > pf1[i+n]) llv = pf1[i+n];
            if (hhv < pf1[i+n]) hhv = pf1[i+n];
         }
      }
      if (hhv - llv > 0)
         stc2[i] = ((pf1[i] - llv)/(hhv - llv)) * 100;
      else
         stc2[i] = 50;  

      //ストキャス値の指数平滑
      pf2[i] = smconst * (stc2[i] - pf2[i+1]) + pf2[i+1];
   }
   for(int k = limit-1 ; k>=0 ; k--)  //改変 by やすきー
   {
      pfs[k] = iMAOnArray(pf2, 0, SigPeriod, 0, MODE_EMA, k);  //改変 by やすきー
   }

   return(0);
  }
//+------------------------------------------------------------------+

関連記事

Claude Codeに投資を全部任せてみたら、利益は出るのか?【AI投資実験】

これも Kindle 本の一つ。 AI アプリケーションの Claude Codeに投

記事を読む

【FX】Silent Falcon という EA

本日見つけた FX 自動売買ソフト(EA)です。 私のいうバースト系(急激な価格変動をトリガー

記事を読む

超シンプルな自動売買プログラム(4) MACD&RSI

稼ぐ人のFX 儲けの流儀 (超トリセツ) バウンド インターナショナル・ラグジュ

記事を読む

損の無い投資法

 私は昔毎月10万円以上、本を買っていました。  医学書以外にもビジネス本の新刊は手当たり次第

記事を読む

楽天JPEQ 今月も順調な配当

「楽天JEPQ」とは正式名称を楽天・米国成長株式・プレミアム・インカム・ファンド(毎月決算型)といい

記事を読む

12億円当たれば年4000万円遣っても30年

昨日夕食を外食で済ませたのち、施設内の宝くじ売り場の前を通りかかりました。 「12億円当たれば

記事を読む

Tracers日経平均高配当株50インデックス(奇数月分配型)の配当が出ました

「Tracers 日経平均高配当株50インデックス(奇数月分配型)」という年6回配当の投資信託の配当

記事を読む

[FX] 15分足スキャルピング自動運転プログラム(2)

昨日の記事の 「15分足スキャルピング自動運転プログラム」は、トレンドのないときと正の向きのトレンド

記事を読む

【FX】 スリーラインストライク

海外のFX取引戦略の日本語訳のビデオで、「スリーラインストライク」の紹介がされていました。

記事を読む

【FX】フラクタルを使ったスキャルピング手法

https://www.youtube.com/watch?v=RBvBYzhnZzc You

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

20万点以上のデジタルウォールアートバンドル(2)

「20万点以上のデジタルウォールアートバンドル」という Etsy.co

300点以上の日本の壁掛けアート

Etsy.com で「300点以上の日本の壁掛けアート」と称した作品集

【AI】Gemini 3.8Flash 登場

Gemini 3.8 Flash を Google DeepMindが

20万点以上のデジタルウォールアートバンドル

「20万点以上のデジタルウォールアートバンドル」という製品を

歌川広重の日本美術版画800点以上:高解像度(デジタルダウンロード)R-159(2)

昨日買った歌川広重(安藤広重)の日本美術版画800点以上です。

→もっと見る

  • 2026年9月
     123456
    78910111213
    14151617181920
    21222324252627
    282930  
  • アクセスカウンター
PAGE TOP ↑