
Ini adalah strategi perdagangan kuantitatif yang berdasarkan pada crossover dua garis sejajar yang digabungkan dengan RSI, sambil mengintegrasikan mekanisme stop loss yang dinamik. Strategi menggunakan purata bergerak indeks 9 dan 21 kitaran ((EMA) sebagai indikator trend utama, dengan indeks yang agak kuat ((RSI) sebagai syarat penapisan, untuk menguruskan risiko dan keuntungan dengan menetapkan stop loss yang dinamik.
Strategi ini menggunakan persilangan EMA cepat ((9 kitaran) dan EMA perlahan ((21 kitaran) untuk menangkap perubahan trend. Apabila garis cepat melintasi garis perlahan ke atas dan RSI adalah di bawah 70, membuka kedudukan multihead; Apabila garis cepat melintasi garis perlahan ke bawah dan RSI adalah di atas 30, membuka kedudukan kosong.
Ini adalah strategi perdagangan kuantitatif dengan struktur yang jelas dan logik yang ketat. Risiko pengurusan hentian hentian secara dinamik melalui trend tangkapan silang, penyaringan masa masuk RSI, dan hentian hentian. Walaupun terdapat beberapa batasan, strategi ini dapat meningkatkan kestabilan dan keuntungan lebih lanjut melalui arah pengoptimuman yang disyorkan.
/*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")