*

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】リセット&ゴー(2)

以前の記事「【FX】リセット&ゴー」の続きです。 開幕ダッシュ 4月1日からの新体制(Dark

記事を読む

簡単にできる宝くじ(のようなもの)

簡単にできる宝くじを考案しました。 私は週に2日だけ大阪府高槻市のオフィスに出ています。と

記事を読む

【FX】ThreeTrader の Rawゼロ口座を追加で開設(2)

前回の記事「ThreeTrader の Rawゼロ口座を追加で開設」の続きです。 * じ

記事を読む

[FX] 来週は yasciiHA04c.ex4 を投入

来週稼働予定の EA をご紹介。 yasciiHA04b.ex4 を改良したものです。

記事を読む

[FX] ハーフGMMA チックな順張りプログラム

本日あるブログの記事を読んでいて、4本(GMMA の半分バージョン)を使ったトレンドフォロワーのシス

記事を読む

【FX】 Exness 口座を VPS で運用開始

Exness に 500$以上入金し、100ドル以上の余剰証拠金があれば無料で VPS が使用できま

記事を読む

【FX】2024年4月第1,2,3,4週総括

あと 2日残していますが、4月も 4週間(トレード日数としては 20日間)が過ぎました。 今月

記事を読む

2023-07-24 投資メモ

前回の記事「2023-06-27 投資メモ」から約1ヶ月。 楽天証券の分ですが、現在の資産は以

記事を読む

FXトレーダーの大冒険 / ロブ・ブッカー ブラッド・フリード

FXトレーダーの大冒険 (ウィザードブックシリーズ) ロブ・ブッカー ブラッド

記事を読む

わが子と考えるオンリーワン投資術 (ウィザードブックシリーズ)

わが子と考えるオンリーワン投資術 (ウィザードブックシリーズ) ジョン・モ

記事を読む

Message

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

NF日本高配当70 から GS日本株・プラス(通貨分散コース)へ

超高配当(現時点では)の「GS日本株・プラス(通貨分散コース)」をとり

GS日本株・プラス(通貨分散コース)本日より購入開始

投資信託の「GS日本株・プラス(通貨分散コース)」を本日から開始します

【FX】MACD をトリガーに平均足をフィルタに使ったトレンドフォローEA

MACD をトリガーに、平均足をフィルタに使ったトレンドフォローEA

QRMI と QQQI

Nasdaq100 を使ったカバードコールETF には、 Q

【FX】Fintokei 入門プラン ビギナーコース第一ステップ合格

FX の Fintokei の入門プラン ビギナーコース(100万円運

→もっと見る

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