Rata-rata Pergerakan, Rata-rata Pergerakan Sederhana, Kemiringan Rata-rata Pergerakan, Trailing Stop, Re-entry

MA SMA MA
Tanggal Pembuatan: 2024-06-07 16:41:53 Akhirnya memodifikasi: 2024-06-07 16:41:53
menyalin: 0 Jumlah klik: 891
1
fokus pada
1617
Pengikut

Rata-rata Pergerakan, Rata-rata Pergerakan Sederhana, Kemiringan Rata-rata Pergerakan, Trailing Stop, Re-entry

Ringkasan

Strategi ini membuat keputusan perdagangan berdasarkan pada kemiringan MA dan posisi harga relatif terhadap MA. Strategi ini melakukan pembelian ketika kemiringan MA lebih besar dari titik terendah kemiringan dan harga lebih tinggi dari MA. Strategi ini juga menggunakan Trailing Stop Loss untuk mengelola risiko dan re-entry dalam kondisi tertentu. Strategi ini bertujuan untuk menangkap peluang dalam tren naik, sekaligus mengoptimalkan keuntungan dan risiko melalui mekanisme stop loss dan re-entry yang dinamis.

Prinsip Strategi

  1. Perhitungan rata-rata bergerak sederhana (SMA) untuk periode tertentu sebagai indikator tren utama.
  2. Perhitungan SMA pada periode jendela yang ditentukan untuk menilai kekuatan tren saat ini.
  3. Ketika SMA lebih besar dari nilai terendah SMA dan harga lebih tinggi dari SMA, pasar dianggap berada dalam tren naik, strategi untuk membeli.
  4. Setelah masuk ke pasar, strategi menggunakan mekanisme tracking stop loss yang secara dinamis menyesuaikan harga stop loss berdasarkan harga saat ini dan persentase yang ditentukan.
  5. Jika harga menyentuh harga tracking stop loss, strategi untuk melunasi dan menandai stop loss terjadi.
  6. Strategi akan kembali ke permainan jika harga kembali ke persentase tertentu di bawah SMA setelah stop loss terjadi.
  7. Jika harga turun di bawah SMA, maka strategi tersebut adalah melakukan posisi terdepan.

Analisis Keunggulan

  1. Pelacakan tren: menilai tren melalui kemiringan SMA dan posisi harga relatif terhadap SMA, membantu strategi untuk mendapatkan keuntungan dalam tren naik.
  2. Stop loss yang dinamis: Menggunakan mekanisme stop loss yang dapat dilacak, dan menyesuaikan posisi stop loss sesuai dengan perubahan harga yang dinamis, dapat lebih melindungi keuntungan dan membatasi kerugian.
  3. Re-enter: Setelah terjadi stop loss, strategi ini akan kembali masuk saat harga kembali ke persentase tertentu di bawah SMA untuk menangkap peluang rebound potensial.
  4. Fleksibilitas Parameter: Strategi menyediakan beberapa parameter yang dapat disesuaikan, seperti siklus SMA, margin paling rendah, dan persentase stop loss yang dapat dilacak, yang dapat dioptimalkan sesuai dengan kondisi pasar yang berbeda.

Analisis risiko

  1. Sensitivitas parameter: kinerja kebijakan mungkin sangat sensitif terhadap pengaturan parameter, dan pilihan parameter yang tidak tepat dapat menyebabkan kinerja kebijakan yang buruk.
  2. Identifikasi tren: Strategi ini terutama bergantung pada kemiringan SMA dan posisi harga relatif terhadap SMA untuk menilai tren, yang dapat menimbulkan sinyal yang salah dalam kondisi pasar tertentu.
  3. Frekuensi Stop Loss: mekanisme yang melacak stop loss dapat menyebabkan stop loss yang sering terjadi, terutama dalam situasi pasar yang bergejolak, sehingga mempengaruhi kinerja keseluruhan strategi.
  4. Risiko re-entry: mekanisme re-entry mungkin dalam beberapa kasus menyebabkan strategi mengalami penurunan lebih lanjut setelah re-entry, memperbesar kerugian.

