La estrategia integra varios indicadores, como el MACD, la línea media y la línea de pesca, para identificar la dirección de la tendencia en el mercado y realizar operaciones de seguimiento de tendencias.
Las principales lógicas de transacción:
Calculación de las líneas rápidas, lentas y columnares del MACD
Determinación de la dirección de la línea de la columna MACD para determinar la dirección de la tendencia
Calcula una media móvil múltiple para determinar la ubicación del precio en la línea media
El indicador de la línea de pesca determina la intensidad de la tendencia
Cuando los múltiples factores mencionados apuntan en la misma dirección, se hace más o menos
El retiro de pérdidas cuando se invierte la tendencia
A través de un análisis integrado de varios indicadores, la estrategia busca operar en una tendencia fuerte y detener pérdidas en una reversión temprana para evitar que las pérdidas se amplien.
El MACD determina tendencias y intensidad a corto plazo
La posición de la línea media determina la tendencia a medio y largo plazo
La línea de los tiburones muestra la intensidad de la tendencia general
Combinación de varios indicadores para mejorar la precisión de los juicios
Optimización de los parámetros de prueba repetida
Si muchos indicadores emiten señales de conflicto, es difícil de manejar
Indicadores como el promedio están más rezagados
La estrategia trata de dar un juicio completo sobre la dirección de la situación a través de varios indicadores, para obtener tendencias fuertes en base a parámetros de optimización. Sin embargo, hay que tener en cuenta los problemas de atraso y los conflictos de indicadores.
/*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")