Strategi ini menggunakan penunjuk RSI untuk mengukur momentum harga dan menentukan masa kemasukan dengan mengira penyimpangan standard perubahan RSI. Ia memasuki kedudukan panjang apabila momentum RSI melebihi ambang penyimpangan standard dan kurang daripada momentum sebelumnya dikalikan dengan faktor keletihan, dan memasuki kedudukan pendek di bawah keadaan yang bertentangan. Strategi ini menggunakan pesanan had untuk keluar, mengawal risiko dengan menetapkan sasaran keuntungan dan stop loss ticks. Strategi ini dilaksanakan pada setiap tik harga untuk menangkap semua pergerakan harga yang berpotensi.
Strategi ini menggunakan momentum RSI dan ambang penyimpangan standard untuk melakukan perdagangan pembalikan dalam persekitaran frekuensi tinggi. Dengan memperkenalkan faktor keletihan dan keluar pesanan had, strategi ini dapat menangkap peluang perdagangan yang dibawa oleh pergerakan harga sambil mengawal risiko. Walau bagaimanapun, strategi ini masih memerlukan pengoptimuman lanjut dalam aplikasi sebenar, seperti memperkenalkan lebih banyak penunjuk, mengoptimumkan tetapan parameter, memperkenalkan pengurusan kedudukan dan penapisan trend, dan lain-lain, 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)