Arah optimasi

  1. Pengakuan tren: Dalam menilai tren, dapat dikombinasikan dengan indikator teknis lainnya atau pola perilaku harga untuk meningkatkan akurasi identifikasi tren.
  2. Optimasi Stop Loss: Metode stop loss alternatif dapat dieksplorasi, seperti stop loss berdasarkan volatilitas atau posisi support/resistance, untuk lebih beradaptasi dengan kondisi pasar yang berbeda.
  3. Kondisi masuk kembali: Kondisi masuk kembali dapat dioptimalkan dengan mempertimbangkan faktor-faktor seperti tingkat dan durasi penarikan harga untuk memfilter beberapa sinyal masuk kembali yang tidak menguntungkan.
  4. Manajemen posisi: Memperkenalkan mekanisme manajemen posisi yang menyesuaikan ukuran posisi setiap transaksi berdasarkan volatilitas pasar atau indikator risiko lainnya untuk mengontrol risiko keseluruhan.

Meringkaskan

Strategi ini menilai tren melalui kemiringan rata-rata bergerak dan posisi harga terhadap rata-rata bergerak, dan mengelola perdagangan dengan mekanisme untuk melacak stop loss dan re-entry bersyarat. Keunggulan strategi adalah kemampuan untuk melacak tren, melindungi stop loss secara dinamis, dan menangkap peluang re-entry. Namun, strategi ini juga memiliki masalah potensial seperti sensitivitas parameter, kesalahan identifikasi tren, frekuensi stop loss, dan risiko re-entry.

Kode Sumber Strategi
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA Incline Strategy with Trailing Stop-Loss and Conditional Re-Entry", overlay=true, calc_on_every_tick=true)

// Input parameters
windowSize = input.int(10, title="Window Size")
maLength = input.int(150, title="Moving Average Length")
minSlope = input.float(0.001, title="Minimum Slope")
trailingStopPercentage = input.float(2.8, title="Trailing Stop Percentage (%)") / 100
reEntryPercentage = input.float(4.2, title="Re-Entry Percentage Above MA (%)") / 100

// Calculate the moving average
ma = ta.sma(close, maLength)

// Calculate the slope of the moving average over the window size
previousMa = ta.sma(close[windowSize], maLength)
slopeMa = (ma - previousMa) / windowSize

// Check conditions
isAboveMinSlope = slopeMa > minSlope
isAboveMa = close > ma

// Variables to track stop loss and re-entry condition
var bool stopLossOccurred = false
var float trailStopPrice = na
// Buy condition
buyCondition = isAboveMinSlope and isAboveMa and ((not stopLossOccurred) or (stopLossOccurred and low < ma * (1 + reEntryPercentage)))

// Execute strategy
if (buyCondition and strategy.opentrades == 0)
    if (stopLossOccurred and close < ma * (1 + reEntryPercentage))
        strategy.entry("Long", strategy.long)
        stopLossOccurred := false
    else if (not stopLossOccurred)
        strategy.entry("Long", strategy.long)

// Trailing stop-loss
if (strategy.opentrades == 1)
    // Calculate the trailing stop price
    trailStopPrice := close * (1 - trailingStopPercentage)
    // Use the built-in strategy.exit function with the trailing stop
    strategy.exit("Trail Stop", "Long", stop=close * (1 - trailingStopPercentage))

// Exit condition
sellCondition = ta.crossunder(close, ma)
if (sellCondition and strategy.opentrades == 1)
    strategy.close("Long")

// Check if stop loss occurred
if (strategy.closedtrades > 0)
    lastExitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1)
    if (not na(trailStopPrice) and lastExitPrice <= trailStopPrice)
        stopLossOccurred := true

// Reset stop loss flag if the price crosses below the MA
if (ta.crossunder(close, ma))
    stopLossOccurred := false