Cette stratégie s'appelle
Le noyau de cette stratégie est l'utilisation de l'indicateur Supertrend pour déterminer la tendance actuelle des prix. Le Supertrend combine les moyennes mobiles et l'ATR, ce qui est efficace pour juger de la direction des tendances des prix.
Plus précisément, cette stratégie calcule d'abord la direction du Supertrend, le RSI et l'ADX. Lorsque le Supertrend baisse et que le RSI montre que la tendance haussière s'estompe, il fait une entrée courte. Lorsque le Supertrend se révèle, il ferme la position courte.
Le plus grand avantage de cette stratégie est qu'elle peut identifier automatiquement les tendances des prix et effectuer des entrées et des sorties en fonction des tendances, sans jugement manuel.
Le plus grand risque est que la Supertrend elle-même ne soit pas très précise pour juger des tendances des prix, ce qui peut générer des signaux incorrects.
L'optimisation peut être effectuée en ajustant les paramètres de Supertrend et en ajoutant un stop loss pour réduire les risques.
Plusieurs aspects de cette stratégie peuvent être optimisés:
Optimiser les paramètres de Supertrend pour améliorer la précision
Ajouter le stop-loss de suivi au contrôle par perte de transaction
Ajouter plus de filtres comme les bandes de Bollinger, KDJ pour améliorer la rentabilité
Développer des règles d'entrée et de sortie similaires pour compléter la stratégie
En conclusion, il s'agit d'une stratégie de trading automatisée qui juge les tendances basées sur la Supertrend. L'avantage est le haut degré d'automatisation et la détection automatique des tendances. L'inconvénient est la faible précision de la Supertrend elle-même et aucun stop loss.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend Strategy", overlay=true) atrPeriod = input(10, "ATR Length") factor = input.float(3.0, "Factor", step = 0.01) [_, direction] = ta.supertrend(factor, atrPeriod) adxlen = input(7, title="ADX Smoothing") dilen = input(7, title="DI Length") dirmov(len) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = ta.rma(ta.tr, len) plus = fixnan(100 * ta.rma(plusDM, len) / truerange) minus = fixnan(100 * ta.rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) adx sig = adx(dilen, adxlen) if ta.change(direction) < 0 and ta.rsi(close, 21) < 66 and ta.rsi(close, 3) > 80 and ta.rsi(close, 28) > 49 and sig > 20 strategy.entry("My Long Entry Id", strategy.long) if ta.change(direction) > 0 strategy.close("My Long Entry Id") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)