Strategi ini secara komprehensif menggunakan penunjuk EMA, penunjuk Bollinger Bands dan penunjuk MACD.
Mengira EMA 3 hari, EMA 9 hari dan EMA 30 hari.
Mengira penyimpangan standard dalam tempoh 20 hari dari harga dan menarik Bollinger Bands dengan 1 dan 2 kali penyimpangan standard.
Mengira garis isyarat 12 hari, 26 hari dan 9 hari.
Apabila EMA 9 hari melebihi EMA 30 hari, dan harga melebihi had atas 1x Band Bollinger deviasi standard, isyarat beli dikeluarkan.
Apabila EMA 30 hari berada di bawah EMA 9 hari, dan harga lebih rendah daripada had bawah Bollinger Bands 1x penyimpangan standard, isyarat jual dikeluarkan.
Dengan menggabungkan penunjuk purata bergerak dan penunjuk momentum, strategi ini dapat memahami lebih baik trend pasaran dan masa, dengan kelebihan berikut:
Indikator EMA boleh bertindak balas dengan cepat terhadap perubahan harga untuk menentukan trend pasaran; Indikator MACD menilai momentum untuk mengelakkan pecah palsu.
Gabungan penunjuk deviasi piawai Bollinger Bands dan EMA dapat menentukan masa pembelian dan penjualan dengan lebih tepat.
Gabungan beberapa penunjuk boleh melengkapi satu sama lain.
Strategi ini juga mempunyai beberapa risiko. Perhatikan perkara berikut untuk pengoptimuman:
Gabungan purata bergerak EMA boleh diselaraskan dan dioptimumkan. Kitaran yang berbeza dapat menangkap trend dengan lebih baik.
Parameter Bollinger Bands boleh dioptimumkan dengan mengubah perkalian penyimpangan standard untuk menapis isyarat palsu.
Parameter dan kombinasi penunjuk MACD boleh dioptimumkan untuk meningkatkan kesan menilai momentum.
Strategi ini mengintegrasikan penunjuk EMA untuk menentukan trend utama, ditambah dengan penunjuk Bollinger Bands yang dapat dengan tepat merebut titik beli dan jual apabila momentum agak besar; penunjuk MACD melengkapkan pengesahan trend dan dapat menapis isyarat palsu dengan berkesan. Melalui pengoptimuman parameter, kesan strategi ini dapat ditingkatkan lagi.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("emabb_collab", shorttitle="emabb", overlay=true) // Input parameters ema3 = input(3, title="3 EMA") ema9 = input(9, title="9 EMA") ema30 = input(30, title="30 EMA") macdShort = input(12, title="MACD Short") macdLong = input(26, title="MACD Long") macdSignal = input(9, title="MACD Signal") length = input.int(20, minval=1) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") basis = ta.sma(src, length) dev1 = mult * ta.stdev(src, length) upper1 = basis + dev1 lower1 = basis - dev1 dev2 = mult * 2 * ta.stdev(src, length) upper2 = basis + dev2 lower2 = basis - dev2 plot(basis, "Basis", color=#FF6D00) p1 = plot(upper1, "Upper1", color=#2962FF) p2 = plot(lower1, "Lower1", color=#2962FF) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) plot(basis, "Basis", color=#FF6D00) p3 = plot(upper2, "Upper2", color=#00FF8C) p4 = plot(lower2, "Lower2", color=#00FF8C) fill(p3, p4, title = "Background", color=color.rgb(0, 153, 140, 95)) // Calculate EMAs ema3Value = ta.ema(close, ema3) ema9Value = ta.ema(close, ema9) ema30Value = ta.ema(close, ema30) // Calculate MACD [macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal) // Conditions for buy signal buyCondition = ta.crossover(ema9Value, ema30Value) and ta.stdev(close, 20) > ta.stdev(close, 20)[1] //Conditions for sell signal sellCondition = ta.crossover(ema30Value, ema9Value) and ta.stdev(close, 20) < ta.stdev(close, 20)[1] // Plot signals on the chart plotshape(buyCondition, title='Buy Label', style=shape.triangleup, location=location.belowbar, size=size.normal, text='Buy', textcolor=color.new(color.white, 0), color=color.new(color.green, 0)) plotshape(sellCondition, title='sell Label', style=shape.triangledown, location=location.abovebar, size=size.normal, text='sell', textcolor=color.new(color.white, 0), color=color.new(color.red, 0)) // Plot EMAs plot(ema3Value, title="3 EMA", color=color.orange) plot(ema9Value, title="9 EMA", color=color.purple) plot(ema30Value, title="30 EMA", color=color.red) if buyCondition strategy.entry('Long', strategy.long) if sellCondition strategy.entry('Short', strategy.short)