Strategi EMA berbilang indikator adalah strategi untuk mengesan trend yang menggunakan pelbagai indikator seperti EMA, MACD, Oscillator, RSI, Stochastic, dan Bollinger Bands. Strategi ini menghasilkan isyarat membeli dan menjual dengan mengira isyarat gabungan pelbagai indikator untuk menentukan sama ada ia sedang dalam trend naik atau turun.
Strategi ini bermula dengan mengira beberapa indikator berikut:
EMA: Mengira purata bergerak indeks untuk tempoh tertentu.
MACD: mengira garis DIF dan garis DEA untuk penunjuk MACD.
Oscillator: mengira perbezaan antara harga penutupan dan harga pembukaan dalam satu kitaran.
RSI: Indeks kekuatan dan kelemahan relatif untuk satu kitaran.
Stochastic: mengira nilai K dan D penunjuk rawak untuk parameter tertentu
Bollinger Bands: Bollinger Bands yang dikira untuk jangka masa tertentu.
Kemudian, nilai-nilai yang berbeza diberikan kepada indikator-indikator ini berdasarkan keadaan semasa mereka. Sebagai contoh, apabila Stochastic kurang daripada 20, nilai diberikan kepada 2; apabila RSI lebih besar daripada 80, nilai diberikan kepada -2.
Kemudian nilai semua indikator dijumlahkan untuk menghasilkan satu trigger gabungan. Jika trigger lebih besar daripada 7, ia akan menghasilkan isyarat beli; jika trigger lebih kecil daripada 7, ia akan menghasilkan isyarat jual.
Dengan mengira isyarat komposit dari pelbagai petunjuk, arah trend semasa dapat dipastikan dengan lebih tepat, menghasilkan isyarat perdagangan yang lebih dipercayai.
Kelebihan utama strategi pelbagai petunjuk ini adalah bahawa ia dapat menggabungkan kelebihan beberapa petunjuk untuk membuat keputusan yang lebih menyeluruh dan tepat, dan mengelakkan isyarat salah yang disebabkan oleh satu petunjuk.
Secara khusus, kelebihan strategi ini adalah:
Menggunakan pelbagai petunjuk secara komprehensif, penilaian trend lebih dipercayai. Satu petunjuk mungkin menghasilkan isyarat yang menyesatkan, dan pelbagai petunjuk dapat saling mengesahkan, mengurangkan kesilapan.
Menggunakan ciri-ciri yang berbeza dari penunjuk, mengenal pasti tahap yang berbeza dalam trend. Sebagai contoh, MACD dapat mengenal pasti permulaan trend, RSI dapat menentukan apakah terlalu panas dan sebagainya.
Penunjuk dengan set parameter yang berbeza dapat menangkap ciri-ciri kitaran yang berbeza. Sebagai contoh, EMA kitaran cepat dan EMA kitaran perlahan.
Anda boleh menyesuaikan berat setiap indikator. Untuk indikator yang lebih penting, anda boleh memberikan berat yang lebih tinggi.
Anda boleh mengoptimumkan kombinasi dan peruntukan berat berdasarkan hasil backtest untuk mendapatkan kesan strategi yang lebih baik.
Walaupun strategi ini menggunakan pelbagai indikator untuk menilai trend, terdapat risiko berikut:
Kombinasi pelbagai indikator tidak sesuai, tidak dapat memanfaatkan kelebihan masing-masing indikator, atau menimbulkan konflik penilaian. Perlu memahami konteks penerapan setiap indikator.
Peruntukan berat tidak munasabah, tidak dapat menyatakan dengan tepat kepentingan setiap petunjuk. Berat perlu dioptimumkan melalui ujian berulang.
Tetapan parameter satu kitaran mungkin tidak sesuai, anda harus menggunakan pengesahan kitaran masa berbilang.
Berat dan parameter penunjuk tetap tidak dapat menyesuaikan diri dengan perubahan pasaran, dan mekanisme penyesuaian dinamik perlu diperkenalkan.
Isyarat penunjuk berada di belakang masa, dan ia harus digabungkan dengan kaedah teknikal lain untuk menentukan masa berhenti.
Kombinasi pelbagai indikator menambah kerumitan strategi, memerlukan sokongan data sejarah yang mencukupi, dan parameter yang lebih sukar untuk disesuaikan.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Uji lebih banyak jenis penunjuk untuk mencari penunjuk yang lebih sensitif terhadap keadaan pasaran semasa.
Mengoptimumkan parameter kitaran bagi setiap penunjuk untuk menangkap ciri-ciri trend pada tahap yang berbeza.
Mengoptimumkan peruntukan berat bagi setiap petunjuk untuk memberi gambaran yang lebih tepat mengenai kepentingan relatif setiap petunjuk.
Menambah mekanisme penyesuaian dinamik, parameter dan berat optimum dalam masa nyata, menyesuaikan diri dengan perubahan pasaran.
Menggabungkan strategi hentikan kerugian, menetapkan titik hentikan yang munasabah untuk mengurangkan risiko kerugian.
Menambah pengesahan kitaran masa berbilang untuk mengelakkan pengoptimuman yang berlebihan dalam satu kitaran.
Menggunakan kaedah pengoptimuman langkah demi langkah dan pengoptimuman kombinasi untuk mencari kombinasi parameter yang optimum.
Menambah kaedah canggih seperti pembelajaran mesin untuk penyesuaian berat indikator yang lebih pintar.
Mengoptimumkan strategi untuk membeli dan menjual logik, dan mengelakkan terlalu sering berdagang, sambil menjejaki pergerakan.
Strategi EMA pelbagai indikator menggunakan kelebihan pelbagai indikator seperti EMA, MACD, RSI untuk menilai arah trend pasaran semasa untuk menghasilkan isyarat perdagangan. Berbanding dengan strategi satu indikator, strategi ini dapat menganalisis pasaran secara lebih menyeluruh dan mengurangkan penciptaan isyarat yang salah.
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ally17
//@version=4
// strategy("ELIA MULTI STRATEGY",overlay=true,initial_capital=1000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.00, default_qty_value=25)
//INPUT
start = timestamp(input(2021, "start year"), 1, 1, 00, 00)
end = timestamp(input(9999, "end year"), 1, 1, 00, 00)
emalen=input(80, title="Ema Len")
macdfast=input(12, title="Macd Fast Len")
macdslow=input(26, title="Macd Fast Len")
macdsig=input(12, title="Macd Signal Len")
occlen=input(15, title="Occ Len")
rsilen=input(2, title="Rsi Len")
stochklen=input(11, title="Stk K Len")
stochdlen=input(3, title="Stk D Len")
stochlen=input(3, title="Stk Smooth Len")
bblength = input(10, minval=1, title="BB Len")
mult = input(2.0, minval=0.001, maxval=50, title="BB Std Dev")
momlen=input(10, title="Mom Len")
//CALCOLI
var trigger = 0.0
var emavar = 0.0
var macdvar = 0.0
var occvar = 0.0
var rsivar = 0.0
var stochvar = 0.0
var bbvar = 0.0
var donvar =0.0
ema = ema(close,emalen)
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9) // MACD
occ = ema(close,occlen) - ema(open,occlen)
rsi = rsi(close, rsilen) // RSI
stoch = sma(stoch(close, high, low, stochklen), stochlen) // Stoch
basis = sma(close, bblength)
dev = mult * stdev(close, bblength)
upper = basis + dev
lower = basis - dev
moment = mom(close, momlen) // Momentum
Obv = obv // OBV
//PLOT
//STRATEGIA
emavar := (close>ema)? 3 : -3
macdvar := (macdLine>signalLine)? 3 : -3
occvar := (occ>0)? 3 : -3
rsivar := (rsi<20)? 2 : (rsi>50 and rsi<80)? 1 : (rsi>80)? -2 : (rsi<50 and rsi>20)? -1 : 0
stochvar := (stoch<20)? 2 : (stoch>80)? -2 : 0
bbvar := (close<lower)? 2 : (close>upper)? -2 : 0
trigger := emavar+macdvar+occvar+rsivar+stochvar+bbvar
longcondition = trigger>=7
closelong = trigger<3
shortcondition = trigger<=-7
closeshort = trigger >-3
trendcolor = longcondition ? color.green : shortcondition? color.red : (trigger>3 and trigger<7)? #A2E1BF : (trigger<-3 and trigger>-7)? #E19997 : na
bgcolor(trendcolor, transp=80)
if time > start and time < end
if longcondition
strategy.entry("LONG", long=strategy.long)
if closelong
strategy.close("LONG", comment="CLOSE LONG")
if time > start and time < end
if shortcondition
strategy.entry("SHORT", long=strategy.short)
if closeshort
strategy.close("SHORT", comment="CLOSE SHORT")
//plotshape(longcondition, color=color.green, text="L", size=size.small, style=shape.triangledown)
//plotshape(shortcondition, color=color.red, "S"(trigger), size=size.small, style=shape.triangledown)
//plotshape(closelong, color=color.purple, text="LC", size=size.small, style=shape.triangledown)
//plotshape(closeshort, color=color.purple, text="SC", size=size.small, style=shape.triangledown)