TradingView
LonesomeTheBlue
20 feb 2019 10:28

MACD Enhanced Strategy MTF with Stop Loss [LTB] 

Euro Fx/U.S. DollarFXCM

Descrizione

I developed this script to analyse MACD, MACD Signal, MACD Histogram movements by using current and higher time frame. Script calculates higher time frame automatically, no manuel entry. I also added trailing stop loss line. You can change the parameters as you wish ;)

btw. you should know that MACD is more successful when there is trend.

If you like it please comment and check out my other scripts.

Note di rilascio

A few corrections in the code.

Note di rilascio

a few improvements and made optional trailing stop loss line optional.

Note di rilascio

upgraded.

many users asking the source code, here it's, you can use it as you wish

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © LonesomeTheBlue //@version=4 strategy("MACD Enhanced Strategy MTF with Stop Loss [LTB]", overlay=true) fastLength = input(title="MACD Fast Length", defval=12, minval=1) slowLength = input(title="MACD Slow Length", defval=26, minval=1) signalLength = input(title="MACD Signal Length", defval=9, minval=1) crossscore = input(title="Cross (buy/sell) Score", defval=10.) indiside = input(title="indicator Direction Score", defval=8) histside = input(title="Histogram Direction Score", defval=2) shotsl = input(title="Show Stop Loss Line", defval=false) Mult = input(title="Stop Loss Factor", defval=1.2, type=input.float, minval=0.1, maxval=100) Period = input(title="Stop Loss Period", defval=10, minval=1, maxval=100) lookaheadi = input(title = "Lookahead", defval = true) HTF = timeframe.period == '1' ? '5' : timeframe.period == '3' ? '15' : timeframe.period == '5' ? '15' : timeframe.period == '15' ? '60' : timeframe.period == '30' ? '60' : timeframe.period == '45' ? '60' : timeframe.period == '60' ? '240' : timeframe.period == '120' ? '240' : timeframe.period == '180' ? '240' : timeframe.period == '240' ? 'D' : timeframe.period == 'D' ? 'W' : 'W' calc = timeframe.period == '1' ? 5 : timeframe.period == '3' ? 5 : timeframe.period == '5' ? 3 : timeframe.period == '15' ? 4 : timeframe.period == '30' ? 4 : timeframe.period == '45' ? 4 : timeframe.period == '60' ? 4 : timeframe.period == '120' ? 3 : timeframe.period == '180' ? 3 : timeframe.period == '240' ? 6 : timeframe.period == 'D' ? 5 : 1 count() => indi = ema(close, fastLength) - ema(close, slowLength) signal = ema(indi, signalLength) Anlyse = 0.0 // direction of indi and histogram hist = indi - signal Anlyse := indi > indi[1] ? hist > hist[1] ? indiside + histside : hist == hist[1] ? indiside : indiside - histside : 0 Anlyse := Anlyse + (indi < indi[1] ? hist < hist[1] ? -(indiside + histside) : hist == hist[1] ? -indiside : -(indiside - histside) : 0) Anlyse := Anlyse + (indi == indi[1] ? hist > hist[1] ? histside : hist < hist[1] ? -histside : 0 : 0) // cross now earlier ? countcross = indi >= signal and indi[1] < signal[1] ? crossscore : indi <= signal and indi[1] > signal[1] ? -crossscore : 0. countcross := countcross + nz(countcross[1]) * 0.6 Anlyse := Anlyse + countcross nz(Anlyse) Anlys = count() AnlysHfrm = lookaheadi ? security(syminfo.tickerid, HTF, count(), lookahead = barmerge.lookahead_on) : security(syminfo.tickerid, HTF, count(), lookahead = barmerge.lookahead_off) Result = (AnlysHfrm * calc + Anlys) / (calc + 1) longCondition = change(Result) != 0 and Result > 0 if longCondition strategy.entry("MACD Long", strategy.long) shortCondition = change(Result) != 0 and Result < 0 if shortCondition strategy.entry("MACD Short", strategy.short) countstop(pos) => Upt = hl2 - Mult * atr(Period) Dnt = hl2 + Mult * atr(Period) TUp = 0. TDown = 0. TUp := close[1] > TUp[1] ? max(Upt, TUp[1]) : Upt TDown := close[1] < TDown[1] ? min(Dnt, TDown[1]) : Dnt tslmtf = pos == 1 ? TUp : TDown tslmtf pos = longCondition ? 1 : -1 stline = 0. countstop__1 = countstop(pos) security_1 = security(syminfo.tickerid, HTF, countstop__1) stline := change(time(HTF)) != 0 or longCondition or shortCondition ? security_1 : nz(stline[1]) plot(stline, color=shotsl ? color.gray : na, style=plot.style_line, linewidth=2, title="Stop Loss")


P.S. I don't recommend this strategy
Commenti
GarethSA
SERIOUS REPAINT
LonesomeTheBlue
@GarethSA, yes possible. better not use this one
wisej90876
@GarethSA, did you test it by bot?
LonesomeTheBlue
LonesomeTheBlue
This indicator may have repaint issue, you better not use it.
syuraj
@LonesomeTheBlue, May be Unpublish it, wtf?
pperkings923
still have the repaint issue?
sora2012
@pperkings923, Indicators are modified at will...Not available ㅠㅠ
Dugald
@sora2012, I noticed when you untick the "Lookahead" box in the settings of the strategy, it seems to give a more realistic equity curve. Pardon me, what do you mean by "Indicators are modified at will"?
smartjeeva8526
sir does it's repainting?
Altro