Strategi ini mengintegrasikan beberapa indikator teknis dan konsep perdagangan untuk secara otomatis menghasilkan sinyal beli dan jual. Fitur utama adalah mengoptimalkan stop berdasarkan indikator tren dan memicu perdagangan dari crossover rata-rata bergerak.
Indikator UTSTC khusus: Stop trailing adaptif berdasarkan Average True Range untuk menyesuaikan stop loss range sesuai dengan volatilitas pasar.
Indikator STC: Perbedaan antara rata-rata bergerak sederhana yang cepat dan lambat untuk menentukan arah tren pasar dan titik pembalikan potensial.
Rata-rata Gerak Sederhana (SMA) dan Rata-rata Gerak Eksponensial (EMA): Menggambar rata-rata gerak periode yang berbeda untuk memberikan informasi tren tambahan.
Sinyal beli: Dihasilkan ketika harga penutupan melintasi di atas garis UTSTC dan STC berada dalam keadaan bullish.
Sinyal jual: Dihasilkan ketika harga penutupan melintasi di bawah garis UTSTC dan STC berada dalam keadaan menurun.
Mengintegrasikan beberapa indikator untuk menentukan tren pasar, meningkatkan akurasi sinyal.
UTSTC menyesuaikan stop secara otomatis berdasarkan volatilitas yang sebenarnya, secara efektif mengendalikan kerugian per perdagangan.
Sinyal perdagangan sederhana dan efektif dari persilangan rata-rata bergerak.
Kombinasi parameter yang berbeda mengakomodasi lebih banyak lingkungan pasar.
Indikator tren seperti STC mungkin tertinggal dan melewatkan pembalikan jangka pendek.
Pembebasan rata-rata bergerak dapat menghasilkan sinyal palsu.
Penilaian yang cermat dari parameter yang diperlukan, kombinasi yang tidak tepat dapat mengurangi keuntungan atau meningkatkan kerugian.
Jangkauan stop loss yang terlalu luas dapat meningkatkan kerugian, terlalu ketat dapat berhenti lebih awal.
Uji panjang STC yang berbeda untuk menemukan pengaturan dengan dampak strategi minimal.
Masukkan filter tambahan untuk mengurangi sinyal palsu misalnya KDJ, MACD.
Mengoptimalkan berhenti berdasarkan hasil backtest untuk menemukan campuran parameter terbaik.
Evaluasi periode penyimpanan yang berbeda untuk menentukan yang optimal.
Strategi ini menggabungkan tren, stop otomatis dan modul sinyal menjadi kerangka kerja perdagangan algoritmik yang cukup lengkap. Dengan penyesuaian parameter dan perluasan fitur, keuntungan yang stabil dapat dicapai tetapi tidak ada strategi yang dapat sepenuhnya menghindari kerugian. Validasi dan pengendalian risiko yang tepat masih penting.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("OB+LQ+UTSTC+SMA+EMA-NORA-MIP21-Jashore-Bangladesh-OneMinuteTF", shorttitle="OB+LS+UTSTC-MIP21-Jashore-Bangladesh-OneMinuteTF", overlay=true) // Order Block + Liquidity Swings [NORA] Settings pivot_length = input(14, title="Pivot Lookback") bull_ext_last = input(3, title="Bullish OB Extension") bear_ext_last = input(3, title="Bearish OB Extension") swing_length = input(5, title="Swing Length") area = input("Wick Extremity", title="Swing Area", options=["Wick Extremity", "Full Range"]) min_profit = input(0.5, title="Minimum Profit Target") max_loss = input(0.5, title="Maximum Loss Stop") // Variables var float bull_ob_price = na var float bear_ob_price = na var float swing_high = na var float swing_low = na // Calculate Order Block Prices var float low_lowest = na var float high_highest = na if bar_index >= pivot_length low_lowest := lowest(low, pivot_length) high_highest := highest(high, pivot_length) bull_ob_price := low_lowest bear_ob_price := high_highest // Calculate Swing High/Low Prices var float low_lowest_swing = na var float high_highest_swing = na if area == "Wick Extremity" low_lowest_swing := lowest(low, swing_length) high_highest_swing := highest(high, swing_length) else low_lowest_swing := lowest(high - low, swing_length) high_highest_swing := highest(high - low, swing_length) swing_low := low_lowest_swing swing_high := high_highest_swing // Trading Logic for Order Block + Liquidity Swings buy_liquidity = crossover(close, bull_ob_price) and close > swing_low sell_liquidity = crossunder(close, bear_ob_price) and close < swing_high // Plot Buy/Sell Signals for Order Block + Liquidity Swings plotshape(series=buy_liquidity, style=shape.labelup, location=location.belowbar, color=color.rgb(39, 166, 175), size=size.small, title="Bullish LQ") plotshape(series=sell_liquidity, style=shape.labeldown, location=location.abovebar, color=color.rgb(248, 95, 215), size=size.small, title="Bearish LQ") // UTSTC-SMA-EMA-NORA-New Settings keyvalue = input(3, title="UT Bot Key Value", step=0.5) atrperiod = input(10, title="UT Bot ATR Period") src = close xATR = atr(atrperiod) nLoss = keyvalue * xATR xATRTrailingStop = 0.0 xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss), iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss))) pos = 0 pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1, iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue plot(xATRTrailingStop, color=xcolor, title="UT Bot Trailing Stop") // STC Settings stc_length = input(12, title="STC Length") fastLength = input(26, title="STC Fast Length") slowLength = input(50, title="STC Slow Length") fastMA = ema(close, fastLength) slowMA = ema(close, slowLength) STC = fastMA - slowMA STCColor = STC > STC[1] ? color.green : color.red plot(STC, color=STCColor, title="STC") // Add SMAs sma21 = sma(close, 21) sma44 = sma(close, 44) plot(sma21, color=color.blue, title="SMA 21") plot(sma44, color=color.orange, title="SMA 44") // Add EMA ema5 = ema(close, 5) plot(ema5, color=color.yellow, title="EMA 5") // Combined Strategy buySignal = crossover(src, xATRTrailingStop) and STC < 25 and STCColor == color.green sellSignal = crossunder(src, xATRTrailingStop) and STC > 75 and STCColor == color.red // Plot Buy and Sell signals as triangles plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) strategy.entry("Buy", strategy.long, when=buySignal) strategy.entry("Sell", strategy.short, when=sellSignal)