Stratégie de suivi du double renversement

Auteur:ChaoZhang est là., Date: 2023-12-01 15h36 et 34 min
Les étiquettes:

img

Résumé

La stratégie de suivi des doubles renversements génère des signaux de trading en suivant les deux points de renversement des prix. Elle ouvrira une position courte lorsque le prix forme un nouveau sommet et ouvrira une position longue lorsque le prix forme un nouveau point bas. Ce suivi en temps réel des renversements de prix peut capturer les changements de dynamique du marché en temps opportun.

La logique de la stratégie

La stratégie de suivi du double renversement utilise deux jugements de modèle pour générer des signaux de trading, y compris le modèle de renversement d'achat élevé (HHS) et le modèle de renversement de vente faible (LLB).

  1. Modèle HHS: proche[0] < proche[1] et haut[0] > haut[1]
  2. Modèle LLB: proche [0] > proche [1] et basse [0] < basse [1]

Lorsque les conditions ci-dessus sont remplies, l'indice de barre et le prix de HHS et LLB seront enregistrés respectivement. Après cela, la stratégie surveillera en temps réel si le prix traverse le prix d'inversion enregistré. Lorsque le prix traverse le point élevé d'inversion de HHS, cela indique que le modèle de prix s'est inversé vers une tendance à la baisse et que la stratégie ouvrira une position courte. Au contraire, lorsque le prix traverse le point bas d'inversion de LLB, cela indique que le modèle de prix s'est inversé vers une tendance à la hausse et que la stratégie ouvrira une position longue. De cette façon, la stratégie de suivi de double inversion peut capturer dynamiquement les opportunités d'inversion de prix.

Lorsque la stratégie est en cours d'exécution, elle affiche également visuellement les modèles HHS, LLB et les situations de rupture à travers des marquages et des couleurs de fond. Ceci est très utile pour juger intuitivement les conditions du marché et vérifier la stratégie.

Analyse des avantages

La stratégie de double suivi de l'inversion présente les avantages suivants:

  1. Le suivi en temps réel des renversements de prix permet de saisir rapidement les opportunités de renversement du marché.

  2. Il génère des signaux de trading directement à partir des fonctionnalités d'inversion de prix, sans trop de paramètres à optimiser.

  3. Les marquages des modèles et des ruptures permettent de visualiser l'opération de la stratégie, ce qui facilite la vérification du rendement de la stratégie.

  4. La base de code de la stratégie est petite et facile à comprendre et à personnaliser.

En résumé, bien que simple, la stratégie de double suivi de l'inversion peut capturer efficacement les inversions de prix et vaut la peine d'être utilisée comme stratégie d'inversion rapide.

Analyse des risques

La stratégie de double suivi de l'inversion comporte également certains risques, principalement:

  1. Le jugement de renversement de prix repose sur des informations à un point, qui présentent une probabilité plus élevée d'erreurs de jugement.

  2. Il ne prend pas en compte la tendance majeure et peut toujours générer des signaux courts incorrects lors de tendances haussières majeures.

  3. Il n'existe pas de mécanisme de stop loss pour contrôler les pertes d'une seule transaction. Des stratégies de stop loss raisonnables doivent être définies pour les transactions en direct afin de contrôler les pertes à des niveaux acceptables.

  4. Les données des backtests peuvent avoir un biais d'optimisation et les performances en direct peuvent être inférieures aux backtests.

En général, en tant que stratégie d'inversion rapide, cette stratégie a des implémentations simples, mais présente également une certaine probabilité d'erreurs de jugement.

Les domaines d'amélioration

