Strategi ini menghasilkan isyarat dagangan berdasarkan persilangan antara garis EMA pantas dan garis EMA perlahan. Apabila garis EMA pantas melintasi di atas garis EMA perlahan, isyarat beli dihasilkan. Apabila garis EMA pantas melintasi di bawah garis EMA perlahan, isyarat jual dihasilkan. Strategi ini menggunakan kelebihan purata bergerak untuk mengesan trend pasaran dengan berkesan dan menghasilkan isyarat dagangan semasa permulaan trend.
Garis EMA jangka pendek adalah garis EMA jangka panjang. Garis EMA jangka pendek adalah garis EMA jangka pendek. Garis EMA jangka pendek adalah garis EMA jangka pendek. Garis EMA jangka pendek adalah garis EMA jangka pendek. Garis EMA jangka pendek adalah garis EMA jangka pendek. Garis EMA jangka pendek adalah garis EMA jangka pendek.
Dengan memanfaatkan logik persilangan antara garis EMA yang cepat dan perlahan, strategi ini menangkap titik beralih trend pasaran tepat pada masanya dan menghasilkan isyarat perdagangan dengan sewajarnya. Sementara itu, EMA sendiri mempunyai keupayaan untuk menapis isyarat palsu, mengelakkan perdagangan berlebihan semasa penyatuan pasaran. Ini membolehkan strategi untuk menangkap titik perubahan pasaran sambil mengurangkan perdagangan yang salah, yang membawa kepada keuntungan yang lebih tinggi.
Untuk menangani risiko ini, pengoptimuman boleh diperkenalkan seperti menambah peraturan penapisan, menggabungkan MACD untuk mengelakkan isyarat palsu, menggunakan EMA adaptif untuk mempercepatkan tindak balas dan lain-lain. Juga, mekanisme berhenti rugi dan mengambil keuntungan yang betul diperlukan.
Arah yang berpotensi untuk pengoptimuman lanjut termasuk:
Strategi ini menangkap titik perubahan pasaran yang kritikal melalui logik persilangan garis EMA berganda, menjadikannya berkesan untuk perdagangan langsung. Dengan penapis tambahan, penyokong yang membantu dan pengoptimuman stop loss, kestabilan strategi dapat ditingkatkan lagi. Logik strategi adalah mudah dan bernilai dipelajari untuk peniaga kuant, dengan potensi yang banyak untuk pengembangan dan penambahbaikan.
/*backtest start: 2023-01-15 00:00:00 end: 2024-01-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Backtest single EMA cross", overlay=true) qty = input(100000, "Buy quantity") testStartYear = input(2019, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testStartHour = input(0, "Backtest Start Hour") testStartMin = input(0, "Backtest Start Minute") testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin) testStopYear = input(2099, "Backtest Stop Year") testStopMonth = input(1, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? #00FF00 : na testPeriod() => true ema1 = input(10, title="Select EMA 1") ema2 = input(20, title="Select EMA 2") expo = ema(close, ema1) ma = ema(close, ema2) avg_1 = avg(expo, ma) s2 = cross(expo, ma) ? avg_1 : na //plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0) p1 = plot(expo, color=#00FFFF, linewidth=2, transp=0) p2 = plot(ma, color=color.orange, linewidth=2, transp=0) fill(p1, p2, color=color.white, transp=80) longCondition = crossover(expo, ma) shortCondition = crossunder(expo, ma) if testPeriod() strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition) plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor =#FFFFFF , style=shape.labelup, size = size.normal, location=location.belowbar, color = #1B8112, transp = 0) plotshape(shortCondition, title = "Sell Signal", text ="SELL", textcolor = #FFFFFF, style=shape.labeldown, size = size.normal, location=location.abovebar, color = #FF5733, transp = 0)