Strategi ini adalah sistem perdagangan kuantitatif berdasarkan crossover rata-rata bergerak dan indikator RSI, terutama dirancang untuk perdagangan pasar opsi. Strategi ini memanfaatkan sinyal crossover rata-rata bergerak cepat dan lambat dikombinasikan dengan tingkat overbought / oversold RSI untuk menentukan peluang perdagangan, sambil menerapkan mekanisme take-profit dan stop-loss untuk pengendalian risiko. Strategi ini dioptimalkan untuk perdagangan jangka waktu 5 menit.
Strategi ini menggunakan dua indikator teknis utama: Moving Averages (MA) dan Relative Strength Index (RSI).
Strategi ini membangun sistem perdagangan yang relatif lengkap dengan menggabungkan crossover MA dan indikator RSI. Kekuatannya terletak pada konfirmasi sinyal ganda dan manajemen risiko yang komprehensif, sementara perhatian harus diberikan pada dampak kondisi pasar pada kinerja strategi. Melalui optimalisasi dan perbaikan terus-menerus, strategi menunjukkan janji untuk kinerja yang stabil di pasar opsi. Pedagang disarankan untuk melakukan backtesting menyeluruh dan optimasi parameter sebelum implementasi langsung.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MA Crossover with RSI Debugging", overlay=true) // Inputs fastLength = input.int(7, title="Fast MA Length", minval=1) slowLength = input.int(13, title="Slow MA Length", minval=1) rsiLength = input.int(17, title="RSI Length", minval=1) rsiOverbought = input.int(64, title="RSI Overbought Level", minval=50, maxval=100) rsiOversold = input.int(43, title="RSI Oversold Level", minval=0, maxval=50) takeProfitPerc = input.float(4, title="Take Profit (%)", minval=0.1) stopLossPerc = input.float(0.5, title="Stop Loss (%)", minval=0.1) // Moving Averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // RSI rsi = ta.rsi(close, rsiLength) // Entry Conditions longCondition = ta.crossover(fastMA, slowMA) and rsi < rsiOversold shortCondition = ta.crossunder(fastMA, slowMA) and rsi > rsiOverbought // Plot Debugging Shapes plotshape(ta.crossover(fastMA, slowMA), color=color.green, style=shape.circle, location=location.belowbar, title="Fast MA Crossover") plotshape(ta.crossunder(fastMA, slowMA), color=color.red, style=shape.circle, location=location.abovebar, title="Fast MA Crossunder") plotshape(rsi < rsiOversold, color=color.blue, style=shape.triangleup, location=location.belowbar, title="RSI Oversold") plotshape(rsi > rsiOverbought, color=color.orange, style=shape.triangledown, location=location.abovebar, title="RSI Overbought") // Entry and Exit Execution if (longCondition) strategy.entry("Buy", strategy.long) if (shortCondition) strategy.entry("Sell", strategy.short) takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc / 100) stopLossPrice = strategy.position_avg_price * (1 - stopLossPerc / 100) if (strategy.position_size > 0) strategy.exit("Exit Buy", from_entry="Buy", limit=takeProfitPrice, stop=stopLossPrice) if (strategy.position_size < 0) strategy.exit("Exit Sell", from_entry="Sell", limit=takeProfitPrice, stop=stopLossPrice) // Plot Moving Averages plot(fastMA, color=color.blue, title="Fast MA") plot(slowMA, color=color.red, title="Slow MA") // RSI Levels hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green)