Strategi kombinasi pembalikan rata-rata bergerak ganda dan ATR Trailing Stop

Penulis:ChaoZhang, Tanggal: 2024-01-26 11:26:40
Tag:

img

Gambaran umum

Strategi kombinasi pembalikan rata-rata bergerak ganda dan trailing stop ATR adalah strategi perdagangan kuantitatif yang sangat praktis. Strategi pertama menggunakan salib kematian dan salib emas yang dibentuk oleh rata-rata bergerak ganda untuk menentukan tren pasar dan titik pembalikan. Pada saat yang sama, strategi ini juga menggabungkan rentang rata-rata yang benar untuk menetapkan trail stop untuk memastikan keuntungan sambil mengendalikan risiko.

Prinsip Strategi

Strategi pembalikan rata-rata bergerak ganda

Strategi pembalikan rata-rata bergerak ganda menggunakan persilangan garis cepat dan lambat untuk menentukan tren pasar. Ketika garis cepat melintasi di bawah garis lambat dari atas ke bawah, itu membentuk salib kematian, yang menunjukkan tren pasar berubah dari naik ke turun. Ketika garis cepat melintasi di atas garis lambat dari bawah ke atas, itu membentuk salib emas, yang menunjukkan tren pasar berubah dari jatuh ke naik. Strategi ini pendek pada salib kematian dan panjang pada salib emas.

Secara khusus, strategi ini menggunakan garis cepat STOCH 9 hari sebagai garis cepat dan EMA 3 hari sebagai garis lambat. Ketika close lebih rendah dari close sebelumnya dan fast line melintasi di atas 50 untuk melintasi di atas slow line, itu menghapus posisi untuk pergi pendek. Ketika close lebih tinggi dari close sebelumnya dan fast line melintasi di bawah 50 untuk melintasi di bawah slow line, itu menghapus posisi untuk pergi panjang.

Strategi ATR Trailing Stop

Strategi ATR trailing stop menggunakan rentang rata-rata yang benar untuk menetapkan titik stop loss. Indikator ATR dapat secara efektif mencerminkan volatilitas jangka pendek pasar. Strategi ini menetapkan trail stop berdasarkan nilai ATR untuk keluar ketika tren harga berbalik.

Secara khusus, strategi ini menggunakan ATR 5 hari dan menetapkan titik stop loss di dekat minus 3,5 kali ATR. Ketika harga mencapai titik stop loss, itu menutup posisi untuk stop loss.

Analisis Keuntungan

Strategi kombinasi pembalikan rata-rata bergerak ganda dan ATR trailing stop menggabungkan keuntungan dari strategi rata-rata bergerak dalam menentukan tren dan pembalikan dan keuntungan dari strategi trail stop ATR dalam mengendalikan risiko, menjadikannya strategi yang sangat praktis.

Secara khusus, strategi ini memiliki keuntungan berikut:

  1. Gunakan salib kematian dan salib emas yang dibentuk oleh rata-rata bergerak ganda untuk menentukan titik pembalikan tren pasar dan secara akurat mengidentifikasi sinyal pembalikan.

  2. Gabungkan indikator STOCH untuk mengkonfirmasi sinyal pembalikan dan menghindari sinyal palsu.

  3. ATR trailing stop secara fleksibel menetapkan titik stop loss berdasarkan volatilitas pasar untuk memaksimalkan profit locking.

  4. Strategi ini mengintegrasikan beberapa indikator dan metode analisis teknis untuk membuat strategi lebih kuat.

  5. Gagasan strategi jelas dan mudah dimengerti, parameter fleksibel untuk penyesuaian, dan mudah dioperasikan dalam perdagangan langsung.

Analisis Risiko

Meskipun strategi ini memiliki banyak keuntungan, masih ada beberapa risiko yang perlu dicatat:

  1. Sinyal yang dihasilkan oleh rata-rata bergerak ganda mungkin tertinggal dan tidak dapat membeli dan menjual dengan akurat pada titik pembalikan. Periode dapat dipersingkat secara moderat atau dikombinasikan dengan indikator lain untuk optimasi.

  2. Indikator ATR tidak sensitif terhadap fluktuasi pasar yang besar dan tidak dapat memperbarui stop loss tepat waktu.

  3. Kombinasi dari beberapa parameter dan kondisi meningkatkan kompleksitas strategi. Parameter yang tidak tepat dapat menyebabkan perdagangan yang terlalu agresif dan meningkatkan risiko. Parameter perlu dievaluasi dengan cermat dan disesuaikan secara bertahap.

Arahan Optimasi

Menurut analisis risiko di atas, strategi dapat dioptimalkan dalam aspek berikut:

  1. Sesuaikan parameter periode rata-rata bergerak untuk memperpendek periode untuk menangkap peluang pembalikan lebih awal.

  2. Tambahkan indikator lain untuk menentukan sinyal pembalikan, seperti MACD, KD, dll untuk membentuk beberapa konfirmasi.

  3. Mengatur periode ATR secara dinamis atau memperkenalkan volatilitas pasar untuk memperbarui stop loss secara real time.

  4. Mengevaluasi perbedaan antara pasar saham dan pasar berjangka, dan menyesuaikan parameter masing-masing untuk membuatnya lebih cocok untuk kedua pasar.

  5. Tambahkan biaya perdagangan dan slippage dalam backtesting untuk membuat strategi lebih dekat dengan lingkungan perdagangan langsung.

  6. Pertimbangkan untuk menambahkan model pembelajaran mesin untuk mengoptimalkan beberapa parameter secara dinamis.

Ringkasan

Strategi kombinasi pembalikan rata-rata bergerak ganda dan ATR trailing stop adalah strategi kuantitatif yang efisien dan praktis. Strategi ini menggabungkan dua keuntungan menentukan pembalikan pasar dengan rata-rata bergerak dan mengendalikan risiko dengan mengatur trail stop ATR. Strategi ini memastikan keuntungan sambil mengurangi kerugian yang tidak perlu. Strategi ini memiliki penyesuaian parameter yang fleksibel dan mudah dioperasikan dalam perdagangan langsung. Pada saat yang sama, strategi ini juga dapat diperluas dan dioptimalkan dalam berbagai aspek untuk beradaptasi dengan lingkungan pasar yang lebih luas. Secara keseluruhan, strategi ini memberikan kerangka strategis yang sangat baik untuk perdagangan kuantitatif.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/05/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Secon strategy
// Average True Range Trailing Stops Strategy, by Sylvain Vervoort 
// The related article is copyrighted material from Stocks & Commodities Jun 2009 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


ATR_TrailingStop(nATRPeriod, nATRMultip) =>
    xATR = atr(nATRPeriod)
    nLoss = nATRMultip * xATR
    pos = 0.0
    xATRTrailingStop = 0.0
    xATRTrailingStop := iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
                         iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), 
                           iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
    pos := iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
    	     iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 

    pos

strategy(title="Combo Backtest 123 Reversal & Average True Range Trailing Stops", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
nATRPeriod = input(5)
nATRMultip = input(3.5)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posATR_TrailingStop = ATR_TrailingStop(nATRPeriod, nATRMultip)
pos = iff(posReversal123 == 1 and posATR_TrailingStop == 1 , 1,
	   iff(posReversal123 == -1 and posATR_TrailingStop == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 

Lebih banyak