
Strategi ini dinamakan Trend Following with EMA, iaitu strategi dagangan kuantitatif berdasarkan trend dan garis rata. Ia menggabungkan trend dan indeks bergerak rata-rata (EMA), dua petunjuk teknikal, untuk mengenal pasti trend harga saham atau produk kewangan lain, dan berdasarkan itu melakukan pembelian dan penjualan.
Logik utama strategi ini ialah:
Menggunakan titik rendah dengan panjang 180 kitaran dan persilangan harga penutupan untuk menentukan trend kenaikan harga. Apabila titik rendah melintasi harga penutupan, menunjukkan harga mula naik, membentuk trend, dan pada masa ini melakukan lebih banyak;
Apabila harga bertukar dari turun ke naik, iaitu di atas harga penutupan dan di bawah garis EMA, anda juga melakukan lebih banyak;
Apabila harga bertukar dari trend naik ke trend turun, iaitu apabila harga penutupan menembusi harga pembukaan;
Menggunakan puncak dengan panjang 180 kitaran dan persilangan EMA untuk menentukan trend penurunan harga. Apabila puncak melintasi garis EMA dan puncak berada di bawah garis EMA, kosongkan;
Apabila harga beralih dari trend menaik ke trend menurun, iaitu melalui harga bukaan di bawah harga penutupan, dan di atas garis EMA, juga kosong;
Apabila harga bertukar dari trend menurun ke trend menaik, iaitu apabila harga penutupan menembusi harga pembukaan, tutup kedudukan kosong.
Strategi ini menggabungkan trend tracking dan penunjuk rata-rata untuk menangkap titik-titik perubahan dalam trend harga dengan kelebihan berikut:
Strategi ini juga mempunyai risiko:
Penyelesaian untuk menghadapi risiko adalah:
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi ini secara keseluruhannya adalah strategi pengesanan trend yang tipikal, menggunakan arah penunjuk ciri harga itu sendiri untuk menentukan arah dan mengikuti trend. Ia mudah, berkesan, mudah dilaksanakan, dan sesuai sebagai strategi permulaan untuk perdagangan kuantitatif. Tetapi ada juga beberapa masalah, seperti ketinggalan indikator, kepekaan parameter, dan sebagainya.
/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Trend + EMA", overlay=true, initial_capital=10000, currency=currency.USD, pyramiding=0)
tim=input("180", title="Period for trend")
ema_period=input(180, title="EMA period")
opn = request.security(syminfo.tickerid, tim, open)
cls = request.security(syminfo.tickerid, tim, close)
emaline = ema(close, ema_period)
plot(opn, color=red)
plot(cls, color=green)
plot(emaline, color=black)
if (crossover(low, emaline))
strategy.entry("long", strategy.long)
if (crossover(cls, opn) and emaline < opn and strategy.position_size == 0)
strategy.entry("long", strategy.long)
if (crossunder(cls, opn) and strategy.position_size > 0)
strategy.close_all()
if (crossunder(high, emaline) and high < emaline)
strategy.entry("short", strategy.short)
if (crossunder(cls, opn) and emaline > opn and strategy.position_size == 0)
strategy.entry("short", strategy.short)
if (crossover(cls, opn) and strategy.position_size < 0)
strategy.close_all()