
La stratégie consiste à calculer les moyennes mobiles et le taux de variation des prix, en combinant les lignes K d’une période donnée, pour déterminer s’il s’agit d’une tendance à la hausse ou à la baisse, et de faire une plus-value ou une moins-value en conséquence.
Cette stratégie commence par calculer une moyenne mobile simple a de longueur l et un taux de variation de prix r de longueur l. Puis elle calcule la différence entre le prix actuel de la ligne K et la moyenne mobile k. Enfin, elle calcule la somme totale des lignes K de la ligne s à la racine de l.
Lorsque sum>0 indique qu’il est en tendance à la hausse, la stratégie fait plus. Lorsque sum indique qu’il est en tendance à la baisse, la stratégie fait moins.
Après avoir effectué un shorting supplémentaire, vous conserverez la position jusqu’à ce que la tendance soit inversée (sum passe de positif à négatif ou de négatif à positif), auquel cas la position sera levée.
Le plus grand avantage de cette stratégie est qu’elle est capable de capturer les tendances et de s’adapter au trading de tendances. Plus précisément, il y a les avantages suivants:
L’utilisation d’une moyenne mobile pour déterminer la direction de la tendance globale permet de filtrer efficacement le bruit du marché et de localiser les principales tendances.
L’indicateur du taux de variation des prix est utilisé pour mesurer l’intensité de la dynamique, afin d’éviter de rater une tendance forte.
En considérant plusieurs lignes K sur une période donnée, il est possible d’évaluer plus précisément les tendances et d’éviter d’être mené par un seul attaquant dans l’erreur.
Il est donc préférable de maintenir la position pour profiter au maximum de la tendance.
La stratégie présente principalement les risques suivants:
Il est impossible de déterminer avec précision quand la tendance s’arrêtera, ce qui peut entraîner une perte prématurée ou une perte partielle de profit.
La taille des pertes individuelles ne peut pas être contrôlée efficacement et, dans les cas extrêmes, les pertes peuvent être importantes.
Des paramètres stratégiques inappropriés peuvent entraîner des transactions trop fréquentes ou des opportunités manquées.
Les détenteurs de positions à long terme peuvent être exposés à des risques d’intérêts et de garantie au jour le jour.
Pour contrôler les risques, il est possible de définir des points de perte, de négocier uniquement des produits à forte liquidité, d’optimiser les paramètres et d’utiliser raisonnablement le levier.
Cette stratégie peut être optimisée principalement dans les domaines suivants:
Test des moyennes mobiles et des variations de prix sur différentes longueurs pour trouver la meilleure combinaison de paramètres.
Essayez d’évaluer les tendances avec d’autres indicateurs, comme le MACD, pour améliorer encore la précision.
Augmentation des mécanismes de gestion des positions, tels que l’arrêt partiel après le profit, et le contrôle des pertes individuelles.
Le stop loss dynamique, combiné à un indicateur de volatilité, réduit le risque d’extrême.
Optimisation de la logique d’ouverture et de placement des positions, filtration des fausses percées et amélioration de l’efficacité des transactions.
L’idée générale de la stratégie est claire et facile à mettre en œuvre, et la gestion des retraits est relativement raisonnable pour les investisseurs qui recherchent des gains stables. Si les mécanismes d’arrêt des pertes et de gestion des positions peuvent être optimisés davantage, il est possible d’obtenir de meilleurs rendements stables à long terme.
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false)
l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=18)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
sum := sum + k[i]
//plot(a,color=yellow,linewidth=2,transp=0)
//bc = iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
////buyEntry = crossover(source, lower)
////sellEntry = crossunder(source, upper)
if sum>0
strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands", comment="BBandLE")
else
strategy.cancel(id="BBandLE")
if sum<0
strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands", comment="BBandSE")
else
strategy.cancel(id="BBandSE")
strategy.initial_capital = 50000
plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2)
hline(0)
//longCondition = sum>0
//exitlong = sum<0
//shortCondition = sum<0
//exitshort = sum>0
//strategy.entry(id = "Long", long=true, when = longCondition)
//strategy.close(id = "Long", when = exitlong)
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)
//strategy.entry(id = "Short", long=false, when = shortCondition)
//strategy.close(id = "Short", when = exitshort)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)