*

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);
  }
//+------------------------------------------------------------------+

関連記事

[FX] Traders Dynamic Index (TDI) というインジケーター

TDI (Traders Dynamic Index)というインジケーターがあるそうですね。

記事を読む

黄金の扉を開ける賢者の海外投資術 / 橘 玲

黄金の扉を開ける賢者の海外投資術 (講談社プラスアルファ文庫) 橘 玲

記事を読む

[FX] 現在稼働中の VQシステム yasciiVQ04e.ex4(2)

以前の記事「 現在稼働中の VQシステム yasciiVQ04e.ex4 」で紹介したシステムを

記事を読む

[FX] 現在稼働中の VQシステム yasciiVQ04e.ex4

昨日なんとかがんばってくれた VQ さんちの現役くんを紹介しておきます。 デモ口座で動いていま

記事を読む

[FX] デモ口座成績 2015/4/9-18

エントリ時刻 売買 ロット 通貨 価格 エクシット時刻 決済価格 収益

記事を読む

[FX] VQ というインジケーターのバグ?

VQ というかつて人気のあったインジケーターのプログラムソースを読んでいると、133行目にちょっと気

記事を読む

移動平均線とVQインディケーターとの組み合わせで自動売買

昨日のストラテジー(ロジック)をMetaTrader4 でプログラムしてみました。 昨日のブロ

記事を読む

カジノに行きますか?

ラスベガスなどのカジノには行ったことがありませんが、行こうとは全然思いません。 豪華な設備を見

記事を読む

【FX】Tesla Power Trends Indicator というインジケータ

Tesla Power Trends Indicator というインジケータを 2年くらい前に知った

記事を読む

借金の底なし沼で知ったお金の味 25歳フリーター、借金1億2千万円、利息24%からの生還記 / 金森 重樹

借金の底なし沼で知ったお金の味 25歳フリーター、借金1億2千万円、利息24%か

記事を読む

Message

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

2025-9-15 またまた万博へ

今から万博に行ってきます。 詳細は帰ってから。 ###

2025-9-14 びわ湖バレイ

本日は、遠方から義兄が来てくれていたので、孫たちも連れてびわ湖バレイに

【FX】珍しい現象

デモ口座でフォワードテストをしている EA がいくつかありますが、その

幻の果物 長野産 ポポー

10月より発送予定!今や幻の果

アメリカ株投資 2025-09-11

なぜか好調(?)なアメリカ株の現時点での保有状況がこちら。 項目は

→もっと見る

  • アクセスカウンター
PAGE TOP ↑