Esta estratégia integra MACD, médias móveis, jacaré e muito mais para identificar a direção da tendência para seguir a tendência.
A lógica é:
Cálculo das linhas curtas, longas e do histograma do MACD
Usar a direcção do histograma para determinar a tendência a curto prazo
Gravar médias móveis múltiplas para avaliar a posição de preço
As linhas de crocodilo julgam a força geral da tendência
Combinando os indicadores acima, vá longo/curto quando alinhado
Stop loss quando os indicadores virarem para uma reversão antecipada
Ao sintetizar múltiplos indicadores, visa negociar tendências fortes e cortar precocemente as perdas quando ocorrem inversões.
O MACD avalia a tendência e a força a curto prazo
As posições MA determinam as tendências a médio e longo prazo
O Alligator mostra força geral da tendência
Indicadores múltiplos melhoram a precisão
É necessária uma otimização extensiva dos parâmetros
Sinais conflitantes difíceis de interpretar
Problemas de atraso com os MCs, etc.
Esta estratégia tenta determinar de forma abrangente a direção da tendência usando múltiplos 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")