
Artikel ini membentangkan strategi perdagangan kuantitatif berdasarkan titik simpang rata-rata bergerak indeks ((EMA)) dalam tiga kitaran yang berbeza. Strategi ini bertujuan untuk menggunakan titik simpang EMA untuk mengenal pasti trend jangka panjang dan jangka pendek di pasaran saham dan membuat keputusan perdagangan yang berkesan.
Strategi ini menggunakan tiga kitaran EMA yang berbeza: 10 hari, 100 hari dan 200 hari. Apabila EMA jangka pendek ((10 hari) melintasi EMA jangka panjang ((100 hari atau 200 hari), ia menghasilkan isyarat membeli atau menjual mengikut arah melintasi. Strategi ini juga menggabungkan penapis masa yang memastikan perdagangan hanya dilakukan dalam tempoh masa tertentu. Kombinasi ini meningkatkan fleksibiliti dan kesesuaian strategi.
Kelebihan strategi ini adalah kesederhanaan dan kebolehpasaran yang tinggi. EMA berkala menyediakan pandangan pelbagai sudut mengenai trend pasaran, meningkatkan ketepatan keputusan perdagangan. Sementara itu, penapis masa mengelakkan ketidakstabilan pasaran pada tempoh tertentu, mengurangkan risiko yang berpotensi.
Walaupun strategi ini berkesan, terdapat risiko tertentu. Risiko utama adalah peristiwa kejutan pasaran yang boleh menyebabkan strategi gagal. Selain itu, indikator EMA mungkin mempunyai keterlambatan dan kelewatan yang mencerminkan perubahan pasaran.
Arah pengoptimuman strategi merangkumi penggunaan bersepadu pelbagai petunjuk teknikal, seperti RSI (Relative Strength Index) dan Bollinger Bands, untuk meningkatkan kedalaman dan keluasan analisis pasaran. Selain itu, lebih baik menyesuaikan diri dengan keadaan pasaran yang berbeza dengan menyesuaikan kitaran EMA.
Secara keseluruhannya, strategi perdagangan kuantitatif EMA lintas-siklus ini adalah alat yang cekap untuk membantu peniaga membuat keputusan yang lebih baik dalam pasaran yang berubah-ubah. Dengan terus mengoptimumkan dan menyesuaikan diri dengan perubahan pasaran, strategi ini berpotensi untuk menghasilkan keuntungan yang lebih tinggi dalam perdagangan masa depan.
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
start = timestamp(2023,1,1,0,0)
end = timestamp(2024,1,1,0,0)
strategy("Tester Emas", overlay = true)
periodo1 = input(10,"Periodo_1")
periodo2 = input(100,"Periodo_2")
periodo3 = input(200,"Periodo_3")
//definir media moviles
ema1 = ta.ema(close,periodo1)
ema2 = ta.ema(close,periodo2)
ema3 = ta.ema(close,periodo3)
//Desde
desde_a = input(2000, title = "Desde año")
desde_m = input.int( 1, title = "Desde mes", minval=1, maxval = 12)
desde_d = input.int( 1, title = "Desde dia", minval=1, maxval = 31)
//Hasta
hasta_a = input(2030, title = "Hasta año")
hasta_m = input.int( 1, title = "Hasta mes", minval=1, maxval = 12)
hasta_d = input.int( 1, title = "Hasta dia", minval=1, maxval = 31)
FechaValida() => true
//Condicion de entradas
longCondition = ta.crossover(ema1, ema2)
shortCondition = ta.crossunder(ema1,ema2)
alcista = (ema1 > ema2) and (ema2 > ema3)
comprado =strategy.position_size > 0
//Comprar o vender segun las condiciones de entradas
//if (longCondition)
if (not comprado and alcista and FechaValida())
// Round redondea mi capital para comprar las acciones en cantidades enteras
cantidad = math.round(strategy.equity/ close)
strategy.entry("Compra", strategy.long, cantidad)
//if (shortCondition)
if (comprado and not alcista and FechaValida())
//strategy.entry("Venta", strategy.short)
strategy.close("Compra" , comment = "Venta")
if (comprado and not FechaValida())
//Cierre x finalizacion de periodo
//strategy.entry("Venta", strategy.short)
strategy.close("Compra" , comment = "Venta x fin")
//Graficar las medias moviles
plot(ema1, color = color.green, title = "Ema1")
plot(ema2, color = color.yellow, title = "Ema2")
plot(ema3, color = color.red, title = "Ema2")
//GMarca los cruces de medias
bgcolor(longCondition ? color.green : na)
bgcolor(shortCondition ? color.red : na)