
Cette stratégie consiste à calculer la différence entre le ROC et le SMA en calculant la différence entre le ROC et le SMA en calculant la différence entre le ROC et le SMA.
La stratégie commence par calculer la moyenne SMA et l’indicateur de ROC de la longueur l, puis le prix de clôture actuel et la différence entre la SMA et la valeur de k. Ensuite, elle calcule l’accumulation et la somme des jours s de la valeur de k. Faites plus lorsque la somme est supérieure à 0 et moins lorsque la somme est inférieure à 0.
Plus précisément, dans le code:
calculer la moyenne SMA de longueur l a
Calculer l’indicateur de ROC de longueur r
Calculer la différence entre le prix de clôture actuel et la moyenne SMA k = close - a
On fait une addition sur k pendant s jours, on obtient la somme
Si sum est inférieur à 0, alors on fait plus. Si sum est inférieur à 0, on fait moins.
Conditions de mise en équilibre: prise de position plus ou moins élevée, sum<0; prise de position plus ou moins élevée, sum>0
La clé de cette stratégie est de calculer l’addition et la somme de k, en utilisant la somme positive et négative comme signal de transaction. Lorsque la période la plus récente est k> 0, cela signifie que le prix est en hausse, alors faites plus; lorsque la période la plus récente est k < 0, cela signifie que le prix est en baisse, alors faites moins.
Il s’agit d’une stratégie de trading en ligne courte, simple et pratique, qui présente les avantages suivants:
La combinaison d’indicateurs utilisée est simple, facile à comprendre et à mettre en œuvre.
Le filtrage des fluctuations de l’indicateur permet de trouver des opportunités plus précises.
La cumulation des différences permet de saisir avec plus de précision les tendances de la courte ligne.
Les paramètres l et s peuvent être ajustés en fonction du marché pour s’adapter à différents cycles.
La stratégie est claire, les procédures sont simples et faciles à modifier et à optimiser.
L’efficacité de l’utilisation des fonds permet de réaliser des transactions courtes et fréquentes.
Cette stratégie comporte également des risques, principalement:
Les transactions en ligne courte sont plus risquées et peuvent entraîner des pertes.
Une mauvaise configuration des paramètres peut entraîner des transactions trop fréquentes ou des opportunités manquées.
Le risque est plus élevé si la tendance est inversée et que le stop loss n’est pas respecté.
Les paramètres doivent être surveillés et ajustés fréquemment, en fonction de l’expérience des traders.
La fréquence des transactions peut augmenter les coûts de transaction et les points de glissement, affectant les bénéfices.
Les solutions pour faire face aux risques sont:
Les paramètres sont adaptés pour réduire la fréquence des transactions.
Les indicateurs de tendance sont utilisés pour identifier les inversions de tendance.
Optimiser les stratégies de stop-loss et contrôler les pertes individuelles.
L’ajout d’un module d’optimisation des paramètres d’automatisation réduit la dépendance à l’expérience des traders.
Optimiser les modules commandés et réduire les coûts de transaction.
Cette stratégie peut être optimisée dans les domaines suivants:
Optimiser la méthode de calcul des paramètres pour les rendre plus adaptables. On peut envisager d’optimiser dynamiquement les paramètres en utilisant des algorithmes génétiques, des chaînes de Markov, etc.
En combinant plus d’indicateurs et de conditions de filtrage, améliorer la qualité des signaux de négociation. Par exemple, combiner des indicateurs de tendance pour éviter les transactions contre-courant.
Améliorer les stratégies de stop loss, comme l’introduction de stop loss mobile, stop loss moyen, etc. pour contrôler les pertes individuelles.
Optimiser les stratégies de gestion des fonds, telles que la gestion des points de risque, la répartition des fonds à taux fixe, etc., pour contrôler le risque global.
Optimisation des modules de commande, utilisation d’algorithmes de suivi des tendances, contrôle des points de glissement, etc. pour réduire les coûts de transaction.
Ajout d’un module d’optimisation de la rétroaction automatisée pour évaluer rapidement l’impact des différents paramètres sur la stratégie.
Ajout d’un module d’évaluation quantitative des indicateurs, évaluation de la qualité des signaux de négociation et amélioration de la stabilité de la stratégie.
Grâce à ces améliorations, la stratégie peut être transformée en un système de négociation de courte distance plus complet, intelligent, stable et contrôlable.
Dans l’ensemble, cette stratégie génère des signaux de trading grâce à un simple calcul d’indicateurs, est claire et facile à mettre en œuvre et appartient à la stratégie de trading typique de la ligne courte. En optimisant davantage les paramètres, le stop-loss, la gestion des fonds, etc., il est possible de réduire le risque et d’améliorer la stabilité, ce qui en fait l’une des stratégies de trading quantifiées qui valent la peine d’être utilisées.
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
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("Long", strategy.long, oca_name="Long", comment="Long")
else
strategy.cancel(id="Long")
if sum<0
strategy.entry("Short", strategy.short, oca_name="Short", comment="Short")
else
strategy.cancel(id="Short")
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)