Stratégie de moyenne mobile pondérée de cassure de renversement


Date de création: 2023-11-28 14:11:33 Dernière modification: 2023-11-28 14:11:33
Copier: 0 Nombre de clics: 644
1
Suivre
1621
Abonnés

Stratégie de moyenne mobile pondérée de cassure de renversement

Aperçu

L’idée principale de cette stratégie est d’utiliser des zones de support ou de résistance importantes près des moyennes mobiles pondérées par des tests de retournement de prix pour établir des positions. Il est probable que des supports ou des pressions se forment lorsque les prix rebondissent ou rebondissent, ce qui crée des opportunités de retournement.

Principe de stratégie

La stratégie est basée sur l’indicateur de la moyenne mobile pondérée, qui calcule d’abord la moyenne mobile pondérée d’une certaine longueur, puis surveille si le prix a une certaine amplitude de rupture. Lorsque le prix atteint une certaine distance de la moyenne mobile, tracez les instructions de la flèche et ouvrez une position.

La stratégie choisit d’utiliser un stop tracking ou un stop distance fixe via des paramètres de trail. Le risque peut être contrôlé en ajustant l’amplitude du stop loss. Le profit partiel peut être verrouillé via un paramètre de prix unique.

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans l’utilisation d’une combinaison de tendances inverses et de la ligne moyenne pour identifier les points critiques du marché pour ouvrir des positions. Les taux de gain et de perte des stratégies inverses sont généralement meilleurs et le risque est facile à contrôler.

Comme il est basé sur une moyenne mobile, il y a beaucoup de place pour l’optimisation des paramètres. Il est possible de tester l’adaptabilité des différents marchés en ajustant la longueur de la moyenne, l’amplitude de la percée, etc.

Analyse des risques

Le plus grand risque de cette stratégie est l’échec du renversement. Une fois que le prix a formé un signal de renversement, un grand fléchissement peut se former si le stop loss ou le stop loss n’est pas déclenché avec succès et que le cours continue dans la direction initiale.

En outre, la dépendance à l’optimisation des paramètres est élevée. Si les paramètres sont mal définis, il est facile de manquer le moment de la reprise des prix ou de générer de faux signaux. Il est nécessaire de bien comprendre et de tester le comportement du marché et d’évaluer soigneusement les paramètres.

Direction d’optimisation

On peut envisager d’ajouter plus d’indicateurs pour améliorer la qualité et l’exactitude du signal. Par exemple, on peut détecter l’augmentation d’une certaine période, en particulier les données d’augmentation à court terme, avant que le prix ne se retourne.

On peut également essayer des méthodes d’apprentissage automatique pour former des modèles de calcul de la prochaine éventuelle tendance des prix en enregistrant les signaux de transaction historiques et les données de prix. Cela peut aider à filtrer les faux signaux et à améliorer la qualité des signaux.

En outre, il est possible d’introduire un certain mécanisme d’optimisation d’adaptation. En fonction des résultats des transactions réelles, l’ajustement dynamique des paramètres ou des poids de la règle permet l’auto-optimisation de la stratégie et l’ENO.

Résumer

La stratégie fonctionne globalement de manière stable et offre de bons rendements dans un espace de paramètres et un environnement de marché raisonnables. Le plus grand avantage est que le risque est maîtrisé et qu’il y a un certain potentiel d’optimisation. La prochaine étape sera axée sur l’amélioration de la qualité du signal et l’augmentation de la capacité d’optimisation d’adaptation.

Code source de la stratégie
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-22 08:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="WMA Breakout",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02)
len = input(20, minval=1, title="Length")
src = input(close, title="Source")
out = wma(src, len)
price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001)
price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001)
trail = input(true, "Trailing Stop(checked), Market stop(unchecked)")
stop = input(10, "Stop (in ticks)", step=1)
limit = input(5, "Limit Out", step=1)
//size = input(1, "Limit Position Size (pyramiding)", minval=1)
timec = input(true, "Limit Time of Day (Buying Side)")


//Time Session
sess = input("1600-0500", "Start/Stop trades (Est time)")
t = time(timeframe.period, sess)
//plots
plot(wma(src,len))
z = if low+price_drop<out
    (out-low)
plotarrow(z, colorup=red)

a = if high-price_climb>out
    (high-out)
plotarrow(a, colorup=lime)
av=wma(src,len)

//Orders
if(timec)
    strategy.entry("Enterlong", long=true, when=z and t>1)
else
    strategy.entry("Enterlong", long=true, when=z)
if(trail)
    strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Enterlong", profit=limit, loss = stop )
    
if(timec)
    strategy.entry("Entershort", long=false, when=a and t>1)
else
    strategy.entry("Entershort", long=false, when=a)
if(trail)
    strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Entershort", profit=limit, loss = stop )