Schaff Trend Cycle Oscillator

Here you can post and download custom indicators. PLEASE: Do not start topics unless you are posting your own indicator, they will be moved to appropriate section even if you do.

Moderator: admin

Schaff Trend Cycle Oscillator

Postby Nikolay.Gekht » Wed Jan 20, 2010 7:18 pm

Schaff Trend Cycle Oscillator

Parameters:
Schaff cycle periods (C)
Short periods (S)
Long periods (L)

MCD=WMA(PRICE, S) - WMA(PRICE, L)
ST=(MCD - MAX(MCD,C))/(MAX(MCD,C)-MIN(MCD,C) * 100
OSCILLATOR=WMA(ST, C/2);

Where WMA is Wilders Moving Average.

Read more about the indicator here

schtc.jpg


Download:
SCHTC.lua
(2.27 KiB) Downloaded 2574 times

Schaff Trend Cycle Oscillator with Alert.lua
(13.18 KiB) Downloaded 1175 times

This indicator will provides Audio / Email Alerts if and when Schaff Trend Cycle Oscillator cross Central, Over Bought or Over Sold Level.

Dec 14, 2015: Compatibility issue Fixed. _Alert helper is not longer needed.
Nikolay.Gekht
FXCodeBase: Site Admin
 
Posts: 1235
Joined: Wed Dec 16, 2009 6:39 pm
Location: Cary, NC

Re: [beta] Schaff Trend Cycle Oscillator

Postby jackfx09 » Mon Mar 12, 2012 6:17 am

Could we please have a strategy for the Schaff Trend Cycle Oscillator.

Very simple rules, similar to a Stochastic Strategy:

Buy: cross UP through the oversold parameter of user specified threshold (30)

Sell: cross DOWN through the overbought parameter of user specified threshold (70)

Please allow user specified parameter for OVERBOUGHT/OVERSOLD and PERIODS for cycle, short and long periods.

Thanks!

sjc
jackfx09
 
Posts: 53
Joined: Wed Aug 17, 2011 1:03 pm


Re: [beta] Schaff Trend Cycle Oscillator

Postby Coondawg71 » Thu Oct 11, 2012 9:06 am

Could we please request a Schaff Trend Oscillator DIVERGENCE indicator based on the Schaff Trend. Divergence based on PRICE vs. Schaff Trend crossing signal line. This attachment uses EMA as signal line.

Perhaps this MT4 indicator will assist.

Code: Select all
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "perky_z@yahoo.com & Darkstonexa@yahoo.com.au"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LightSeaGreen
#property indicator_color2 Red
 
//---- input parameters
extern int SigPeriod = 23;
extern int MAShort = 23;
extern int MALong = 50;
extern int Cycle = 10;
extern int BarsCount = 500;
 
//----
int shift=0;
double MCD=0, LLV=0, HHV=0, i=0, s=0 ,MA_Short=0, MA_Long=0, ST=0;
double smconst=0;
bool check_begin=false;
bool check_begin_MA=false;
int sum=0, n=0, bars_=0;
double MA=0.0, prev=0.0;
double MCD_Arr[500];
//---- buffers
double TrendBuffer[];
double SignalBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
 
//---- 3 additional buffers are used for counting.
   IndicatorBuffers(2);
//---- indicator buffers
   SetIndexBuffer(0, TrendBuffer);
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(1, SignalBuffer);
   SetIndexStyle(1, DRAW_LINE);
   //---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Schaff Trend(" + Cycle + ")");
   SetIndexDrawBegin(0, BarsCount);
   return(0);
  }
