
Strategi ini menghasilkan isyarat beli apabila rata-rata yang lebih pendek melintasi rata-rata yang lebih panjang dari bawah; menghasilkan isyarat jual apabila rata-rata yang lebih pendek melintasi rata-rata yang lebih panjang dari atas ke bawah.
Strategi ini menilai pergerakan pasaran dengan membandingkan hubungan antara dua garis rata yang berbeza. Khususnya, jenis dan panjang dua garis rata ditetapkan melalui parameter input. Garis rata pertama yang lebih panjang mewakili trend jangka panjang; Garis rata kedua yang lebih pendek mewakili trend jangka pendek semasa.
Apabila garis purata jangka pendek dari bawah melintasi garis purata jangka panjang, ia mewakili kecenderungan jangka pendek menjadi kuat, dan harga masuk ke arah kenaikan, dan oleh itu menghantar isyarat beli di titik persilangan ini. Sebaliknya, apabila garis purata jangka pendek melintasi garis purata jangka panjang dari atas, ia mewakili kecenderungan jangka pendek menjadi lemah, dan harga masuk ke arah penurunan, dan oleh itu menghantar isyarat jual di titik persilangan ini.
Berdagang mengikut trend pasaran melalui penilaian silang linear seperti ini.
Penyelesaian risiko:
Strategi ini adalah berdasarkan kepada pemikiran klasik mengenai trend utama penilaian persilangan garis rata, aplikasi fleksibel melalui kombinasi garis rata yang berbeza. Logik strategi mudah, mudah dilaksanakan, sesuai untuk perdagangan automatik. Secara keseluruhan, strategi ini mempunyai beberapa kegunaan, tetapi terdapat ruang untuk beberapa penambahbaikan dan pengoptimuman.
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy", overlay=true)
src = input(close, title="Source")
price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"])
ma2 = input(7, title="2nd MA Length")
type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA", "VWMA"])
f_hma(_src, _length)=>
_return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))
price1 = if (type1 == "SMA")
sma(price, ma1)
else
if (type1 == "EMA")
ema(price, ma1)
else
if (type1 == "VWMA")
vwma(price, ma1)
else
f_hma(price, ma1)
price2 = if (type2 == "SMA")
sma(price, ma2)
else
if (type2 == "EMA")
ema(price, ma2)
else
if (type2 == "VWMA")
vwma(price, ma2)
else
f_hma(price, ma2)
//plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)
longCondition = crossover(price1, price2)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = crossunder(price1, price2)
if (shortCondition)
strategy.entry("Short", strategy.short)