Die Strategie integriert mehrere Indikatoren wie MACD, Mean Line und Whale Line, um die Richtung der Trends zu identifizieren und die Trends zu verfolgen.
Hauptgeschäftslogik:
Berechnen Sie die MACD-Werte für Schnell-, Lang- und Kolonnellinien
Beurteilen Sie die Richtung der MACD-Pillarlinie und bestimmen Sie die Richtung der Tendenz
Berechnen Sie mehrere gleitende Durchschnitte, um zu bestimmen, wo der Preis auf der Mittellinie liegt
Die Whale Line-Indikator beurteilt die Trendstärke.
Wenn die oben genannten Faktoren in die gleiche Richtung weisen, wird ein Über- oder Untergang durchgeführt
Stop-Out bei einer Trendwende
Die Strategie strebt an, in einem starken Trend zu handeln und bei einer frühen Umkehrung zu stoppen, um zu vermeiden, dass die Verluste sich ausdehnen, indem sie eine Kombination verschiedener Indikatoren beurteilt.
Die MACD beurteilt kurzfristige Trends und Stärken
Durchschnittliche Position für mittlere und langfristige Trends
Die Whale Line zeigt die Gesamttrendstärke.
Mehrindikator-Kombinationen verbessern die Genauigkeit der Beurteilung
Optimierung der Testparameter durch Wiederholung
Wenn mehrere Indikatoren ein Konfliktsignal auslösen, ist dies schwierig.
Indikatoren wie die Durchschnittsgrenze sind stärker zurückgeblieben
Die Strategie versucht, eine umfassende Beurteilung der Marktrichtung durch verschiedene Indikatoren zu erhalten, um auf der Grundlage von Optimierungsparametern starke Trends zu erfassen.
/*backtest
start: 2023-09-06 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("5MSM VISHNU", overlay=true,process_orders_on_close=true)
//indicator(title="mahakaal", shorttitle="mahakaal", timeframe="", timeframe_gaps=true)
green = #26A69A
red = #FF0000
Yellow = #fcf932
// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src3 = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])
// Plot colors
col_macd = input(#2962FF, "MACD Line ", group="Color Settings", inline="MACD")
col_signal = input(#FF6D00, "Signal Line ", group="Color Settings", inline="Signal")
col_grow_above = input(#26A69A, "Above Grow", group="Histogram", inline="Above")
col_fall_above = input(#B2DFDB, "Fall", group="Histogram", inline="Above")
col_grow_below = input(#FFCDD2, "Below Grow", group="Histogram", inline="Below")
col_fall_below = input(#FF5252, "Fall", group="Histogram", inline="Below")
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src3, fast_length) : ta.ema(src3, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src3, slow_length) : ta.ema(src3, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
//hline(0, "Zero Line", color=color.new(#787B86, 50))
//@version=5
//indicator(title="Moving Average Exponential", shorttitle="EMA", overlay=true, timeframe="", timeframe_gaps=true)
len = input.int(200, minval=1, title="Length")
src2 = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
Bahubali = ta.ema(src2, len)
//plot(out, title="EMA", color=color.blue, offset=offset)
//@version=5
//indicator(title="Williams Alligator", shorttitle="Alligator", overlay=true, timeframe="", timeframe_gaps=true)
smma(src, length) =>
smma = 0.0
smma := na(smma[1]) ? ta.sma(src, length) : (smma[1] * (length - 1) + src) / length
smma
jawLength = input.int(13, minval=1, title="Jaw Length")
teethLength = input.int(8, minval=1, title="Teeth Length")
lipsLength = input.int(5, minval=1, title="Lips Length")
jawOffset = input(8, title="Jaw Offset")
teethOffset = input(5, title="Teeth Offset")
lipsOffset = input(3, title="Lips Offset")
jaw = smma(hl2, jawLength)
teeth = smma(hl2, teethLength)
lips = smma(hl2, lipsLength)
//plot(jaw, "Jaw", offset = jawOffset, color=#2962FF)
if (hist > 9)
hist := 10
if (hist < -9)
hist := -10
// Compose alert message
// Entry
alert_msg_long_entry =
"BUY 🟢 {{ticker}} CE " + str.tostring(math.floor((close - 100)/100)*100) + "\n" +
"####################\n\n" +
"{{strategy.order.id}}💹 Target 1: " + str.tostring(math.round(close + 35)) + "\n" +
"{{strategy.order.id}}💹 Target 2: " + str.tostring(math.round(close + 45)) + "\n" +
"\n" +
"{{strategy.order.id}} Stop Loss: " + str.tostring(math.round(close - 30)) + "\n\n" +
"\n" +
"ENTRY PRICE: " + str.tostring(math.round(close)) + "\n\n" +
"Current time: {{timenow}} \n" +
"Education purpose only"
// Entry
alert_msg_short_entry =
"BUY 🟢 {{ticker}} PE " + str.tostring(math.floor((close + 100)/100)*100) + "\n" +
"####################\n\n" +
"{{strategy.order.id}}💹 Target 1: " + str.tostring(math.round(close - 35)) + "\n" +
"{{strategy.order.id}}💹 Target 2: " + str.tostring(math.round(close - 45)) + "\n" +
"\n" +
"ENTRY PRICE: " + str.tostring(math.round(close)) + "\n\n" +
"{{strategy.order.id}} Stop Loss: " + str.tostring(math.round(close + 30)) + "\n\n" +
"Current time: {{timenow}} \n" +
"Education purpose only"
// EXIT
alert_msg_long_exit =
"🛑 EXIT {{ticker}} CE LONG POSITION ! \n" +
"EXIT PRICE: " + str.tostring(math.round(close)) + "\n" +
"\n" +
"Dont wait for exit msg in this 🆓 CHANNEL !! \n" +
"For 💯% accurate & profitable 💰💰💰 EXIT: \n" +
"BUY our 'triDEV' tradingview indicator strategy\n" +
"https://wa.me/917020641496"
// EXIT
alert_msg_short_exit =
"🛑 EXIT {{ticker}} PE Short POSITION ! \n" +
"EXIT PRICE: " + str.tostring(math.round(close)) + "\n" +
"\n" +
"Dont wait for exit msg in this 🆓 CHANNEL !! \n" +
"For 💯% accurate & profitable 💰💰💰 EXIT: \n" +
"BUY our 'triDEV' tradingview indicator strategy\n" +
"https://wa.me/917020641496"
tyme = time("1440", "0920-1515")
bullishtrend = ((hist > 0) and (close > lips ) and (low > lips ) and (close > Bahubali) and (lips > jaw) and tyme)
bearishtrend = ((hist < 0) and (close < lips ) and (high < lips ) and (close < Bahubali) and (lips < jaw) and tyme)
//plot(hist, title="Histogram", style=plot.style_columns, color=(hist > 0 ? ( bullishtrend ? green : Yellow ) : ( bearishtrend ? red : Yellow ) ))
strategy.entry("long", strategy.long, when = bullishtrend , alert_message = alert_msg_long_entry )
strategy.entry("short",strategy.short,when = bearishtrend , alert_message = alert_msg_short_entry)
longexit = (close < lips) or time("1440", "1515-1530") or (hist <= 0) //or (close < Bahubali)
shortexit = (close > lips) or time("1440", "1515-1530")or (hist >= 0) //or (close > Bahubali)
//strategy.exit("long tsl", "long", trail_points = close * 0.01 / syminfo.mintick, trail_offset = close * 0.01 / syminfo.mintick)
//strategy.exit("shoty tsl", "short", trail_points = close * 0.01 / syminfo.mintick, trail_offset = close * 0.01 / syminfo.mintick)
strategy.exit("long TSL", "long", limit = lips ,when = (longexit), alert_message = alert_msg_long_exit)
strategy.exit("short TSL","short",limit = lips ,when = (shortexit), alert_message = alert_msg_short_exit)
//PLOT FIXED SLTP LINE
// LONG POSITION
long_take_level_1 = strategy.position_avg_price + 35
long_take_level_2 = strategy.position_avg_price + 40
long_stop_level = strategy.position_avg_price - 30
plot(strategy.position_size > 0 ? long_take_level_1 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="1st Long Take Profit")
plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="2nd Long Take Profit")
plot(strategy.position_size > 0 ? long_stop_level : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Stop Loss")
//PLOT FIXED SLTP LINE
// SHORT POSITION
SHORT_take_level_1 = strategy.position_avg_price - 35
SHORT_take_level_2 = strategy.position_avg_price - 40
SHORT_stop_level = strategy.position_avg_price + 30
plot(strategy.position_size < 0 ? SHORT_take_level_1 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="1st SHORT Take Profit")
plot(strategy.position_size < 0 ? SHORT_take_level_2 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="2nd SHORT Take Profit")
plot(strategy.position_size < 0 ? SHORT_stop_level : na, style=plot.style_linebr, color=color.red, linewidth=1, title="SHORT Stop Loss")