Trend Berasaskan Indikator EMA dan AC Dual Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2024-01-15 12:02:54
Tag:

img

Ringkasan

Strategi ini direka berdasarkan dua indikator EMA dan AC percepatan pengayun. Penunjuk EMA ganda digunakan untuk menentukan arah trend harga, manakala penunjuk AC digunakan untuk mengesahkan isyarat trend untuk kesan penapisan. Strategi ini menggabungkan kedua-dua trend berikut dan fungsi penapisan isyarat untuk meningkatkan kualiti isyarat dan keuntungan dari trend.

Logika Strategi

Strategi ini terdiri daripada dua modul:

  1. Modul EMA Berganda

    • Membina penunjuk EMA berganda menggunakan EMA 2 hari dan EMA 20 hari. Isyarat beli dihasilkan apabila harga melintasi EMA 2 hari. Isyarat jual dihasilkan apabila harga melintasi EMA 20 hari.

    • Modul ini menentukan arah trend jangka pendek dan jangka menengah untuk trend asas berikut.

  2. Modul AC

    • Menggunakan nilai positif dan negatif pengayun percepatan AC untuk mengesahkan isyarat trend. Isyarat perdagangan hanya dihasilkan apabila dua indikator EMA dan AC bersetuju dengan arah.

    • Modul ini menapis isyarat palsu dan meningkatkan kebolehpercayaan.

Ringkasnya, strategi ini mengintegrasikan EMA berganda untuk mengesan trend utama dan penunjuk AC untuk menapis pecah palsu, membentuk trend sistematik mengikut metodologi.

Analisis Kelebihan

Kelebihan strategi ini ialah:

  1. Dual EMA mengesan trend jangka menengah dan panjang manakala AC menapis kebisingan jangka pendek, kesan combo yang hebat.

  2. Kesan penapisan yang sangat baik untuk mengelakkan menjual selepas keuntungan panjang atau membeli selepas keuntungan pendek.

  3. Penyesuaian parameter yang fleksibel yang dapat disesuaikan dengan produk dan persekitaran pasaran yang berbeza.

  4. Logik strategi yang jelas, mudah difahami, dioptimumkan dan ditingkatkan.

  5. Trend yang baik mengikuti potensi keuntungan untuk produk trend.

Analisis Risiko

Terdapat beberapa risiko dalam strategi ini:

  1. Tetapan parameter EMA berganda yang tidak betul boleh terlepas daripada trend yang lebih pendek atau menghasilkan dagangan yang berlebihan.

  2. Tetapan parameter AC yang tidak betul boleh menapis isyarat yang sah tetapi lemah atau gagal menapis bunyi yang mencukupi.

  3. Tidak dapat menyesuaikan diri dengan pasaran yang berubah dengan pantas, seperti kemalangan yang tajam.

  4. Keuntungan yang tidak mencukupi di pasaran yang berbeza, harus digunakan sebagai strategi trend berikut.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Uji lebih banyak kombinasi parameter untuk mencari parameter optimum yang sesuai dengan ciri produk yang berbeza.

  2. Tambah modul stop loss untuk keluar pada kerugian yang terlalu besar.

  3. Menapis isyarat dengan lebih banyak penunjuk.

  4. Membangunkan strategi gabungan jangka panjang-pendek untuk mengesan trend jangka menengah dan panjang, menggunakan perdagangan jangka pendek untuk mengurangkan atau menambah kedudukan di sepanjang trend.

Kesimpulan

Idea menggabungkan dua EMA untuk trend dan AC untuk penapisan bunyi bising adalah bernilai belajar. Strategi ini mempunyai isyarat berkualiti dan kebolehpercayaan, sesuai untuk mengesan produk trend. Dengan penyesuaian parameter yang betul, keuntungan yang besar dapat dicapai dengan menunggang trend menggunakan strategi ini.


/*backtest
start: 2023-01-08 00:00:00
end: 2024-01-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/01/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The Accelerator Oscillator has been developed by Bill Williams 
// as the development of the Awesome Oscillator. It represents the 
// difference between the Awesome Oscillator and the 5-period moving 
// average, and as such it shows the speed of change of the Awesome 
// Oscillator, which can be useful to find trend reversals before the 
// Awesome Oscillator does.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos

AC(nLengthSlow,nLengthFast) =>
    pos = 0.0
    xSMA1_hl2 = ta.sma(hl2, nLengthFast)
    xSMA2_hl2 = ta.sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    xSMA_hl2 = ta.sma(xSMA1_SMA2, nLengthFast)
    nRes =  xSMA1_SMA2 - xSMA_hl2
    cClr = nRes > nRes[1] ? color.blue : color.red
    iff_1 = nRes > 0 ? 1 : nz(pos[1], 0)
    pos := nRes < 0 ? -1 : iff_1           
    pos

strategy(title='Combo 2/20 EMA & Accelerator Oscillator (AC)', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Accelerator Oscillator  ═════●'
nLengthSlow = input(33,  title="Length Slow", group=I2)
nLengthFast = input(6, title="Length Fast", group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)

StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosAC = AC(nLengthSlow,nLengthFast)
iff_1 = posEMA20 == -1 and prePosAC == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosAC == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
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 ? #b50404 : possig == 1 ? #079605 : #0536b3)

Lebih lanjut