*

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】VantageTrading という海外業者

わたしのようにスキャルピングやデイトレが主体のものにとっては、スプレッドが狭い業者を選ぶのは最も重要

記事を読む

【FX】東京仲値トレード

以前も試したのですが、東京仲値トレード という有名なトレード法があります。 仲値とは、その国の

記事を読む

【FX】XM 極口座 発進

以前の記事「XM で極口座を開いてみる」で書いたとおり、有名(悪名高い?)な XM でスプレッドの最

記事を読む

[FX] 3本の RCI を使った自動売買プログラム ys3RCI001a.ex4

オシレーター系の指標の中で RCI というのは値幅の情報を含んでいないという点でほかのオシレ

記事を読む

MTF Forex Freedom Bar の威力

前回は 15分足というのんびりモードですが、せっかちな人はもっと短い時間足をお使いでしょう。

記事を読む

日本政府「国の借金」過去最大の1039兆円

別に私が言うことではありませんが・・・ ネタ元> 日本経済新聞「国の借金」、過去最大の1039

記事を読む

【FX】AXI 開始

Axi(アクシ)という海外FX業者に口座を開きました。 キャッシュバックを狙って TariTali

記事を読む

【FX】リセット&ゴー(2)

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

記事を読む

株 デイトレード常勝のルール / 二階堂 重人

株 デイトレード常勝のルール 二階堂 重人 すばる舎 2008-02-20

記事を読む

ラテ・マネーを惜しみましょう

ラテ・マネーとはコーヒーのラテを買うくらいの些細な金額のこと。 対象はコーヒーとは限らず、少額

記事を読む

Message

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

次世代通信関連 世界株式戦略ファンド(予想分配金提示型) の7月分配金決定

次世代通信関連 世界株式戦略ファンド(予想分配金提示型) 、愛称「Th

PRESIDENT 年収が10倍になるAI仕事術

★★★☆☆ プレジデントの 2026年5/29号 です。 AI

【FX】2026年7月2日のやばかった瞬間

2026年7月2日はじつは やばかった瞬間がありましたという話。

Claude Fable 5 が無料使用期間中

アンソロピックが 6月に発表したものの、米政府の輸出規制により日本では

ChatGPT で画像製作

ChatGPT にプロンプトを渡すだけで、写真のような画像が製作できる

→もっと見る

  • 2026年7月
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
  • アクセスカウンター
PAGE TOP ↑