//+------------------------------------------------------------------+
//|  Schaff Trendy                                                   |
//+------------------------------------------------------------------+
int start()
  {
   check_begin = false;
   check_begin_MA = false;
   n = 1;
   s = 1;
   double a = 1 + Cycle / 2;
   smconst = 1 / a;
   if(BarsCount > 0)
     {
       if(BarsCount > Bars)
         {
           bars_ = Bars;
         }
       else
         {
           bars_ = BarsCount;
         }
     }
   for(shift = bars_ ; shift >= 0; shift--)
     {
       MA_Short = iMA(NULL, 0, MAShort, 0, MODE_EMA, PRICE_TYPICAL, shift);
       MA_Long = iMA(NULL, 0, MALong, 0, MODE_EMA, PRICE_TYPICAL, shift);
       MCD_Arr[n] = MA_Short - MA_Long;
       MCD = MA_Short - MA_Long;
       //----
       if(n >= Cycle )
         {
           n = 1;
           check_begin = true;
         }
       else
           n = n + 1;
 
       if(check_begin)
         {
           for(int i = 1; i <= Cycle; i++)
             {
               if(i == 1)
                   LLV = MCD_Arr[i];
               else
                   if(LLV > MCD_Arr[i])
                       LLV = MCD_Arr[i];
                   //----
                   if(i == 1 )
                       HHV = MCD_Arr[i];
                   else
                       if(HHV < MCD_Arr[i])
                           HHV = MCD_Arr[i];
             }
           ST = ((MCD - LLV) / (HHV - LLV))*100 + 0.01;
           s = s + 1;
           if(s >= (Cycle) / 2)
             {
               s = 1;
               check_begin_MA = true;
             }
         }
       else ST = 0;
           if(check_begin_MA)
             {
               prev = TrendBuffer[shift+1];
               MA = smconst*(ST - prev) + prev;
               //Comment ("\nMa= ",MA,"\nPrev= ",prev,"\nST=  ",ST,"\nLLV=  ",LLV,"\nHHV=  ",HHV,"\nMCD= ",MCD,"\nTrendBuffer=  ",TrendBuffer[shift-1],"\n smsconst  ",smconst);
               TrendBuffer[shift]=MA;
               
             }
             
     }
     for(shift = bars_ ; shift >= 0; shift--)
     {
     SignalBuffer[shift]=iMAOnArray(TrendBuffer,0,SigPeriod,0,MODE_EMA,shift);
     }
   return(0);
  }
//+------------------------------------------------------------------+




Thanks,

sjc
User avatar
Coondawg71
FXCodeBase: Graduate
 
Posts: 324
Joined: Sat Jan 15, 2011 11:45 am

Re: [beta] Schaff Trend Cycle Oscillator

Postby Apprentice » Thu Oct 11, 2012 2:03 pm

Your request is added to the development list.
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 36341
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia

Re: Schaff Trend Cycle Oscillator

Postby Coondawg71 » Fri Oct 12, 2012 8:08 am

Can I please request a MTF MCP heatmap of this indicator. It would prove very useful.

Thanks,

sjc
User avatar
Coondawg71
FXCodeBase: Graduate
 
Posts: 324
Joined: Sat Jan 15, 2011 11:45 am

Re: Schaff Trend Cycle Oscillator

Postby Apprentice » Fri Oct 12, 2012 11:38 am

MTF MCP Day Change Heat Map.png


Calculation Modes
1. "Slope"
Shows the slope of underlying indicator. Growth or decline.
2. "OB/OS"
Slope with reference to the overbought / oversold conditions.
3. "Central Line"
Slope with reference to the Central Line.
MTF MCP Schaff Trend Cycle Oscillator Heat Map.lua
(12.57 KiB) Downloaded 1207 times



Please inslatall Schaff Trend Cycle Oscillator (SCHTC) indicator, in order to use this indicator.
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 36341
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia


Re: Schaff Trend Cycle Oscillator

Postby guangho » Mon Oct 29, 2012 4:55 am

I think this index is very useful, you can now increase on the basis of a same calculation of line? Parameters can be set, it is best to translation.

Thank you very much.
guangho
FXCodeBase: Initiate
 
Posts: 106
Joined: Sat Sep 29, 2012 12:16 pm

Re: Schaff Trend Cycle Oscillator

Postby Apprentice » Mon Oct 29, 2012 2:46 pm

Can you be more clear, unfortunately I do not understand your remark.
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 36341
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia

Next

Return to Custom Indicators

Who is online

Users browsing this forum: Google [Bot] and 63 guests