
Strategi ini menggunakan indikator EMA, Bollinger Bands dan MACD untuk menentukan masa beli dan jual berdasarkan pencapaian EMA 9 dan 30 dalam bentuk garpu emas.
Hitung EMA 3 hari, EMA 9 hari dan EMA 30 hari.
Hitung perbezaan piawai harga dalam 20 hari dan lukis Bollinger Bands dalam julat perbezaan piawai 1x dan 2x
Hitung MACD pada hari ke-12, ke-26, dan ke-9 pada saluran isyarat.
Apabila EMA pada hari ke-9 melewati EMA pada hari ke-30, dan harga melebihi 1 kali ganda perbezaan standard Bollinger Bands, isyarat beli dikeluarkan.
Apabila EMA 30 hari di bawah EMA 9 hari, dan harga di bawah 1 kali ganda perbezaan standard Bollinger band had bawah, isyarat menjual dikeluarkan.
Strategi ini menggabungkan penunjuk garis rata dan penunjuk momentum untuk lebih memahami trend dan masa pasaran, dengan kelebihan berikut:
Indeks EMA dapat bertindak balas dengan cepat terhadap perubahan harga untuk menilai trend pasaran; Indeks MACD mempunyai kebijaksanaan untuk mencegah penembusan palsu.
Bollinger Bands Standard Deviation Indicator (SDI) yang digabungkan dengan EMA, dapat lebih tepat menentukan masa untuk membeli atau menjual.
Pelbagai kombinasi penunjuk boleh saling melengkapi. Dalam satu kejayaan, penunjuk yang berbeza dapat mengesahkan keputusan.
Strategi ini juga mempunyai beberapa risiko yang perlu diperhatikan dan dioptimumkan:
Kombinasi EMA rata-rata boleh disesuaikan dan dioptimumkan, dan tempoh yang berbeza dapat menangkap trend dengan lebih baik.
Parameter Bollinger Bands boleh dioptimumkan, dan standard perkalian perubahan adalah kurang baik untuk menapis isyarat palsu.
Parameter penunjuk MACD boleh dioptimumkan dan digabungkan, kesan penilaian boleh ditingkatkan.
Strategi ini mengintegrasikan EMA rata-rata indikator untuk menentukan trend besar, ditambah dengan indikator Bollinger Bands dapat dengan tepat menangkap titik jual beli ketika kekuatan lebih besar; Indeks MACD melengkapi pengesahan trend, dapat menyaring isyarat palsu dengan berkesan. Dengan pengoptimuman parameter, strategi ini dapat meningkatkan keberkesanan lebih lanjut.
/*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)