
Strategi ini mengintegrasikan berbagai indikator teknis dan konsep perdagangan yang dapat digunakan untuk menghasilkan sinyal beli dan jual secara otomatis. Fitur utamanya adalah pengoptimalan stop loss yang digabungkan dengan indikator analisis tren, sekaligus menghasilkan sinyal perdagangan dengan memanfaatkan persilangan rata-rata.
Indikator UTSTC yang disesuaikan: Indikator stop loss yang dapat disesuaikan berdasarkan rata-rata gelombang nyata, dapat menyesuaikan jangkauan stop loss sesuai dengan volatilitas pasar.
Indikator STC: perbedaan antara rata-rata bergerak cepat sederhana dan rata-rata bergerak sederhana lambat, digunakan untuk menentukan arah tren pasar dan potensi titik balik.
Simple Moving Average (SMA) dan Index Moving Average (EMA): Menghitung dan menggambar moving average dari periode yang berbeda, memberikan informasi tambahan untuk menilai tren.
Sinyal beli: terjadi ketika harga tutup melewati indikator UTSTC dan indikator STC berada dalam kondisi bullish.
Sinyal jual: terjadi ketika harga penutupan melewati indikator UTSTC dan indikator STC berada dalam kondisi bearish.
Mengintegrasikan berbagai indikator untuk menilai tren pasar, dapat meningkatkan akurasi sinyal.
Indikator UTSTC secara otomatis menyesuaikan jangkauan stop loss berdasarkan amplitudo aktual, sehingga dapat secara efektif mengontrol setiap kerugian.
Dengan menggunakan crossover rata-rata, menghasilkan sinyal perdagangan yang sederhana dan efektif.
Kombinasi pengaturan parameter yang berbeda dapat disesuaikan dengan lebih banyak lingkungan pasar.
Indikator penilaian tren seperti STC tertinggal dan mungkin melewatkan kesempatan untuk berbalik dalam waktu singkat.
Sinyal persilangan rata-rata dapat menghasilkan sinyal palsu.
Pengaturan parameter harus dievaluasi dengan hati-hati, karena kombinasi yang tidak tepat dapat mengurangi keuntungan atau meningkatkan kerugian.
Terlalu banyak stop loss dapat meningkatkan risiko kerugian, terlalu sedikit mungkin terlalu cepat stop loss.
Uji parameter indikator STC dengan periode panjang yang berbeda untuk mencari pengaturan yang memiliki dampak minimal pada strategi.
Cobalah untuk memfilter sinyal palsu dengan indikator lain, seperti KDJ, MACD, dll.
Sesuaikan parameter stop loss dengan hasil pengujian ulang untuk menemukan kombinasi parameter optimal.
Evaluasi berbagai pengaturan waktu memegang posisi untuk mencari periode memegang posisi yang optimal.
Strategi ini mengintegrasikan penilaian tren, manajemen stop loss otomatis, dan penilaian sinyal perdagangan dalam beberapa modul, untuk membentuk program perdagangan kuantitatif yang lebih komprehensif. Dengan penyesuaian parameter dan perluasan fungsi, diharapkan untuk mendapatkan keuntungan yang stabil. Namun, tidak ada strategi yang dapat benar-benar menghindari kerugian, yang perlu dilakukan dengan hati-hati untuk memverifikasi efek dan melakukan kontrol risiko.
/*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)