Strategi perdagangan menangkap tren berdasarkan tertinggi dan terendah Delta SMA historis

SMA DELTA MA
Tanggal Pembuatan: 2025-02-19 10:47:50 Akhirnya memodifikasi: 2025-02-19 10:47:50
menyalin: 3 Jumlah klik: 350
1
fokus pada
1617
Pengikut

Strategi perdagangan menangkap tren berdasarkan tertinggi dan terendah Delta SMA historis

Ringkasan

Ini adalah strategi perdagangan berdasarkan pada SMA (Simple Moving Average) dengan analisis tinggi dan rendah selama satu tahun. Strategi ini mengidentifikasi sinyal perdagangan potensial dengan menghitung rata-rata bergerak dari selisih harga dan membandingkannya dengan tinggi dan rendah dari sejarah. Strategi ini menggunakan periode retrospeksi yang panjang dan cocok untuk perdagangan tren jangka panjang.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada langkah-langkah kunci berikut:

  1. Perhitungan Delta: Menghitung selisih volume jual beli dengan menganalisis pergerakan harga. Ketika harga penutupan lebih tinggi dari harga bukaan, ini dicatat sebagai volume jual beli, sebaliknya sebagai volume jual beli.
  2. SMA Smooth Processing: Pengolahan rata-rata bergerak 14 siklus dari nilai Delta untuk mengurangi kebisingan.
  3. Determinasi titik tinggi dan rendah pada satu tahun: Menghitung Delta SMA pada titik tertinggi dan terendah di tahun sebelumnya.
  4. Kondisi pemicu sinyal:
    • Sinyal beli: Dipicu ketika Delta SMA menembus 0 setelah berada di bawah 70% dari satu tahun
    • Sinyal jual: Dipicu ketika Delta SMA menembus 90% dari satu tahun dan turun 60%

Keunggulan Strategis

  1. Kemampuan untuk menangkap tren jangka panjang: Dengan analisis data historis selama satu tahun, Anda dapat secara efektif menangkap tren utama.
  2. Efek penyaringan kebisingan yang baik: Menggunakan pemrosesan SMA yang halus dan kondisi nilai tipping ganda, secara efektif mengurangi sinyal palsu.
  3. Pengendalian risiko yang masuk akal: menetapkan persyaratan masuk dan keluar yang jelas untuk menghindari perdagangan berlebihan.
  4. Adaptif: Parameter strategi dapat disesuaikan dengan kondisi pasar yang berbeda.

Risiko Strategis

  1. Risiko keterlambatan: Bisa menyebabkan keterlambatan sinyal karena penggunaan SMA dan periode pengembalian yang panjang.
  2. Risiko terobosan palsu: Dapat menimbulkan sinyal yang salah di pasar yang bergejolak.
  3. Ketergantungan pada kondisi pasar: Performa mungkin kurang baik di pasar yang tidak menunjukkan tren.
  4. Sensitivitas parameter: Pengaturan nilai ambang memiliki pengaruh besar terhadap kinerja strategi.

Arah optimasi strategi

  1. Penyesuaian nilai tren dinamis: Penyesuaian nilai tren tinggi dan rendah dapat disesuaikan dengan dinamika volatilitas pasar.
  2. Meningkatkan indikator tambahan: Meningkatkan keandalan sinyal dalam kombinasi dengan indikator teknis lainnya.
  3. Memperkenalkan mekanisme stop loss: mengatur stop loss dinamis untuk mengendalikan risiko.
  4. Pemfilteran lingkungan pasar: Menambahkan logika penilaian lingkungan pasar, menjalankan strategi di lingkungan yang sesuai.

Meringkaskan

Ini adalah strategi pelacakan tren jangka menengah dan jangka panjang berdasarkan analisis volume transaksi, untuk menangkap tren pasar dengan menganalisis perbedaan nilai jual beli. Strategi ini dirancang dengan masuk akal, risiko terkendali, tetapi perlu memperhatikan masalah adaptasi dan pengoptimalan parameter lingkungan pasar.

Kode Sumber Strategi
/*backtest
start: 2024-02-20 00:00:00
end: 2025-02-17 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Delta SMA 1-Year High/Low Strategy", overlay = false, margin_long = 100, margin_short = 100)

// Inputs
delta_sma_length = input.int(14, title="Delta SMA Length", minval=1)  // SMA length for Delta
lookback_days = 365  // Lookback period fixed to 1 year

// Function to calculate buy and sell volume
buy_volume = close > open ? volume : na
sell_volume = close < open ? volume : na

// Calculate the Delta
delta = nz(buy_volume, 0) - nz(sell_volume, 0)

// Calculate Delta SMA
delta_sma = ta.sma(delta, delta_sma_length)

// Lookback period in bars (1 bar = 1 day)
desired_lookback_bars = lookback_days

// Ensure lookback doesn't exceed available historical data
max_lookback_bars = math.min(desired_lookback_bars, 365)  // Cap at 365 bars (1 year)

// Calculate Delta SMA low and high within the valid lookback period
delta_sma_low_1yr = ta.lowest(delta_sma, max_lookback_bars)
delta_sma_high_1yr = ta.highest(delta_sma, max_lookback_bars)

// Define thresholds for buy and sell conditions
very_low_threshold = delta_sma_low_1yr * 0.7
above_70_threshold = delta_sma_high_1yr * 0.9
below_60_threshold = delta_sma_high_1yr * 0.5

// Track if `delta_sma` was very low and persist the state
var bool was_very_low = false
if delta_sma < very_low_threshold
    was_very_low := true
if ta.crossover(delta_sma, 10000)
    was_very_low := false  // Reset after crossing 0

// Track if `delta_sma` crossed above 70% of the high
var bool crossed_above_70 = false
if ta.crossover(delta_sma, above_70_threshold)
    crossed_above_70 := true
if delta_sma < below_60_threshold*0.5 and crossed_above_70
    crossed_above_70 := false  // Reset after triggering sell

// Buy condition: `delta_sma` was very low and now crosses 0
buy_condition = was_very_low and ta.crossover(delta_sma, 0)

// Sell condition: `delta_sma` crossed above 70% of the high and now drops below 60%
sell_condition = crossed_above_70 and delta_sma < below_60_threshold

// Place a long order when buy condition is met
if buy_condition
    strategy.entry("Buy", strategy.long)

// Place a short order when sell condition is met
if sell_condition
    strategy.close("Buy")

// Plot Delta SMA and thresholds for visualization
plot(delta_sma, color=color.blue, title="Delta SMA")
plot(very_low_threshold, color=color.green, title="70% of 1-Year Delta SMA Low", linewidth=2)
plot(above_70_threshold, color=color.purple, title="70% of 1-Year Delta SMA High", linewidth=2)
plot(below_60_threshold, color=color.red, title="60% of 1-Year Delta SMA High", linewidth=2)

// Optional: Plot Buy and Sell signals on the chart
//plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.new(color.green, 0), style=shape.labelup, text="BUY")
//plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.new(color.red, 0), style=shape.labeldown, text="SELL")