Stratégie de rupture de la bougie de Kana basée sur la moyenne mobile et la résistance de support

Auteur:ChaoZhang est là., Date: 2023-12-27 à 15h27h45
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de rupture rapide basée sur l'analyse technique du chandelier japonais, combinée à des indicateurs de moyenne mobile et à des indicateurs de résistance de support pour déterminer la tendance et la position.

La logique de la stratégie

La stratégie utilise une moyenne mobile simple de 20 périodes (SMA) et une moyenne mobile exponentielle de 200 périodes (EMA) pour déterminer la direction de la tendance. Lorsque le prix est en tendance haussière (SMA au-dessus de l'EMA), et que le corps réel du chandelier japonais actuel se ferme au-dessus de l'ouverture (corps blanc), cela indique un pouvoir d'achat renforcé. Lorsque le prix est en tendance baissière (SMA au-dessous de l'EMA), et que le corps réel du chandelier japonais actuel se ferme au-dessous de l'ouverture (corps noir), cela indique une pression de vente renforcée.

Avec la confirmation de la tendance et de l'élan, la stratégie attend une rupture rapide du prix et entre sur le marché. La soi-disant rupture signifie que le prix franchit la première ligne du canal des trois canaux ATR prédéfinis (calculé sur la base de l'ATR et des coefficients de 200 jours) et entre dans la deuxième ligne du canal. Il s'agit d'un signal de rupture à forte probabilité.

Après être entré sur le marché, les règles de prise de profit et de stop-loss sont très simples. Tant que le prix touche les limites extérieures du canal (telles que la ligne de prise de profit ou la ligne de stop-loss), il prendra immédiatement profit ou stop-loss. Cela garantit des gains rapides de la stratégie.

Analyse des avantages

Le plus grand avantage de cette stratégie est la prise de profit rapide avec un risque relativement faible. En entrant rapidement sur le marché après la rupture, il évite de multiples ajustements de positions. Et l'effet d'accélération apporté par la rupture de canal permet de réaliser de gros profits en peu de temps.

Comparé à la détention à long terme, un tel mécanisme d'ouverture et de fermeture efficace peut réduire considérablement le taux d'inactivité de la stratégie et améliorer encore l'efficacité du capital.

Analyse des risques

La stratégie repose principalement sur des indicateurs de moyenne mobile pour déterminer la direction de la tendance, avec le risque de recul et de consolidation.

En outre, la stratégie repose trop sur des indicateurs techniques sans combiner l'analyse des événements fondamentaux et significatifs.

Pour contrôler les risques, nous pouvons élargir de manière appropriée la plage de canaux pour réduire la fréquence d'ouverture; ou ajouter un module de gestion de position pour ajuster dynamiquement une seule position en fonction du capital total.

Optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Ajoutez un module de gestion de position, réglez dynamiquement une seule position d'ouverture en fonction de la taille du compte pour contrôler le pourcentage de perte.

  2. Lorsque les indicateurs techniques déclenchent des signaux d'ouverture, vérifiez les fondamentaux de l'entreprise et les événements importants pour éviter les anomalies.

  3. Combiner la gestion des stocks. Définir des règles pour ajuster dynamiquement le stock. Sélectionner le stock optimal à différentes étapes pour améliorer la stabilité.

  4. Combiner des modèles d'apprentissage automatique. Utiliser l'IA pour prédire les tendances et les niveaux de prix clés, aidant à déterminer la gamme de canaux et le moment de l'entrée.

Conclusion

La stratégie se caractérise par sa simplicité et son efficacité. Elle détermine la tendance majeure avec des moyennes mobiles, la direction de l'élan avec des bougies japonaises, entre avec une rupture rapide et sort avec une prise de profit rapide et un stop loss. Elle permet des gains à court terme adaptés au trading à haute fréquence. Mais elle comporte également le risque de retrait et d'incertitude. L'optimisation continue peut rendre la stratégie stable dans différents environnements de marché.


/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Kana with S/R Strategy", title = "KANA with S/R", overlay=true)

len = input(20, minval=1, title="Length")
multiplier1 = input(1, minval=1, title="multiplier1")
multiplier2 = input(2, minval=1, title="multiplier2")
multiplier3 = input(3, minval=1, title="multiplier3") 
srTimeFrame = input(240, minval=1, title="Support Resistance TimeFrame")
useSR = input(true, type = bool, title="Use Support/Resistance")
tpPercent = input(0.5, type=float, title = "Take Profit Percent")
useTP = input(false, type=bool, title = "Use Take Profit")
tp = (close * tpPercent / 100) / syminfo.mintick

src = input(close, title="Source")
mid = sma(src, len)
plot(mid, title="SMA", color=blue)

trend = ema(close, 200)
plot(trend, title="Trend", color=green)


upper1 = mid + atr(200) * multiplier1
upper2 = mid + atr(200) * multiplier2
upper3 = mid + atr(200) * multiplier3

lower1 = mid - atr(200) * multiplier1
lower2 = mid - atr(200) * multiplier2
lower3 = mid - atr(200) * multiplier3

plot(upper1, color = orange)
plot(upper3, color = red)

plot(lower1, color = orange)
plot(lower3, color = red)

haClose = request.security(heikinashi(syminfo.tickerid), timeframe.period, close)
haOpen = request.security(heikinashi(syminfo.tickerid), timeframe.period, open)

resistance = request.security(syminfo.tickerid,tostring(srTimeFrame), high)
support  = request.security(syminfo.tickerid,tostring(srTimeFrame), low)
rsPos = (close - support[srTimeFrame]) / (resistance[srTimeFrame] - support[srTimeFrame])

MACD = ema(close, 120) - ema(close, 260)
aMACD = ema(MACD, 90)
hisline = MACD - aMACD

longCondition = (mid > trend) and (haOpen[1] < haClose[1]) and (mid > mid[1]) and (close < upper1) and hisline > 0 and (useSR == true ? (rsPos > 100) : true)
shortCondition = (mid < trend) and (haOpen[1] > haClose[1]) and (mid < mid[1]) and (close > lower1) and hisline < 0 and (useSR == true ? (rsPos < 0) : true)

longExit = (close > upper3 ) or (close < lower2)
shortExit = (close < lower3) or (close > upper2)

if (longCondition)
    strategy.entry("Long", strategy.long)
    if (useTP)
        strategy.exit("Exit Long", "Long", profit = tp)
        
if (longExit)
    strategy.close("Long")
    
if (shortCondition)
    strategy.entry("Short", strategy.short)
    if (useTP)
        strategy.exit("Exit Short", "Short", profit = tp)
    
if (shortExit)
    strategy.close("Short")

Plus de