#
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Home
Forex Forum
+ Add Script
Metastock
Expert Advisors
Explorations
Indicators
Trading Systems
Metatrader
MQL Experts
MQL Indicators
MQ4 Experts
MQ4 Indicators
MQ4 Scripts
Tradestation
Functions
Indicators
PaintBars
ShowMe
Trading Systems
Amibroker
Commentaries
Explorations
Functions
Indicators
Trading Systems
Contact us
Newsletter
Group: Metatrader MQ4 Indicators
Title: Schaff Trend
Description:
Schaff Trend
//+------------------------------------------------------------------+ //| Schaff Trendy.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "perky_z@yahoo.com & Darkstonexa@yahoo.com.au" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 LightSeaGreen #property indicator_minimum -10.000000 #property indicator_maximum 110.000000 //---- input parameters extern int MAShort=23; extern int MALong=50; extern int Cycle=10; extern int BarsCount=300; // 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; //int MA=0, prev=0; double MA=0.0, prev=0.0; double MCD_Arr[300]; //---- buffers double TrendBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- 3 additional buffers are used for counting. IndicatorBuffers(1); //---- indicator buffers SetIndexBuffer(0,TrendBuffer); SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Schaff Trend("+Cycle+")"); SetIndexDrawBegin(0,TrendBuffer); return(0); } //+------------------------------------------------------------------+ //| Average Directional Movement Index | //+------------------------------------------------------------------+ 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; } } return(0); }
Author/Source:
perky_z@yahoo.com & Darkstonexa@yahoo.com.au
Forex Directory
|
Free Forex Strategies
|
Forex Trading Systems
|
Privacy
|
Disclaimer
|
Contact