Multi Time Frame MACD Divergences

Category: Screeners By: Meta Signals Pro Created: October 8, 2018, 7:22 AM
October 8, 2018, 7:22 AM
Screeners
7 Comments

Here is a screener that allows you to identify positive and negative divergences of the MACD on a weekly or daily basis ;

The “signal” gives you the Time Frame and the nature of the divergence:

  • 2 is a weekly positive divergence
  • -2 is a weekly negative divergence
  • 1 is a daily positive divergence
  • -1 is a daily negative divergence

You can also tweek the code in order to combine both divergences at will;

Enjoy

// parameters


timeframe (weekly)

MinPrix = close >2.5
MinVolume = summation [10](average[23](volume)> 100000) =10

A=12
B=26
//C=9 //


//MACD

EMAshort1Week = exponentialaverage[A](close)
EMAshort2Week = exponentialaverage[A](EMAshort1Week)
DifferenceShortWeek = EMAshort1Week - EMAshort2Week
ZeroLagShortWeek = EMAshort1Week + DifferenceShortWeek

EMAlong1Week = exponentialaverage[B](close)
EMAlong2Week = exponentialaverage[B](EMAlong1Week)
DifferenceLongWeek = EMAlong1Week - EMAlong2Week
ZeroLagLongWeek = EMAlong1Week + DifferenceLongWeek

ZeroLagMACDWeek = ZeroLagShortWeek - ZeroLagLongWeek

//signal1Week=ExponentialAverage[C](ZEROLAGMACDWeek)
//signal2Week=ExponentialAverage[C](signal1Week)
//DIFFERENCE2Week=signal1Week-signal2Week
//
//SignalMACDWeek=signal1Week+DIFFERENCE2Week


//MyRsiweek = rsi[14](close)>55

/// Divergence MACD Week

V=ZeroLagMACDWeek

once RefCloseDownOldWeek=0
once RefMACDDownOldWeek=0
once RefCloseUpOldWeek=0
once RefMACDUpOldWeek=0
//once BarBullOld=0
//once BarBearOld=0

//Conditions to identify max and min
c1=v[4]>v[2] and v[3]>v[2] and v[1]>v[2] and v>v[2] // down
c2=v[4]<v[2] and v[3]<v[2] and v[1]<v[2] and v<v[2] // top

//finding the double bottom

if c1 then
RefCloseDownNewWeek=close[2]
RefMACDDownNewWeek=v[2]
//BarBullNew=barindex[2]
endif
if RefCloseDownNewWeek<RefCloseDownOldWeek and RefMACDDownNewWeek>RefMACDDownOldWeek then
//double slash next line if you don't needed the mark on a different window
bulldivWeek=1
signal = 2

else
bulldivWeek=0
endif


//Finding the double top
if c2 then
RefCloseUpNewWeek=close[2]
RefMACDUpNewWeek=v[2]
//BarBearNew=barindex[2]
endif
if RefCloseUpNewWeek>RefCloseUpOldWeek and RefMACDUPNewWeek<RefMACDUpOldWeek then
//double slash next line if you don't needed the mark on a different window
beardivWeek=1
signal = -2

else
beardivWeek=0
endif
//grafica
RefCloseDownOldWeek=RefCloseDownNewWeek
RefMACDDownOldWeek=RefMACDDownNewWeek
RefCloseUpOldWeek=RefCloseUpNewWeek
RefMACDUpOldWeek=RefMACDUpNewWeek
//BarBullOldWeek=BarBullNewWeek
//BarBearOldWeek=BarBearNewWeek
//


timeframe (daily)

D=12
E=26
//F=9



//REM MACD

EMAshort1Day = exponentialaverage[D](close)
EMAshort2Day = exponentialaverage[D](EMAshort1Day)
DifferenceShortDay = EMAshort1Day - EMAshort2Day
ZeroLagShortDay = EMAshort1Day + DifferenceShortDay

EMAlong1Day = exponentialaverage[E](close)
EMAlong2Day = exponentialaverage[E](EMAlong1Day)
DifferenceLongDay = EMAlong1Day - EMAlong2Day
ZeroLagLongDay = EMAlong1Day + DifferenceLongDay

ZeroLagMACDDay = ZeroLagShortDay - ZeroLagLongDay

//signal1Day=ExponentialAverage[F](ZEROLAGMACDDay)
//signal2Day=ExponentialAverage[F](signal1Day)
//DIFFERENCE2Day=signal1Day-signal2Day
//
//SignalMACDDay=signal1Day+DIFFERENCE2Day


/// Divergence MACD Day

W=ZeroLagMACDDay

once RefCloseDownOldDay=0
once RefMACDDownOldDay=0
once RefCloseUpOldDay=0
once RefMACDUpOldDay=0
//once BarBullOld=0
//once BarBearOld=0

//Conditions to identify max and min
d1=w[4]>w[2] and w[3]>w[2] and w[1]>w[2] and w>w[2] // down
d2=w[4]<w[2] and w[3]<w[2] and w[1]<w[2] and w<w[2] // top

//finding the double bottom

if d1 then
RefCloseDownNewDay=close[2]
RefMACDDownNewDay=w[2]
//BarBullNewDay=barindex[2]
endif
if RefCloseDownNewDay<RefCloseDownOldDay and RefMACDDownNewDay>RefMACDDownOldDay then
//double slash next line if you don't needed the mark on a different window
bulldivDay=1
signal = 1

else
bulldivDay=0
endif


//Finding the double top
if d2 then
RefCloseUpNewDay=close[2]
RefMACDUpNewDay=w[2]
//BarBearNew=barindex[2]
endif
if RefCloseUpNewDay>RefCloseUpOldDay and RefMACDUPNewDay<RefMACDUpOldDay then
//double slash next line if you don't needed the mark on a different window
beardivDay=1
signal = -1

else
beardivDay=0
endif
//grafica
RefCloseDownOldDay=RefCloseDownNewDay
RefMACDDownOldDay=RefMACDDownNewDay
RefCloseUpOldDay=RefCloseUpNewDay
RefMACDUpOldDay=RefMACDUpNewDay
//BarBullOld=BarBullNew
//BarBearOld=BarBearNew

////////////////////////////////////////////////
SCREENER [((beardivWeek or beardivDay or bulldivWeek or bulldivDay)) and MinPrix and MinVolume ](signal)

Download
Filename: MTF-MACD-Divergences.itf
Downloads: 908
Meta Signals Pro Veteran
MetaSignalsPro is operated by a small, expert team with a strong background in manual / systematic trading and risk management. Our work is driven by 15 years of practical experience in live market conditions. Please visit: https://market.prorealcode.com/store/meta-signals-pro/ To get the BEST strategies of ProrealCode Please visit: https://www.prorealcode.com/topic/the-best-trading-strategies-of-prc-for-prorealtime-backtests-update-rankings/
Author’s Profile

Comments

Logo Logo
Loading...