La stratégie de réversion moyenne avec entrée incrémentielle conçue par HedgerLabs est un script de stratégie de trading avancé axé sur la technique de réversion moyenne sur les marchés financiers.
Le centre de cette stratégie est la moyenne mobile simple (SMA) autour de laquelle toutes les entrées et sorties tournent. Les traders peuvent personnaliser la longueur de la MA pour s'adapter à différents styles de trading et délais.
Cette stratégie est unique en son genre: le système d'entrée incrémentielle, qui démarre une première position lorsque le prix s'écarte de la MA d'un pourcentage spécifié. Les entrées ultérieures sont ensuite effectuées par étapes incrémentielles, telles que définies par le trader, à mesure que le prix s'éloigne de la MA.
La stratégie gère intelligemment les positions en entrant en long lorsque le prix est inférieur à MA et en court lorsqu'il est supérieur pour s'adapter aux conditions changeantes du marché.
Les sorties sont déterminées lorsque le prix atteint le MA, dans le but de fermer les positions à des points de renversement potentiels pour des résultats optimisés.
Avec calc_on_every_tick activé, la stratégie évalue continuellement le marché pour assurer une réaction rapide.
La stratégie d'inversion moyenne avec entrée progressive présente les principaux avantages suivants:
Les risques à prendre en considération comprennent:
Les sorties peuvent être optimisées, des filtres de tendance ajoutés, la dimensionnement des positions réduite pour atténuer les risques ci-dessus.
La stratégie peut être renforcée par:
La stratégie de réversion moyenne avec entrée incrémentielle se concentre sur les techniques de réversion moyenne en utilisant une approche systématisée de dimensionnement de position incrémentielle.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Mean Reversion with Incremental Entry by HedgerLabs", overlay=true, calc_on_every_tick=true) // Input for adjustable settings maLength = input.int(30, title="MA Length", minval=1) initialPercent = input.float(5, title="Initial Percent for First Order", minval=0.01, step=0.01) percentStep = input.float(1, title="Percent Step for Additional Orders", minval=0.01, step=0.01) // Calculating Moving Average ma = ta.sma(close, maLength) // Plotting the Moving Average plot(ma, "Moving Average", color=color.blue) var float lastBuyPrice = na var float lastSellPrice = na // Function to calculate absolute price percentage difference pricePercentDiff(price1, price2) => diff = math.abs(price1 - price2) / price2 * 100 diff // Initial Entry Condition Check Function initialEntryCondition(price, ma, initialPercent) => pricePercentDiff(price, ma) >= initialPercent // Enhanced Entry Logic for Buy and Sell if (low < ma) if (na(lastBuyPrice)) if (initialEntryCondition(low, ma, initialPercent)) strategy.entry("Buy", strategy.long) lastBuyPrice := low else if (low < lastBuyPrice and pricePercentDiff(low, lastBuyPrice) >= percentStep) strategy.entry("Buy", strategy.long) lastBuyPrice := low if (high > ma) if (na(lastSellPrice)) if (initialEntryCondition(high, ma, initialPercent)) strategy.entry("Sell", strategy.short) lastSellPrice := high else if (high > lastSellPrice and pricePercentDiff(high, lastSellPrice) >= percentStep) strategy.entry("Sell", strategy.short) lastSellPrice := high // Exit Conditions - Close position if price touches the MA if (close >= ma and strategy.position_size > 0) strategy.close("Buy") lastBuyPrice := na if (close <= ma and strategy.position_size < 0) strategy.close("Sell") lastSellPrice := na // Reset last order price when position is closed if (strategy.position_size == 0) lastBuyPrice := na lastSellPrice := na