Points tournants Évasion Stratégie à long terme

Auteur:ChaoZhang est là., Date: 2024-02-18 09:57:11 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie des Swing Points Breakouts est une stratégie de fluctuation de tendance à long terme basée sur l'identification de swing high et swing low. La stratégie entre en position longue lorsque les prix franchissent le prix le plus élevé de la période la plus récente spécifiée par les paramètres d'entrée, et entre en position courte lorsque les prix franchissent le prix le plus bas de la période la plus récente.

La logique de la stratégie

La stratégie définit le prix le plus élevé et le prix le plus bas de la barre N la plus récente comme le swing high et le swing low à travers les paramètres d'entrée. Elle détermine l'entrée et la sortie en fonction du paramètre de direction.

En outre, la stratégie met en place des stop-loss. Après avoir ouvert des positions longues, le stop-loss est placé près du prix le plus bas récent. Après avoir ouvert des positions courtes, le stop-loss est placé près du prix le plus élevé récent. Cela évite efficacement d'énormes pertes sur un marché en tendance.

Analyse des avantages

Le plus grand avantage de cette stratégie est qu'elle capture les fluctuations clés autour des hauts et des bas et des bénéfices en conséquence.

Les avantages sont les suivants:

  1. La logique de la stratégie est claire, avec des entrées et des sorties basées sur des évasions basses/hautes.

  2. Il utilise les hauts et bas de swing pour identifier les opportunités d'inversion, une approche classique de l'analyse technique.

  3. Il y a des arrêts de perte pour contrôler les risques et éviter d'énormes pertes sur les marchés en tendance.

  4. Le code a une structure claire et est facile à comprendre et à modifier.

  5. Les paramètres peuvent être ajustés pour optimiser la stratégie, comme la réglage de la période swing high/low.

Analyse des risques

Le principal risque de cette stratégie provient d'une identification inexacte de l'altitude et de la basse altitude, ce qui conduit à des transactions erronées.

  1. Fausse rupture des hauts/baissés de swing entraînant des entrées erronées.

  2. Un énorme stop loss près des points d'évasion.

  3. Les symboles de tendance ont tendance à nécessiter des coûts énormes pour déterminer les points d'inclinaison.

  4. Un mauvais réglage des paramètres affecte également les performances de la stratégie.

Les solutions sont les suivantes:

  1. Optimisation des paramètres comme les basses/hautes périodes.

  2. Augmentation de la distance d'arrêt.

  3. Éviter de l'utiliser sur les symboles de tendance.

  4. Adoption de l'apprentissage automatique pour optimiser dynamiquement les paramètres.

Directions d'optimisation

La stratégie peut être optimisée dans les directions suivantes:

  1. Optimisation dynamique des périodes d'altitude/de basse altitude au lieu de valeurs fixes pour éviter un surajustement.

  2. Introduction d'un stop loss/take profit dynamique basé sur l'ATR et la volatilité.

  3. Combiner plusieurs délais, en utilisant des TF plus élevés pour définir la tendance et des TF inférieurs pour l'entrée.

  4. Incorporer des modèles d'apprentissage automatique pour prédire les points d'inclinaison potentiels et améliorer les performances.

  5. Optimiser les algorithmes de stop loss pour éviter les hits inutiles tout en maintenant un stop loss efficace.

Conclusion

La stratégie des Swing Points Breakouts est une stratégie quantitative pratique à long terme. En capturant les opportunités d'inversion autour des points de basculement et en définissant des stop-loss pour contrôler les risques, elle assure des profits tout en contrôlant les retraits. Avec un réglage flexible des paramètres et une logique claire, c'est un paradigme de stratégie recommandé qui vaut la peine d'être utilisé. D'autres améliorations peuvent être apportées en introduisant l'optimisation dynamique et l'apprentissage automatique.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
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/
// © tweakerID

// Long term strategy for managing a Crypto investment with Swing Trades of more than 1 day. The strategy buys with a 
// stop order at the Swing High price (green line) and sells with a stop order at the Swing Low price (red line). 
// The direction of the strategy can be adjusted in the Inputs panel.

//@version=4
strategy("Swing Points Breakouts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

//Inputss
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLow=input(10, title="Swing Low Lookback")
i_SwingHigh=input(10, title="Swing High Lookback")
i_reverse=input(false, "Reverse Trades")
i_SLExpander=input(defval=0, step=1, title="SL Expander")

//Strategy Calculations
SwingLow=lowest(i_SwingLow)
SwingHigh=highest(i_SwingHigh)

//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na

//Entries and Exits
strategy.entry("long", true, stop=i_reverse?na:SwingHigh, limit=i_reverse?SwingLow:na)
strategy.entry("short", false, stop=i_reverse?na:SwingLow, limit=i_reverse?SwingHigh:na)

if i_SL
    strategy.exit("longexit", "long", stop=LSL)
    strategy.exit("shortexit", "short", stop=SSL)

//Plots
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(SwingLow, color=color.red)
plot(SwingHigh, color=color.green)


Plus de