Strategi trailing stop ES berdasarkan ATR


Tanggal Pembuatan: 2024-01-12 14:52:23 Akhirnya memodifikasi: 2024-01-12 14:52:23
menyalin: 3 Jumlah klik: 673
1
fokus pada
1617
Pengikut

Strategi trailing stop ES berdasarkan ATR

Ringkasan

Strategi ini adalah strategi stop-follow yang diterapkan pada E-mini S&P 500 futures (ES). Strategi ini menggunakan 10 hari ATR sebagai referensi untuk mengatur stop-loss line dengan 3 kali ATR sebagai batas stop-loss. Strategi ini menilai tren melalui perubahan arah garis ATR dan menghasilkan sinyal masuk pada titik-titik perubahan tren. Setelah masuk, strategi ini akan menyesuaikan stop-loss line secara real-time, membiarkan stop-loss line berjalan mengikuti harga, untuk melindungi profit.

Prinsip Strategi

Strategi ini menggunakan hl2 sebagai sumber harga. Pertama menghitung 10 hari ATR, dan memberi pengguna pilihan untuk menghitung ATR menggunakan metode SMA atau fungsi ATR built-in. Setelah menghitung ATR, tambahkan 3 kali ATR ke bawah sebagai kisaran.

Metode untuk menilai tren adalah, ketika harga melebihi batas atas, maka adalah head; ketika harga jatuh ke bawah batas, maka adalah headless. Ketika harga kembali kembali ke dalam kisaran, maka dikonfirmasi trend reversal. Saat ini jika dari air overturn, generate headless masuk sinyal; jika dari air overturn, generate headless masuk sinyal.

Setelah masuk, multihead stop line diatur untuk 1 poin di bawah batas atas, dan head stop line kosong diatur untuk 1 poin di atas batas bawah, untuk perlindungan tailing yang tajam.

Keunggulan Strategis

  1. Menggunakan ATR dapat secara otomatis beradaptasi dengan perubahan volatilitas pasar, mengurangi probabilitas stop loss yang dipicu
  2. Metode untuk melacak tren sederhana dan efektif, menghindari risiko topping dan bottoming
  3. Stop loss yang dipantau menjamin perlindungan dari keuntungan dan menghindari kerugian setelah keuntungan

Analisis risiko

  1. ATR parameter yang tidak tepat dapat menyebabkan stop loss terlalu besar atau terlalu kecil
  2. Stop loss yang tidak biasa dapat terjadi ketika volatilitas indikator berubah
  3. TAILING Stop loss mungkin terlalu konservatif dan gagal untuk terus mengikuti tren

Arah optimasi

  1. Optimalisasi parameter ATR dapat dipertimbangkan dalam kombinasi dengan indikator volatilitas
  2. Anda dapat menguji berbagai algoritma tailing stop loss, seperti persentase saldo stop loss dan sebagainya.
  3. Dapat digabungkan dengan indikator tren untuk memfilter sinyal masuk untuk menghindari masuknya non-tren utama

Meringkaskan

Strategi ini secara keseluruhan merupakan strategi pelacakan tren yang lebih umum. Strategi ini memecahkan masalah sulitnya menentukan batas stop loss, mengurangi risiko dengan penyesuaian dinamis ATR. Namun, parameter ATR, algoritma stop loss, dan lain-lain masih memiliki ruang untuk dioptimalkan. Dengan pengujian dan penyesuaian parameter lebih lanjut, strategi ini dapat menjadi strategi stop loss yang lebih robust.

Kode Sumber Strategi
/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("ATR Based Trailing Stop Strategy on ES! [v4]", overlay=true)

// Given ATR study
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR = input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

// Entry logic based on trend change
longCondition = trend == 1 and trend[1] == -1
shortCondition = trend == -1 and trend[1] == 1

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Trailing stop loss logic
// For long positions, trail 1 point below the up plot
longStopPrice = up - 1

// For short positions, trail 1 point above the dn plot
shortStopPrice = dn + 1

strategy.exit("Trailing Stop Long", "Long", trail_offset=longStopPrice)
strategy.exit("Trailing Stop Short", "Short", trail_offset=shortStopPrice)