
Strategi ini menghasilkan sinyal beli ketika rata-rata yang lebih pendek melewati rata-rata yang lebih panjang dari bawah; menghasilkan sinyal jual ketika rata-rata yang lebih pendek melewati rata-rata yang lebih panjang dari atas ke bawah.
Strategi ini menilai tren pasar terutama dengan membandingkan hubungan antara dua garis rata yang berbeda. Secara khusus, jenis dan panjang dua garis rata diatur dengan parameter masukan. Yang pertama adalah panjang rata-rata, yang mewakili tren jangka panjang; yang kedua adalah panjang rata-rata, yang mewakili tren jangka pendek saat ini.
Ketika garis rata-rata pendek dari bawah melintasi garis rata-rata panjang, berarti tren jangka pendek menjadi kuat, dan harga masuk ke tren naik, dan karenanya mengirim sinyal beli di titik persimpangan ini. Sebaliknya, ketika garis rata-rata pendek melintasi garis rata-rata panjang dari atas, berarti tren jangka pendek menjadi lemah, dan harga masuk ke tren turun, dan karenanya mengirim sinyal jual di titik persimpangan ini.
Pertimbangan ini dapat digunakan untuk mengikuti tren pasar.
Solusi untuk Mengatasi Risiko:
Strategi ini didasarkan pada pemikiran klasik untuk menilai tren utama yang bersilang, dengan aplikasi yang fleksibel melalui kombinasi garis yang sama. Logika strategi sederhana, mudah diimplementasikan, cocok untuk perdagangan otomatis. Secara keseluruhan, strategi ini memiliki beberapa kepraktisan, tetapi ada juga beberapa ruang untuk perbaikan dan pengoptimalan.
/*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)