Strategi perdagangan pembalikan rata-rata pergerakan tren komposit

MA EMA TEMA DEMA WMA SMA
Tanggal Pembuatan: 2025-02-20 17:20:42 Akhirnya memodifikasi: 2025-02-27 17:23:21
menyalin: 0 Jumlah klik: 394
2
fokus pada
319
Pengikut

Strategi perdagangan pembalikan rata-rata pergerakan tren komposit Strategi perdagangan pembalikan rata-rata pergerakan tren komposit

Ringkasan

Strategi ini adalah sistem perdagangan pelacakan tren dan reversal yang didasarkan pada garis rata-rata komposit. Ini mengidentifikasi peluang perdagangan dengan menggabungkan rata-rata bergerak dari berbagai periode, yang dikombinasikan dengan reaksi harga terhadap garis rata-rata. Inti dari strategi ini adalah untuk menilai waktu perdagangan dengan mengamati hubungan antara harga dan garis rata-rata dan bagaimana harga bereaksi ketika mereka kembali ke penurunan harga tertentu.

Prinsip Strategi

Strategi ini menggunakan kombinasi dari beberapa jenis rata-rata bergerak (EMA, TEMA, DEMA, WMA, SMA) untuk membangun rata-rata kompleks melalui dua periode yang berbeda (default 20 dan 30). Strategi ini akan menunggu harga kembali ke sekitar rata-rata setelah tren ditetapkan. Strategi ini akan melakukan perdagangan jika ada sinyal reversal.

Keunggulan Strategis

  1. Sistem ini memiliki kemampuan adaptasi yang baik, mendukung berbagai jenis rata-rata, dan dapat memilih rata-rata yang paling sesuai sesuai dengan karakteristik pasar yang berbeda.
  2. Dengan cara menggabungkan garis rata-rata, secara efektif mengurangi sinyal palsu yang mungkin dibawa oleh garis rata-rata siklus tunggal.
  3. Strategi ini menambahkan konsep persentase reaksi, menghindari transaksi yang melintasi garis rata yang sederhana, dan meningkatkan keandalan transaksi.
  4. Dalam kasus di mana arah tren jelas, harga perdagangan yang lebih baik dapat diperoleh dengan menunggu untuk kembali masuk ke pasar.

Risiko Strategis

  1. Dalam pasar yang bergejolak, sinyal palsu dapat sering terjadi, sehingga meningkatkan biaya transaksi.
  2. Keterlambatan garis rata-rata komposit dapat menyebabkan keterlambatan waktu masuk dan keluar.
  3. Persentase respons tetap mungkin perlu disesuaikan untuk kondisi pasar yang berbeda.
  4. Di pasar dengan pergeseran tren yang cepat, kemungkinan akan ada penurunan yang lebih besar.

Arah optimasi strategi

  1. Indikator volatilitas dapat diperkenalkan untuk menyesuaikan persentase respon secara dinamis, sehingga strategi lebih sesuai dengan kondisi pasar yang berbeda.
  2. Menambahkan faktor volume transaksi untuk mengkonfirmasi efektivitas reversal harga.
  3. Pertimbangkan untuk menambahkan mekanisme stop loss dan stop loss untuk lebih mengontrol risiko.
  4. Pengertian kekuatan tren dapat ditingkatkan, dengan pengaturan parameter yang lebih radikal dalam tren yang kuat.
  5. Pertimbangkan untuk masuk ke dalam lingkungan pasar, menggunakan kombinasi parameter yang berbeda untuk karakteristik pasar yang berbeda.

Meringkaskan

Ini adalah strategi yang menggabungkan konsep trend tracking dan reversal trading untuk menangkap peluang perdagangan dengan mekanisme reaksi rata-rata dan harga komposit. Keunggulan inti dari strategi ini adalah fleksibilitas dan kemampuan untuk menyaring sinyal palsu, tetapi juga perlu memperhatikan masalah pengoptimalan parameter dalam berbagai lingkungan pasar. Dengan kontrol risiko yang masuk akal dan perbaikan pengoptimalan berkelanjutan, strategi ini diharapkan untuk menghasilkan keuntungan yang stabil dalam perdagangan aktual.

Kode Sumber Strategi
/*backtest
start: 2024-10-01 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ultrajante MA Reaction Strategy", overlay=true, initial_capital=10000, 
     default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ===== Custom Functions for DEMA and TEMA =====
dema(src, length) =>
    ema1 = ta.ema(src, length)
    ema2 = ta.ema(ema1, length)
    2 * ema1 - ema2

tema(src, length) =>
    ema1 = ta.ema(src, length)
    ema2 = ta.ema(ema1, length)
    ema3 = ta.ema(ema2, length)
    3 * ema1 - 3 * ema2 + ema3

// ===== Configuration Parameters =====

// MA Type Selection
maType = input.string(title="MA Type", defval="EMA", options=["SMA", "EMA", "WMA", "DEMA", "TEMA"])

// Parameters for composite periods
periodA = input.int(title="Period A", defval=20, minval=1)
periodB = input.int(title="Period B", defval=30, minval=1)
compMethod = input.string(title="Composite Method", defval="Average", options=["Average", "Weighted"])

// Reaction percentage (e.g., 0.5 means 0.5%)
reactionPerc = input.float(title="Reaction %", defval=0.5, step=0.1)

// ===== Composite Period Calculation =====
compPeriod = compMethod == "Average" ? math.round((periodA + periodB) / 2) : math.round((periodA * 0.6 + periodB * 0.4))

// ===== Moving Average Calculation based on selected type =====
ma = switch maType
    "SMA"  => ta.sma(close, compPeriod)
    "EMA"  => ta.ema(close, compPeriod)
    "WMA"  => ta.wma(close, compPeriod)
    "DEMA" => dema(close, compPeriod)
    "TEMA" => tema(close, compPeriod)
    => ta.ema(close, compPeriod)  // Default value

plot(ma, color=color.blue, title="MA")

// ===== Trend Definition =====
trendUp = close > ma
trendDown = close < ma

// ===== Reaction Threshold Calculation =====
// In uptrend: expect the price to retrace to or below a value close to the MA
upThreshold = ma * (1 - reactionPerc / 100)
// In downtrend: expect the price to retrace to or above a value close to the MA
downThreshold = ma * (1 + reactionPerc / 100)

// ===== Quick Reaction Detection =====
// For uptrend: reaction is detected if the low is less than or equal to the threshold and the close recovers and stays above the MA
upReaction = trendUp and (low <= upThreshold) and (close > ma)
// For downtrend: reaction is detected if the high is greater than or equal to the threshold and the close stays below the MA
downReaction = trendDown and (high >= downThreshold) and (close < ma)

// ===== Trade Execution =====
if upReaction
    // Close short position if exists and open long position
    strategy.close("Short", comment="Close Short due to Bullish Reaction")
    strategy.entry("Long", strategy.long, comment="Long Entry due to Bullish Reaction in Uptrend")

if downReaction
    // Close long position if exists and open short position
    strategy.close("Long", comment="Close Long due to Bearish Reaction")
    strategy.entry("Short", strategy.short, comment="Short Entry due to Bearish Reaction in Downtrend")

// ===== Visualization of Reactions on the Chart =====
plotshape(upReaction, title="Bullish Reaction", style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small, text="Long")
plotshape(downReaction, title="Bearish Reaction", style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small, text="Short")