
Strategi ini adalah strategi inversi lintas rata-rata yang didasarkan pada rata-rata bergerak sederhana. Ini menggunakan rata-rata bergerak sederhana dengan panjang 1 dan panjang 5, yang lebih banyak ketika rata-rata bergerak periode pendek melintasi rata-rata bergerak periode panjang dari bawah, dan kosong ketika melintasi dari atas ke bawah.
Strategi ini menggunakan perhitungan close price 1 day simple moving average sma1 dan 5 day simple moving average sma5, melakukan over entry saat memakai sma5 di atas sma1 dan short entry saat memakai sma5 di bawah sma1 . Set stop loss setelah over entry \( 5 di bawah harga masuk dan stop loss \) 150 di atas harga masuk; set stop loss setelah short entry \( 5 di atas harga masuk dan stop loss \) 150 di bawah harga masuk .
Cara Mengoptimalkan:
Strategi ini merupakan strategi sederhana yang sederhana dan mudah diimplementasikan, dapat dengan cepat memverifikasi ide strategi. Namun, kapasitas dan ruang keuntungan yang relatif terbatas, perlu untuk mengoptimalkan parameter dan kondisi penyaringan, sehingga dapat beradaptasi dengan lebih banyak lingkungan pasar. Sebagai strategi kuantitatif pertama bagi pemula, ini berisi komponen dasar, dapat diperbaiki sebagai kerangka kerja sederhana.
/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-19 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Valeria 181 Bot Strategy Mejorado 2.21", overlay=true, margin_long=100, margin_short=100)
var float lastLongOrderPrice = na
var float lastShortOrderPrice = na
longCondition = ta.crossover(ta.sma(close, 1), ta.sma(close, 5))
if (longCondition)
strategy.entry("Long Entry", strategy.long) // Enter long
shortCondition = ta.crossunder(ta.sma(close, 1), ta.sma(close, 5))
if (shortCondition)
strategy.entry("Short Entry", strategy.short) // Enter short
if (longCondition)
lastLongOrderPrice := close
if (shortCondition)
lastShortOrderPrice := close
// Calculate stop loss and take profit based on the last executed order's price
stopLossLong = lastLongOrderPrice - 5 // 10 USDT lower than the last long order price
takeProfitLong = lastLongOrderPrice + 151 // 100 USDT higher than the last long order price
stopLossShort = lastShortOrderPrice + 5 // 10 USDT higher than the last short order price
takeProfitShort = lastShortOrderPrice - 150 // 100 USDT lower than the last short order price
// Apply stop loss and take profit to long positions
strategy.exit("Long Exit", from_entry="Long Entry", stop=stopLossLong, limit=takeProfitLong)
// Apply stop loss and take profit to short positions
strategy.exit("Short Exit", from_entry="Short Entry", stop=stopLossShort, limit=takeProfitShort)