
Strategi ini menggunakan indikator RSI untuk mengukur pergerakan harga dan menentukan masa masuk dengan mengira perbezaan piawai perubahan RSI. Apabila pergerakan RSI melebihi margin perbezaan piawai dan kurang daripada pergerakan saat sebelumnya dengan faktor kegagalan, anda boleh membuka lebih banyak kedudukan dan sebaliknya membuka kosong. Strategi ini menggunakan kedudukan harga yang terhad untuk mengawal risiko dengan menetapkan hentian dan titik hentian.
Strategi ini menggunakan momentum RSI dan margin standard untuk melakukan perdagangan terbalik dalam persekitaran frekuensi tinggi. Dengan memperkenalkan faktor kemerosotan dan kedudukan kosong harga terhad, strategi ini dapat menangkap peluang perdagangan yang disebabkan oleh turun naik harga sambil mengawal risiko. Walau bagaimanapun, strategi ini memerlukan pengoptimuman lebih lanjut dalam aplikasi praktikal, seperti memperkenalkan lebih banyak petunjuk, menetapkan parameter yang lebih baik, memperkenalkan pengurusan kedudukan dan penapisan trend, untuk meningkatkan kestabilan dan keuntungan strategi.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MCOTs Intuition Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=50000, calc_on_every_tick=true)
// Input for RSI period
rsiPeriod = input(14, title="RSI Period")
// Input for standard deviation multiplier
stdDevMultiplier = input(1.0, title="Standard Deviation Multiplier")
// Input for exhaustion detection
exhaustionMultiplier = input(1.5, title="Exhaustion Multiplier")
// Input for profit target and stop loss in ticks
profitTargetTicks = input(8, title="Profit Target (ticks)")
stopLossTicks = input(32, title="Stop Loss (ticks)")
// Calculate RSI
rsiValue = ta.rsi(close, rsiPeriod)
// Calculate standard deviation of RSI changes
rsiStdDev = ta.stdev(ta.change(rsiValue), rsiPeriod)
// Calculate momentum
momentum = ta.change(rsiValue)
// Conditions for entering a long position
longCondition = momentum > rsiStdDev * stdDevMultiplier and momentum < momentum[1] * exhaustionMultiplier
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit Long", "Long", limit=close + profitTargetTicks * syminfo.mintick)
strategy.exit("Stop Loss Long", "Long", stop=close - stopLossTicks * syminfo.mintick)
// Conditions for entering a short position
shortCondition = momentum < -rsiStdDev * stdDevMultiplier and momentum > momentum[1] * exhaustionMultiplier
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit Short", "Short", limit=close - profitTargetTicks * syminfo.mintick)
strategy.exit("Stop Loss Short", "Short", stop=close + stopLossTicks * syminfo.mintick)
// Plotting RSI value for reference
plot(rsiValue, title="RSI", color=color.blue)