
Ini adalah strategi perdagangan kuantitatif yang didasarkan pada crossover dua rasio rata-rata yang digabungkan dengan indikator RSI, sekaligus mengintegrasikan mekanisme stop loss yang dinamis. Strategi ini menggunakan rata-rata pergerakan indeks 9 periode dan 21 periode (EMA) sebagai indikator penilaian tren utama, dengan indeks relatif kuat (RSI) sebagai kondisi penyaringan, untuk mengelola risiko dan keuntungan dengan menetapkan stop loss yang dinamis.
Strategi ini menggunakan persilangan EMA cepat (siklus 9) dan EMA lambat (siklus 21) untuk menangkap perubahan tren. Bila garis cepat naik melewati garis lambat dan RSI di bawah 70, buka posisi multihead; Bila garis cepat turun melewati garis lambat dan RSI di atas 30, buka posisi kosong.
Ini adalah strategi perdagangan kuantitatif dengan struktur yang jelas dan logika yang ketat. Strategi ini dapat meningkatkan stabilitas dan profitabilitas strategi dengan arah optimasi yang disarankan. Strategi ini cocok untuk kerangka kerja yang berbasis pada kerja sama, yang dioptimalkan sesuai dengan varietas perdagangan dan situasi pasar tertentu.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estrategia BTC/USDT - Ajustada", overlay=true)
// Definición de las EMAs
emaRapida = ta.ema(close, 9)
emaLenta = ta.ema(close, 21)
// Cálculo del RSI
rsi = ta.rsi(close, 14)
// Condiciones de compra y venta
longCondition = ta.crossover(emaRapida, emaLenta) and rsi < 70
shortCondition = ta.crossunder(emaRapida, emaLenta) and rsi > 30
// Ajustes de Take Profit y Stop Loss
takeProfitLong = close * 1.015 // Take Profit del 1.5% para Long
stopLossLong = close * 0.99 // Stop Loss del 1% para Long
takeProfitShort = close * 0.985 // Take Profit del 1.5% para Short
stopLossShort = close * 1.01 // Stop Loss del 1% para Short
// Ejecución de la estrategia
if (longCondition)
strategy.entry("Compra", strategy.long)
strategy.exit("Take Profit Long", "Compra", limit=takeProfitLong, stop=stopLossLong)
if (shortCondition)
strategy.entry("Venta", strategy.short)
strategy.exit("Take Profit Short", "Venta", limit=takeProfitShort, stop=stopLossShort)
// Visualización de las EMAs
plot(emaRapida, color=color.green, linewidth=2, title="EMA Rápida")
plot(emaLenta, color=color.red, linewidth=2, title="EMA Lenta")