La stratégie d'épuisement de l'élan est une stratégie de suivi de tendance qui utilise des moyennes mobiles et des oscillateurs de pourcentage de prix pour minimiser l'exposition à la baisse.
Les indicateurs de base de cette stratégie sont l'épuisement et la moyenne mobile d'épuisement. L'épuisement est une mesure de l'oscillation des prix, calculée à partir de prix proches, élevés et bas. Le calcul spécifique est: (moyenne mobile d'épuisement proche + haut + bas) /moyenne mobile d'épuisement. La moyenne mobile d'épuisement est la moyenne mobile d'épuisement. Lorsque l'épuisement dépasse la moyenne mobile d'épuisement, cela indique une consolidation du marché et une nouvelle tendance possible. Lorsque l'épuisement dépasse la moyenne mobile d'épuisement, cela indique un renversement de tendance et nous devrions envisager de tirer profit.
En outre, la stratégie utilise également des moyennes mobiles à long et à court terme pour aider à déterminer la tendance, y compris les lignes de 300 jours, 150 jours et 50 jours.
Le MACD est également utilisé pour les signaux d'achat et de vente à court terme. Lorsque la ligne MACD traverse au-dessus de la ligne de signal, cela indique un signal haussier, et lorsque le MACD traverse au-dessous de la ligne de signal, cela indique un signal baissier.
La logique spécifique d'entrée et de sortie est la suivante:
Signal d'achat: épuisement au-dessus de la moyenne mobile d'épuisement et MA de 50 jours au-dessus de MA de 150 jours; ou RSI inférieur à 30.
Stop-loss à court terme: Traversement de l'épuisement au-dessous de la moyenne mobile d'épuisement; ou traversement du MACD au-dessous de la ligne de signal.
L'établissement doit fournir des informations détaillées sur les risques liés à l'établissement et les risques liés à l'établissement.
Cette stratégie combine plusieurs indicateurs pour déterminer l'épuisement de la tendance et contrôler les risques.
L'indicateur d'épuisement permet d'identifier efficacement la consolidation et l'inversion de tendance.
L'utilisation de moyennes mobiles de plusieurs délais pour déterminer la tendance évite d'être induit en erreur par le bruit de marché à court terme.
Le MACD aide à confirmer les signaux d'achat et de vente, améliorant ainsi la performance de la stratégie.
Le RSI joue son rôle d'acheter à bas prix et de vendre à haut prix, en achetant dans des situations extrêmement survendues.
La stratégie claire de prise de profit et de stop loss peut contrôler efficacement le risque de chaque transaction.
Cette stratégie comporte également certains risques:
En s'appuyant sur plusieurs indicateurs, des paramètres mal réglés peuvent entraîner des signaux de trading erronés.
L'indicateur d'épuisement n'est pas entièrement fiable, il peut échouer en cas de divergence des prix.
Un mauvais placement de stop loss peut entraîner un arrêt par des fluctuations à court terme.
Lorsque l'ensemble du marché varie, les indicateurs peuvent échouer.
La stratégie peut être optimisée dans les aspects suivants:
Testez différentes combinaisons de paramètres pour trouver les paramètres optimaux et réduire les faux signaux.
L'indicateur de volatilité ATR est utilisé pour ajuster dynamiquement la plage de stop loss en fonction de la volatilité du marché.
Optimiser le dimensionnement des positions, avec des règles de dimensionnement des positions différentes pour les différentes conditions du marché.
Incorporer des schémas graphiques comme les lignes de tendance, les lignes de soutien pour améliorer la performance de la stratégie.
Ajouter des algorithmes d'apprentissage automatique pour aider à mesurer l'efficacité des indicateurs clés, réalisant ainsi une optimisation dynamique.
La stratégie d'épuisement de l'élan combine plusieurs indicateurs pour identifier les risques d'inversion de tendance et de contrôle. Elle a la capacité de suivre la tendance et peut déterminer efficacement les points d'entrée et de sortie. Des améliorations supplémentaires peuvent être apportées grâce à l'optimisation des paramètres, aux règles de stop loss, à l'intégration de modèles de graphiques et plus encore.
/*backtest start: 2022-11-09 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © spiritualhealer117 //@version=4 strategy("Infiten Slope Strategy", overlay=false,calc_on_every_tick = true, default_qty_type=strategy.percent_of_equity, default_qty_value = 100) // //TIME RESTRICT FOR BACKTESTING { // inDateRange = (time >= timestamp(syminfo.timezone, 2003, // 1, 1, 0, 0)) and // (time < timestamp(syminfo.timezone, 2021, 5, 25, 0, 0)) // //} //OPTIMAL PARAMETERS { daysback = 30 volumesens = 1.618 //} //Calculating Exhaustion and Exhaustion Moving Average { clh = close+low+high exhaustion = (clh-sma(clh,daysback))/sma(clh,daysback) exhaustionSma = sma(exhaustion,daysback) //} //Long Term Moving Averages for sell signals { red = sma(close,300) white = sma(close,150) blue = sma(close,50) plot(red,color=color.red) plot(white,color=color.white) plot(blue,color=color.blue) //} //MACD Calculation { fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false) // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal //} //SIGMOID Bottom { timeAdjust = 300/sma(close,500) //} //RSI bottom { len = input(14, minval=1, title="Length") up = rma(max(change(src), 0), len) down = rma(-min(change(close), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //} //Entry and exit conditions { //Sell conditions bigVolume = sma(volume,30)*volumesens sellcond1 = crossunder(exhaustion,exhaustionSma) and volume > bigVolume sellcond2 = crossunder(macd,signal) and volume > bigVolume midtermsellcond1 = crossunder(blue,white) longtermsellcond1 = white < red //Buy conditions buycond = crossover(exhaustion,exhaustionSma) and not longtermsellcond1 buycond2 = rsi < 30 buycond3 = crossover(blue,white) and longtermsellcond1 //} //Backtest Run Buy/Sell Commands { strategy.entry("buycond",true, when=buycond and bigVolume) strategy.entry("buycond2",true, when=buycond2 and bigVolume) strategy.close_all(when=sellcond1,comment="short term sell signal 1") strategy.close_all(when=midtermsellcond1, comment="mid term sell signal 1") strategy.close_all(when=longtermsellcond1, comment="long term sell signal 1") strategy.close_all(when=sellcond2, comment="short term sell signal 2") plot(strategy.position_size) //Sell on last tested day (only for data collection) //strategy.close_all(when=not inDateRange) //}