*

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

関連記事

アメリカ株投資 2021-8-28

先日の記事「アメリカ株投資 2021-8-25」の続き。 昨日ジャクソンホール(世界の中央銀行

記事を読む

社内のコソ泥、院内のコソ泥

会社によくいるコソ泥 会社によくいるコソ泥。 会社内に会社の金を盗むドロボウ(善悪の判

記事を読む

[FX] マルチタイム平均足を使ったトレンドフォロープログラム

FX で1日間から数日間程度のトレンドをフォローする方法として、いろいろなものが考案されてい

記事を読む

【FX】Alpinist という EA

Alpinist という面白い EA があります。 ロジックが不明で「ニューラルネットワークを

記事を読む

【FX】 Hunter Scalper 1.10 という EA

Hunter Scalper 1.10 今までなんどか紹介している Hunter Scapular

記事を読む

【FX】EA詐欺について

EA詐欺という言葉を聞いたことがないでしょうか。 EA とは自動売買プログラムのこと。

記事を読む

三菱HCキャピタル(8593)株を買ってみました

予想配当 4.92%ということなので配当目当てで 100株購入してみました。 チャート

記事を読む

【FX】新戦略のためのデモトレード

現在の FX 自動売買は Evening Scalper Pro を中心に行っていますが、逆張りナン

記事を読む

FX 大ダメージ 暴落対策用コードの導入

  自動売買のデモ口座が今朝とんでもないことに。 昨日は調子よく、30万円プラ

記事を読む

GDP は国富増加の指標にならない

GDP はあてにならない GDP は国富を測るいい指標になるとは限りません。 私の考えた次の

記事を読む

Message

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

エレコム ギガビットイッチングハブ 8ポート EHC-G08PA3-W

エレコム スイッチングハブ 5

USB-DAC LiNKFOR 名前はまだない

今朝、パソコンが勝手に再起動状態になっており、どうも Windows

シチズン腕時計 QB78-422 また買いました

本日うっかり事務所に腕時計を置いてきたまま帰宅してしまいました

PHILIPS 242E2F/11 23.8型ワイド液晶ディスプレイ逝く

楽天市場で 2021/05/25(火)に購入した液晶ディスプレイの P

【FX】Silent Falcon という EA

本日見つけた FX 自動売買ソフト(EA)です。 私のいうバース

→もっと見る

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