Indicators: Moving Average Mirror
canal göstergesi ile desteklenirse iyi..
canal göstergesi ile desteklenirse iyi..
canal is supported by
a good indicator .Fantastic, this is a superb indicator!
It does wonders in trending situations, but can cause some false crossovers in ranging zones (obviously, of course)
However, I think this could be better, we could eliminate the false signals if we just zerroed out the indicator if it's in a ranging market, perhaps more than 5 MA crossovers within the last 2 days, or some other way of knowing. Basically we just need this to go "blank" if it's not in a trending situation....
Any ideas?
Nice idea!
I´ve modified the code a bit so that it doesn´t need to calculate 4 MA and save some CPU cycles. I´ve also added the choice to select other modes than SMA.
//+------------------------------------------------------------------+ //| MA_Mirror.mq4 | //| Copyright © 2010, Andy Tjatur. | //| andy.tjatur@gmail.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2010, Andy Tjatur." #property link "andy.tjatur@gmail.com" //---- indicator settings #property indicator_separate_window #property indicator_level1 1 #property indicator_levelcolor White #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Blue #property indicator_width1 2 #property indicator_width2 2 extern int MovingPeriod = 20; extern int MovingShift = 0; extern int MovingMode = 0; //0=SMA, 1=EMA, 2=SMMA, 3=LWMA double MA_CO[]; double MA_OC[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- drawing settings SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); IndicatorDigits(Digits+1); //---- indicator buffers mapping SetIndexBuffer(0,MA_CO); SetIndexBuffer(1,MA_OC); IndicatorShortName("MA_Mirror by Andy Tjatur"); SetIndexLabel(0,"MA_CO"); SetIndexLabel(1,"MA_OC"); return(0); } //+------------------------------------------------------------------+ //| Moving Averages Mirror | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(int i=0; i<limit; i++) { double MACLOSE=iMA(NULL,0,MovingPeriod,MovingShift,MovingMode,PRICE_CLOSE,i); double MAOPEN=iMA(NULL,0,MovingPeriod,MovingShift,MovingMode,PRICE_OPEN,i); MA_CO[i]=MACLOSE-MAOPEN; MA_OC[i]=MAOPEN-MACLOSE; } return(0); } //+------------------------------------------------------------------+

Moving Average Mirror:
Author: andy tjatur