Strategi Stop Loss Trailing Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2024-02-05 13:45:51 Akhirnya memodifikasi: 2024-02-05 13:45:51
menyalin: 0 Jumlah klik: 565
1
fokus pada
1617
Pengikut

Strategi Stop Loss Trailing Rata-rata Pergerakan Ganda

Ringkasan

Strategi ini menghasilkan sinyal beli dengan menghitung moving average dari dua parameter yang berbeda ketika garis cepat melintasi garis lambat. Strategi ini juga menghasilkan sinyal jual ketika harga turun di bawah harga stop loss. Strategi ini dapat secara efektif melacak tren pasar dan menghentikan stop loss tepat waktu setelah keuntungan.

Prinsip Strategi

  1. Rata-rata Bergerak Cepat (EMA): Parameternya adalah rata-rata bergerak indeks 12 hari, yang dapat merespons perubahan harga dengan cepat.
  2. Rata-rata bergerak lambat ((SMA): parameter adalah rata-rata bergerak sederhana 45 hari, yang mewakili tren jangka panjang.
  3. Sebuah sinyal beli dihasilkan ketika sebuah rata-rata bergerak cepat melewati rata-rata bergerak lambat.
  4. Menghitung rata-rata 15 hari real volatility (ATR) sebagai basis stop loss.
  5. Setting tracking stop loss based on ATR value (misalnya 6 kali ATR) dan update stop loss price in real time.
  6. Ketika harga berada di bawah harga stop loss, sinyal jual dihasilkan.

Keuntungan dari strategi ini adalah menggabungkan pelacakan tren dan manajemen stop loss, baik untuk melacak arah garis tengah panjang maupun untuk mengendalikan kerugian tunggal melalui stop loss.

Analisis Keunggulan

  1. Kombinasi rata-rata bergerak dapat secara efektif mengidentifikasi tren dan meningkatkan keandalan sinyal.
  2. Tracking stop loss secara dinamis dapat menghentikan stop loss secara tepat waktu dan menghindari serangan terhadap kekuatan keuangan.
  3. Stop loss yang digabungkan dengan ATR membuat harga stop loss masuk akal dan mencegah terlalu sensitif.
  4. Strategi yang jelas dan mudah dipahami, parameter yang disesuaikan dengan fleksibilitas.

Analisis risiko

  1. Moving Average terlambat, mungkin kehilangan kesempatan untuk memendekkannya.
  2. Stop loss yang terlalu longgar akan merusak profitabilitas.
  3. Stop loss yang terlalu sensitif akan meningkatkan frekuensi transaksi dan beban biaya.
  4. Perubahan volatilitas saham dapat mempengaruhi stabilitas parameter ATR.

Parameter moving average dapat dioptimalkan dengan tepat, atau ATR dapat disesuaikan untuk menyeimbangkan stop loss. Indikator lain dapat digabungkan sebagai kondisi penyaringan untuk meningkatkan waktu masuk.

Arah optimasi

  1. Uji lebih banyak kombinasi parameter untuk memilih rata-rata bergerak terbaik.
  2. Mengatur parameter perkalian ATR stop loss sesuai dengan karakteristik saham yang berbeda.
  3. Meningkatkan kondisi penyaringan seperti indikator kuantitas dan harga untuk menghindari transaksi yang tidak perlu.
  4. Mengakumulasi lebih banyak tes data historis untuk memverifikasi stabilitas parameter.

Meringkaskan

Strategi ini berhasil menggabungkan trend tracking moving average dan ATR stop loss, dengan parameter optimasi dapat disesuaikan dengan karakteristik saham yang berbeda. Strategi ini membentuk batas yang jelas untuk membeli dan batas stop loss, sehingga logika perdagangan sederhana dan jelas. Secara keseluruhan, strategi stop loss yang mengikuti dua rata-rata bergerak ini stabil, sederhana, dan mudah dioptimalkan, cocok untuk strategi dasar perdagangan saham.

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

//@version=2
//created by XPloRR 24-02-2018

strategy("XPloRR MA-Buy ATR-MA-Trailing-Stop Strategy",overlay=true, initial_capital=1000,default_qty_type=strategy.percent_of_equity,default_qty_value=100)

testStartYear = input(2005, "Start Year")
testStartMonth = input(1, "Start Month")
testStartDay = input(1, "Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2050, "Stop Year")
testStopMonth = input(12, "Stop Month")
testStopDay = input(31, "Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriodBackground = input(title="Background", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

emaPeriod = input(12, "Exponential MA")
smaPeriod = input(45, "Simple MA")
stopPeriod = input(12, "Stop EMA")
delta = input(6, "Trailing Stop #ATR")

testPeriod() => true

emaval=ema(close,emaPeriod)
smaval=sma(close,smaPeriod)
stopval=ema(close,stopPeriod)
atr=sma((high-low),15)

plot(emaval, color=blue,linewidth=1)
plot(smaval, color=orange,linewidth=1)
plot(stopval, color=lime,linewidth=1)

long=crossover(emaval,smaval) 
short=crossunder(emaval,smaval)

//buy-sell signal
stop=0
inlong=0
if testPeriod()
    if (long and (not inlong[1]))
        strategy.entry("buy",strategy.long)
        inlong:=1
        stop:=emaval-delta*atr
    else
        stop:=iff((nz(emaval)>(nz(stop[1])+delta*atr))and(inlong[1]),emaval-delta*atr,nz(stop[1]))
        inlong:=nz(inlong[1])
        if ((stopval<stop) and (inlong[1]))
            strategy.close("buy")
            inlong:=0
            stop:=0
else
    inlong:=0
    stop:=0
plot(stop,color=green,linewidth=1)