Ini adalah strategi pembalikan berdasarkan crossover rata-rata bergerak sederhana. Ini menggunakan rata-rata bergerak sederhana 1 hari dan 5 hari. Ketika SMA yang lebih pendek melintasi SMA yang lebih panjang, itu akan panjang. Ketika SMA yang lebih pendek melintasi di bawah SMA yang lebih panjang, itu akan pendek. Ini adalah strategi tren berikut yang khas.
Strategi ini menghitung SMA 1 hari (sma1) dan SMA 5 hari (sma5) dari harga penutupan. Ketika sma1 melintasi sma5, ia memasuki posisi panjang. Ketika sma1 melintasi di bawah sma5, ia memasuki posisi pendek. Setelah membuka posisi panjang, stop loss ditetapkan pada 5 USD di bawah harga masuk dan mengambil keuntungan pada 150 USD di atas. Untuk posisi pendek, stop loss adalah 5 USD di atas entri dan mengambil keuntungan 150 USD di bawah.
Strategi SMA ganda sederhana ini mudah dipahami dan diimplementasikan untuk verifikasi strategi yang cepat. Namun memiliki toleransi risiko dan potensi keuntungan yang terbatas. Optimasi lebih lanjut diperlukan dalam parameter dan filter untuk menyesuaikan lebih banyak kondisi pasar. Sebagai strategi kuantitas awal, ini berisi blok bangunan dasar untuk perbaikan yang dapat diulang.
/*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)