
Strategi ini menggunakan dua rata-rata bergerak, salah satunya adalah rata-rata bergerak cepat, dan yang lainnya adalah rata-rata bergerak lambat. Ketika rata-rata bergerak cepat melewati rata-rata bergerak lambat dari atas ke bawah, disebut “persaingan emas”, yang menunjukkan kemungkinan tren naik terbentuk, dan pada saat itu lebih banyak posisi dibuka. Ketika rata-rata bergerak cepat melewati rata-rata bergerak lambat dari atas ke bawah, disebut “persaingan mati”, yang menunjukkan kemungkinan tren turun terbentuk, dan pada saat itu posisi dibuka kosong.
Inti dari strategi ini adalah memanfaatkan karakteristik tren dan sinyal silang dari moving average untuk menentukan arah tren dan waktu untuk membuka posisi. Pertama, dengan parameter yang ditetapkan untuk periode dengan fast moving average (default 50) dan slow moving average (default 200), dan pilihan untuk menggunakan SMA atau EMA. Kemudian menghitung dua moving average untuk menentukan persimpangan mereka:
Strategi crossover linier ganda adalah strategi pelacakan tren klasik yang sederhana, untuk menilai arah tren dan waktu pembukaan posisi yang tepat untuk menangkap tren jangka menengah dan panjang melalui persilangan dua rata-rata bergerak periode yang berbeda. Namun, parameter tetap mungkin menunjukkan ketidakstabilan dalam lingkungan pasar yang berubah, dan perlu perbaikan lebih lanjut, seperti parameter optimasi, perbaikan stop loss, pengenalan sinyal, dll., Untuk menjadi strategi perdagangan yang relatif stabil.
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//==============================================================================
// A baseline strategy with a well known concept, golden cross & death cross.
// Support for both Simple & Exponential moving averages.
// Support for long & short stop losses as a percentage.:well
//==============================================================================
strategy("Basic Moving Average Crosses", overlay=true)
//------------------------------------------------------------------------------
// configuration
//------------------------------------------------------------------------------
maQuickLength = input(50, title="Quick MA Length")
maSlowLength = input(200, title="Quick MA Length")
useSma = input(true, title="Use SMA? If false, EMA is used.")
maQuick = useSma ? ta.sma(close, maQuickLength) : ta.ema(close, maQuickLength)
maSlow = useSma ? ta.sma(close, maSlowLength) : ta.ema(close, maSlowLength)
stop_loss_percentage = input(2.0, title="Stop Loss (%)")
var float longStopLevel = na
var float shortStopLevel = na
bool isGoldenCross = ta.crossover(maQuick, maSlow)
bool isDeathCross = ta.crossunder(maQuick, maSlow)
//------------------------------------------------------------------------------
// position opening logic
//------------------------------------------------------------------------------
if(strategy.position_size == 0)
// Golden cross, enter a long position
if(isGoldenCross)
strategy.entry("Buy", strategy.long)
longStopLevel := close - close * stop_loss_percentage/100.0
strategy.exit("StopLossLong", "Buy", stop=longStopLevel)
// Death cross, enter short position
else if(isDeathCross)
strategy.entry("Sell", strategy.short)
shortStopLevel := close + close * stop_loss_percentage/100.0
strategy.exit("StopLossShort", "Sell", stop=shortStopLevel)
//------------------------------------------------------------------------------
// position closing logic
//------------------------------------------------------------------------------
else
// Close long position on death cross
if(strategy.position_size > 0 and isDeathCross)
strategy.close("Buy")
// Close short position on golden cross
else if(strategy.position_size < 0 and isGoldenCross)
strategy.close("Sell")
//------------------------------------------------------------------------------
// ploting
//------------------------------------------------------------------------------
plot(maQuick, color=color.yellow)
plot(maSlow, color=color.blue)