이 전략은 MACD, 이동 평균, 악어 등을 통합하여 트렌드를 따르는 트렌드 방향을 식별합니다.
논리는 다음과 같습니다.
MACD 짧은, 긴 및 히스토그램 라인을 계산
단기 트렌드를 결정하기 위해 히스토그램 방향을 사용
가격 포지션을 측정하기 위해 여러 이동 평균을 그래프
알리거터 라인은 전체 트렌드 강도를 판단합니다.
위의 지표를 조합하여, 정렬되면 길고 짧게 이동
초기 반전을 위해 지표가 바뀔 때 손실을 중지하십시오.
여러 가지 지표를 합쳐서 강력한 트렌드를 거래하고 반전이 발생했을 때 손실을 조기에 줄이는 것을 목표로합니다.
MACD는 단기 추세와 강도를 판단합니다.
MA 포지션은 중장기 동향을 결정합니다.
알리고터는 전반적인 트렌드 강도를 보여줍니다.
여러 지표가 정확성을 향상시킵니다.
광범위한 매개 변수 최적화가 필요합니다.
해석하기 어려운 상반된 신호
MAs 등과 함께 지연 문제
이 전략은 여러 지표를 사용하여 트렌드 방향을 포괄적으로 결정하려고 시도합니다. 그러나 낙후 문제와 신호 충돌은 최적화에도 불구하고 신중을 기해야 합니다.
/*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")