Cette stratégie utilise la longueur du corps de la bougie pour déterminer la direction longue et courte. Elle calcule la longueur moyenne du corps des 30 bougies récentes. Lorsque la longueur du corps de la bougie haussière est supérieure à la moyenne, elle va long. Lorsque la longueur du corps de la bougie baissière est supérieure à la moyenne, elle va courte.
Cette stratégie calcule d'abord la longueur du corps du chandelier et la longueur moyenne du corps des 30 derniers chandeliers.
Lorsque le chandelier d'aujourd'hui est baissier (barre==-1) et que la longueur du corps est supérieure à la longueur moyenne du corps, il ouvre une position longue (en hausse1).
Lorsque le chandelier d'aujourd'hui est haussier (bar ==1) et que la longueur du corps est supérieure à la longueur moyenne du corps, il ouvre une position courte (dn1).
Après avoir ouvert long, si le chandelier d'aujourd'hui est haussier (barre==1) et que la position actuelle est rentable, il ferme la position longue.
Après une ouverture à découvert, si le chandelier d'aujourd'hui est baissier (barre==-1) et que la position actuelle est rentable, il ferme la position à découvert.
La stratégie utilise simplement et efficacement la longueur du corps du chandelier pour déterminer la tendance du marché. Plus le corps est long, plus la tendance est forte.
Les avantages de cette stratégie:
La logique est simple et claire, facile à comprendre et à mettre en œuvre.
Utiliser la longueur du corps du chandelier pour déterminer la tendance, éviter les interférences sonores.
Adopter un calcul moyen dynamique, s'adapter aux changements du marché.
Définir une condition de sortie rentable pour améliorer la rentabilité.
Paramètres configurables, adaptés à différents environnements de marché.
Les risques de cette stratégie:
Le corps long ne représente pas nécessairement une forte tendance, pourrait être une fluctuation normale.
Une fenêtre de temps de longueur corporelle moyenne inappropriée peut manquer des opportunités de trading.
Les événements du cygne noir peuvent causer des pertes.
La détention de positions trop longue peut amplifier les pertes.
Les solutions:
Combinez avec d'autres indicateurs pour déterminer la tendance, éviter les mauvais métiers.
Testez différentes valeurs de paramètres, optimisez le calcul de la longueur moyenne du corps.
Réglez le stop-loss pour contrôler la perte unique.
Optimisez la logique d'entrée et de sortie pour éviter de rester trop longtemps.
La stratégie peut être optimisée dans les aspects suivants:
Combinez MACD, RSI pour déterminer la tendance, éviter les mauvais signaux des fluctuations normales.
Testez différents paramètres de la fenêtre de temps de la longueur moyenne du corps pour trouver un ensemble de paramètres optimal.
Ajoutez la logique de contrôle de la dimension de position, réduisez progressivement la taille de la position en cas de pertes.
Définir un stop-loss ou une cible de profit pour contrôler le pourcentage de perte unique.
Optimisez les conditions d'entrée et de sortie pour éviter les transactions inefficaces.
Évitez de négocier à certaines périodes ou autour de la publication de données importantes afin de contrôler les pertes dues à la volatilité.
La stratégie a une logique claire et facile à comprendre de comparer le corps du chandelier à sa longueur moyenne pour le timing d'entrée. Grande marge d'optimisation à partir de plusieurs dimensions pour mieux l'adapter à différents environnements de marché. Dans l'ensemble, une stratégie de trading quantitative d'introduction simple et fiable adaptée aux traders novices à utiliser et à apprendre. Combinez davantage d'indicateurs et optimisez pour améliorer la rentabilité et la robustesse.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's ColorBar Strategy v1.0", shorttitle = "ColorBar str v1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") usebody = input(true, defval = true, title = "Use body") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Signals bar = close > open ? 1 : close < open ? - 1 : 0 body = abs(close - open) sbody = ema(body, 30) up1 = bar == -1 and (body > sbody or usebody == false) dn1 = bar == 1 and (body > sbody or usebody == false) plus = (close > strategy.position_avg_price and strategy.position_size > 0) or (close < strategy.position_avg_price and strategy.position_size < 0) exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and plus if up1 strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if dn1 strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if time > timestamp(toyear, tomonth, 31, 00, 00) or exit strategy.close_all()