
La stratégie utilise l’indicateur RSI pour mesurer la dynamique des prix et détermine l’heure d’entrée en calculant la différence standard de la variation du RSI. La stratégie utilise des positions de plafonnement limitées pour contrôler le risque en définissant des arrêts et des points de perte. La stratégie est exécutée à chaque changement de prix pour capturer toutes les fluctuations potentielles des prix.
La stratégie utilise la dynamique du RSI et les seuils de la différence standard pour effectuer des transactions inversées dans des environnements à haute fréquence. En introduisant des facteurs de défaillance et des positions de plafonnement limitées, la stratégie est capable de capturer les opportunités de négociation créées par les fluctuations des prix tout en contrôlant les risques. Cependant, la stratégie nécessite des optimisations supplémentaires dans la pratique, telles que l’introduction de plus d’indicateurs, l’optimisation des paramètres, la gestion des positions et le filtrage des tendances, pour améliorer la stabilité et la rentabilité de la stratégie.
/*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)