
Strategi ini adalah sistem perdagangan kuantitatif berdasarkan analisis teknis grafik kandil, yang terutama mengidentifikasi peluang perdagangan potensial dengan menganalisis panjang total bayangan atas dan bawah kandil. Inti dari strategi ini adalah membandingkan panjang total bayangan yang dihitung secara real time dengan rata-rata pergerakan yang disesuaikan dengan offset, dan menghasilkan sinyal panjang ketika panjang bayangan menembus rata-rata pergerakan. Strategi ini memadukan berbagai jenis rata-rata pergerakan, termasuk rata-rata pergerakan sederhana (SMA), rata-rata pergerakan eksponensial (EMA), rata-rata pergerakan tertimbang (WMA), dan rata-rata pergerakan tertimbang volume (VWMA), yang memberi para pedagang ruang pemilihan parameter yang fleksibel.
Logika inti dari strategi ini mencakup langkah-langkah kunci berikut:
Strategi ini menganalisis indikator teknis klasik dari panjang bayangan lilin dan menggabungkannya dengan metode perdagangan kuantitatif modern untuk membangun sistem perdagangan dengan logika yang jelas dan kepraktisan yang kuat. Keuntungan inti dari strategi ini terletak pada fleksibilitas parameter dan pengendalian risiko lengkap, tetapi juga memiliki keterbatasan seperti ketergantungan yang kuat pada lingkungan pasar dan sensitivitas parameter. Dengan memperkenalkan indikator multidimensi dan mengoptimalkan manajemen posisi, strategi ini masih memiliki banyak ruang untuk perbaikan. Secara keseluruhan, ini adalah strategi perdagangan kuantitatif dengan dasar yang kuat dan logika yang masuk akal, yang cocok untuk pengembangan dan pengoptimalan lebih lanjut.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Daytrading ES Wick Length Strategy", overlay=true)
// Input parameters
ma_length = input.int(20, title="Moving Average Length", minval=1)
ma_type = input.string("VWMA", title="Type of Moving Average", options=["SMA", "EMA", "WMA", "VWMA"])
ma_offset = input.float(10, title="MA Offset (Points)", step=1)
hold_periods = input.int(18, title="Holding Period (Bars)", minval=1)
// Calculating upper and lower wick lengths
upper_wick_length = high - math.max(close, open)
lower_wick_length = math.min(close, open) - low
// Total wick length (upper + lower)
total_wick_length = upper_wick_length + lower_wick_length
// Calculate the moving average based on the selected method
ma = switch ma_type
"SMA" => ta.sma(total_wick_length, ma_length)
"EMA" => ta.ema(total_wick_length, ma_length)
"WMA" => ta.wma(total_wick_length, ma_length)
"VWMA" => ta.vwma(total_wick_length, ma_length)
// Add the offset to the moving average
ma_with_offset = ma + ma_offset
// Entry condition: wick length exceeds MA with offset
long_entry_condition = total_wick_length > ma_with_offset
// Long entry
if (long_entry_condition)
strategy.entry("Long", strategy.long)
// Automatic exit after holding period
if strategy.position_size > 0 and bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) >= hold_periods
strategy.close("Long")
// Plot the total wick length as a histogram
plot(total_wick_length, color=color.blue, style=plot.style_histogram, linewidth=2, title="Total Wick Length")
// Plot the moving average with offset
plot(ma_with_offset, color=color.yellow, linewidth=2, title="MA of Wick Length (Offset)")