Strategi gabungan pembalikan purata bergerak berganda dan ATR Trailing Stop

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

img

Ringkasan

Strategi gabungan pembalikan purata bergerak berganda dan hentian jejak ATR adalah strategi perdagangan kuantitatif yang sangat praktikal. Strategi ini pertama menggunakan salib kematian dan salib emas yang dibentuk oleh purata bergerak berganda untuk menentukan trend pasaran dan titik pembalikan. Pada masa yang sama, strategi ini juga menggabungkan julat sebenar purata untuk menetapkan hentian jejak untuk memastikan keuntungan sambil mengawal risiko.

Prinsip Strategi

Strategi pembalikan purata bergerak berganda

Strategi pembalikan purata bergerak berganda menggunakan persilangan garis pantas dan perlahan untuk menentukan trend pasaran. Apabila garis pantas melintasi di bawah garis perlahan dari atas ke bawah, ia membentuk salib kematian, yang menunjukkan trend pasaran berubah dari naik ke jatuh. Apabila garis pantas melintasi di atas garis perlahan dari bawah ke atas, ia membentuk salib emas, yang menunjukkan trend pasaran 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 perlahan. Apabila dekat lebih rendah daripada penutupan sebelumnya dan garis cepat melintasi di atas 50 untuk melintasi di atas garis perlahan, ia membersihkan kedudukan untuk pergi pendek. Apabila dekat lebih tinggi daripada penutupan sebelumnya dan garis cepat melintasi di bawah 50 untuk melintasi di bawah garis perlahan, ia membersihkan kedudukan untuk pergi panjang.

Strategi Hentian Terakhir ATR

Strategi ATR trailing stop menggunakan julat sebenar purata untuk menetapkan titik stop loss. Indikator ATR dapat mencerminkan secara berkesan turun naik jangka pendek pasaran. Strategi menetapkan trail stop berdasarkan nilai ATR untuk keluar apabila trend harga berbalik.

Secara khusus, strategi ini menggunakan ATR 5 hari dan menetapkan titik stop loss pada dekat tolak 3.5 kali ATR. Apabila harga mencapai titik stop loss, ia menutup kedudukan untuk stop loss.

Analisis Kelebihan

Strategi gabungan pembalikan purata bergerak berganda dan hentian trailing ATR menggabungkan kelebihan strategi purata bergerak dalam menentukan trend dan pembalikan dan kelebihan strategi hentian trail ATR dalam mengawal risiko, menjadikannya strategi yang sangat praktikal.

Secara khusus, strategi ini mempunyai kelebihan berikut:

  1. Gunakan salib kematian dan salib emas yang dibentuk oleh purata bergerak berganda untuk menentukan titik pembalikan trend pasaran dan mengenal pasti isyarat pembalikan dengan tepat.

  2. Gabungkan penunjuk STOCH untuk mengesahkan isyarat pembalikan dan mengelakkan isyarat palsu.

  3. ATR trailing stop secara fleksibel menetapkan titik stop loss berdasarkan turun naik pasaran untuk memaksimumkan kunci keuntungan.

  4. Strategi ini mengintegrasikan pelbagai penunjuk dan kaedah analisis teknikal untuk menjadikan strategi lebih kukuh.

  5. Idea strategi adalah jelas dan mudah difahami, parameter fleksibel untuk penyesuaian, dan mudah untuk beroperasi dalam perdagangan langsung.

Analisis Risiko

Walaupun strategi ini mempunyai banyak kelebihan, masih ada beberapa risiko yang perlu diperhatikan:

  1. Isyarat yang dihasilkan oleh purata bergerak berganda mungkin ketinggalan dan tidak dapat membeli dan menjual dengan tepat pada titik pembalikan. Tempoh boleh diperpendek atau digabungkan dengan penunjuk lain untuk pengoptimuman.

  2. Indikator ATR tidak sensitif terhadap turun naik pasaran yang besar dan tidak dapat mengemas kini stop loss tepat pada masanya.

  3. Kombinasi pelbagai parameter dan keadaan meningkatkan kerumitan strategi. Parameter yang tidak betul boleh menyebabkan perdagangan yang terlalu agresif dan meningkatkan risiko. Parameter perlu dinilai dengan teliti dan diselaraskan secara beransur-ansur.

Arahan pengoptimuman

Menurut analisis risiko di atas, strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Sesuaikan parameter purata bergerak untuk memendekkan tempoh untuk menangkap peluang pembalikan awal.

  2. Tambah penunjuk lain untuk menentukan isyarat pembalikan, seperti MACD, KD, dan lain-lain untuk membentuk pengesahan berbilang.

  3. Mengatur secara dinamik tempoh ATR atau memperkenalkan turun naik pasaran untuk mengemas kini stop loss dalam masa nyata.

  4. Menilai perbezaan antara pasaran saham dan niaga hadapan, dan menyesuaikan parameter masing-masing untuk menjadikannya lebih sesuai untuk kedua-dua pasaran.

  5. Tambah kos dagangan dan slippage dalam backtesting untuk membuat strategi lebih dekat dengan persekitaran dagangan langsung.

  6. Pertimbangkan menambah model pembelajaran mesin untuk mengoptimumkan pelbagai parameter secara dinamik.

Ringkasan

Strategi gabungan pembalikan purata bergerak berganda dan hentian trailing ATR adalah strategi kuantitatif yang cekap dan praktikal. Ia menggabungkan kelebihan berganda menentukan pembalikan pasaran dengan purata bergerak dan mengawal risiko dengan menetapkan hentian trail ATR. Ia memastikan keuntungan sambil mengurangkan kerugian yang tidak perlu. Strategi ini mempunyai penyesuaian parameter yang fleksibel dan mudah dikendalikan dalam perdagangan langsung. Pada masa yang sama, ia juga boleh diperluaskan dan dioptimumkan dalam pelbagai aspek untuk menyesuaikan diri dengan persekitaran pasaran yang lebih luas. Secara keseluruhan, strategi ini menyediakan rangka kerja strategik 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 lanjut