Afin de réduire la probabilité d'erreurs de jugement et d'améliorer la stabilité, la stratégie peut être améliorée par les aspects suivants:

  1. Ajouter une validation efficace de la rupture, telle que l'obligation pour le prix de briser le point de renversement d'un certain pourcentage avant d'ouvrir des positions.

  2. Ajouter le module de jugement des tendances majeures pour éviter les signaux courts incorrects pendant les tendances haussières majeures.

  3. Mettre en œuvre des stratégies de stop-loss telles que le stop-loss à la traîne et le stop-loss en zone pour contrôler les pertes d'une seule transaction dans certaines limites.

  4. Optimiser les algorithmes de dimensionnement des positions pour ajuster la taille des positions en fonction de la volatilité du marché, réduisant la taille des positions uniques dans des environnements à forte volatilité.

  5. Tester des délais plus longs de données en direct pour évaluer la stabilité des paramètres et effectuer des itérations d'optimisation à plusieurs tours.

Avec des ajustements à travers les aspects ci-dessus, des améliorations significatives peuvent être obtenues sur la performance en direct et la stabilité de cette stratégie.

Conclusion

La stratégie de double suivi de l'inversion capture les opportunités d'inversion en surveillant en temps réel les points d'inversion des prix. Elle a une logique simple, une exécution simple et peut rapidement ouvrir des positions le long des tendances d'inversion. Mais elle présente également une certaine probabilité de mauvais jugement. En introduisant le filtrage des tendances, des stratégies de stop loss et l'optimisation des paramètres, le risque de mauvais jugement peut être réduit efficacement pour en faire une stratégie stable et efficace pour le trading en direct.


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Rev. FO", shorttitle="Rev. FO", overlay=true, pyramiding=0,calc_on_order_fills=true,calc_on_every_tick=true,default_qty_type=strategy.percent_of_equity,default_qty_value=50,initial_capital=1000,currency="USD",commission_type=strategy.commission.percent,commission_value=0.2,process_orders_on_close=false)

HHS = close[0] < close[1] and high[0] > high[1]
LLB = close[0] > close[1] and low[0] < low[1]

var trade_long = false
var text_status = "Awaiting Trade..."
var index_hhs = 0
var index_llb = 0
var price_hhs = 0.0
var price_llb = 0.0

if (HHS)
    trade_long := false
    text_status := "Trade in Short"
    index_hhs := bar_index
    price_hhs := high
if (LLB)
    trade_long := true
    text_status := "Trade in Long"
    index_llb := bar_index
    price_llb := low

plotshape(HHS, style=shape.labeldown, title="HHS", location=location.abovebar, color=color.red, text="HHS", textcolor=color.white,size=size.tiny)
plotshape(LLB, style=shape.labelup, title="LLB", location=location.belowbar, color=color.white, text="LLB", textcolor=color.white,size=size.tiny)

// HHS_top = line.new(index_hhs-1,price_hhs,bar_index,price_hhs,extend=extend.right,style=line.style_solid,width=1,color=color.red)
// LLB_bot = line.new(index_llb-1,price_llb,bar_index,price_llb,extend=extend.right,style=line.style_solid,width=1,color=color.white)
// line.delete(HHS_top[1])
// line.delete(LLB_bot[1])

//Calculates how far the signal is painted to right. 
hours = 5
lapos_x = timenow+1000*60*60*hours
lapos_y = highest(20)

// lb = label.new(lapos_x, lapos_y, text=text_status,color=trade_long?color.white:color.red,xloc = xloc.bar_time,style=label.style_diamond,textcolor=trade_long?color.white:color.red,size=size.small)
// label.delete(lb[1])

breakout_hhs = crossover(high,price_hhs)
breakout_llb = crossunder(low,price_llb)

bgcolor(breakout_hhs?color.lime:na,transp=50,title="BO HHS")
bgcolor(breakout_llb?color.maroon:na,transp=50,title="BO LLB")

long_condition = breakout_hhs
long_close = close < price_hhs or breakout_llb
short_condition = breakout_llb
short_close = close > price_llb or breakout_hhs

strategy.entry(id="long",long=true,comment="L",when=long_condition)
strategy.close(id="long",when=long_close)
strategy.entry(id="short",long=false,comment="S",when=short_condition)
strategy.close(id="short",when=short_close)



Plus de