
Strategi ini menggunakan pengiraan pelbagai jenis purata bergerak untuk menentukan arah trend harga dan untuk membuka posisi satu sisi. Apabila harga melampaui purata bergerak, anda boleh membuka lebih banyak atau lebih sedikit.
Strategi ini membolehkan pilihan 7 jenis purata bergerak yang berbeza, termasuk purata bergerak sederhana (SMA), purata bergerak indeks (EMA), purata bergerak bertimbangan kuantiti (VWMA), purata bergerak dua indeks (DEMA), purata bergerak tiga indeks (TEMA), purata bergerak Kaufman beradaptasi (KAMA) dan garis tengah saluran harga. Arah trend harga ditentukan dengan mengira hubungan purata bergerak yang dipilih dan harga yang ditutup.
Apabila harga penutupan menembusi purata bergerak dari bawah ke atas, dinilai sebagai kenaikan harga, buka lebih banyak; apabila harga penutupan menembusi purata bergerak dari atas ke bawah, dinilai sebagai penurunan, buka kosong. Dengan cara ini, anda dapat menangkap titik perubahan trend harga, dan membuka posisi satu sisi.
Strategi ini mempunyai kelebihan berikut:
Pelbagai jenis purata bergerak boleh dipilih, fleksibel untuk pelbagai jenis dan tempoh.
Ia adalah salah satu cara yang paling berkesan untuk mengawal risiko.
“Saya tidak tahu apa-apa tentang apa yang berlaku di Malaysia.
Mudah difahami dan dilaksanakan.
Strategi ini mempunyai beberapa risiko:
Apabila harga bergoyang berhampiran dengan purata bergerak, terdapat banyak isyarat salah dan pembukaan kedudukan terbalik. Anda boleh menetapkan hentian yang sesuai untuk mengawal risiko.
Tidak dapat sepenuhnya mengelakkan risiko kenaikan atau penurunan harga yang cepat. Ia boleh digabungkan dengan petunjuk lain untuk menentukan isyarat trend.
Penganalisis perlu memilih parameter purata bergerak yang sesuai, parameter yang tidak sesuai mudah menyebabkan kelewatan isyarat perdagangan.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Gabungan dengan petunjuk teknikal lain untuk menentukan isyarat trend, seperti MACD, RSI dan lain-lain, membentuk portfolio perdagangan.
Tambah logik hentian. Hentian bergerak atau hentian tunggal.
Untuk menguji dan mengoptimumkan parameter, pilih kombinasi parameter terbaik. Parameter seperti kitaran purata bergerak, jenis purata bergerak, dan sebagainya.
Anda boleh mempertimbangkan strategi masuk dalam jenis dagangan segera untuk menjejaki aliran.
Strategi ini berdasarkan pada purata bergerak untuk menentukan arah trend harga, untuk mewujudkan kedudukan terbuka satu sisi. Penggunaannya mudah, mudah dilaksanakan, dapat mengawal risiko dengan berkesan. Tetapi juga mungkin terdapat isyarat yang salah dan risiko pembukaan kedudukan terbalik.
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = "Noro's MAs Tests v1.1", shorttitle = "MAs tests 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
needlong = input(true, "long")
needshort = input(true, "short")
len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length")
type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type")
src = input(close, defval = close, title = "Source")
anti = input(true, defval = true, title = "Antipila")
//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)
//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3
//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
kama = nz(kama[1]) + nsmooth * (src - nz(kama[1]))
//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2
ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0
plot(ma, color = blue, linewidth = 3, transp = 0)
trend = anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1]
longCondition = trend == 1 and trend[1] == -1
if (longCondition)
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
shortCondition = trend == -1 and trend[1] == 1
if (shortCondition)
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)