Stratégie de trading du marteau haussier


Date de création: 2023-09-18 15:30:15 Dernière modification: 2023-09-18 15:48:15
Copier: 0 Nombre de clics: 680
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie permet de suivre le cours des actions en identifiant les signaux de K-lignes et en les associant à l’indicateur MACD pour déterminer la direction de la tendance. Dans un marché haussier, une entrée de plus est effectuée lorsqu’une forme de K-ligne apparaît et que le contexte du MACD est à plusieurs têtes.

Principe de stratégie

Calculer la proportion de la taille du segment de l’entité, déterminer la ligne de torsion multicouche. Calculer l’indicateur MACD pour déterminer la direction de la tendance.

Analyse des avantages

  • L’identification des lignes en forme d’anneau à plusieurs têtes est simple et claire.
  • Le MACD est un bon indicateur de la conversion de la tendance à la hausse.
  • Opérez selon les tendances et évitez d’être piégé
  • La logique de la stratégie est simple, directe et facile à mettre en œuvre

Analyse des risques

  • La reconnaissance de la forme n’est pas complètement précise, il y a un signal manquant.
  • Le MACD a estimé que le renversement de tendance était en retard.
  • La fréquence de négociation est basse et ne convient pas aux transactions à haute fréquence.
  • Il n’est pas possible de déterminer le point de basculement, il y a un risque de perte

Il est possible d’assouplir les conditions d’identification des formes, de réduire les paramètres MACD, d’aider d’autres indicateurs, etc. pour contrôler le risque.

Direction d’optimisation

  • Règles de paramètres pour optimiser la reconnaissance des lignes oblique
  • Tester l’efficacité des différents paramètres du MACD
  • Considérer une inversion de tendance en combinaison avec d’autres indicateurs
  • Paramètres de test de robustesse dans différentes variétés

Résumer

La stratégie intègre les formes et les indicateurs pour déterminer les tendances, ce qui permet de réaliser des bénéfices stables. Elle peut être améliorée par l’optimisation des paramètres et peut devenir une stratégie de trading quantitative pratique.

Code source de la stratégie
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 3h
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/
// © FenixCapital

//@version=4
strategy("Starbux", overlay=true)


//VARIABLES

//Candlestick Variables
body=close-open
range=high-low
middle=(open+close)/2
abody=abs(body)
arange=abs(range)
ratio=abody/range
longcandle= (ratio>0.6)
bodytop=max(open, close)
bodybottom=min(open, close)
shadowtop=high-bodytop
shadowbottom=bodybottom-low

//Closing Variables

macd=macd(close,12,26,9)
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
//plot(macdLine, color=color.blue)
//plot(signalLine, color=color.orange)
//plot(histLine, color=color.red, style=plot.style_histogram)

rsi=rsi(close,14)

sma50= sma(close,50)
sma200= sma(close,200)

exitrsi=rsi > 76
exitmacd=macdLine >0 and signalLine>0
//exitmacd=crossunder(macdLine,signalLine)
stopprice= crossunder(sma50,sma200)

//Candlestick Plotting
blh = (arange*0.33>=abody and close>open and shadowbottom>=abody*2 and shadowtop<=arange*0.1)
plotshape(blh, title= "Bullish Hammer", location=location.belowbar, color=color.lime, style=shape.arrowup, text="Bull\nHammer")

//beh = (arange*0.25>=abody and close<open and shadowtop>=abody*2 and shadowbottom<=arange*0.05)
//plotshape(beh, title= "Bearish Hammer", color=color.orange, style=shape.arrowdown, text="Bear\nHammer")

//bpu = (open>close and close>low and shadowbottom>2*abody)
//plotshape(bpu, title= "Black Paper Umbrella", color=color.red, style=shape.arrowdown, text="Black\nPaper\nUmbrella")

//Trend Signal
bull5= sma50 > sma200
bullmacd=macdLine>=0 and signalLine>=0
bearmacd=macdLine<= 0 and signalLine<=0

//Trading Algorithm
longCondition = blh and bearmacd and volume>volume[1]

if (longCondition)
    strategy.order("Buy", true, 1, when=longCondition)
strategy.risk.max_position_size(10)
//strategy.risk.max_drawdown(25,strategy.percent_of_equity)

exitlong = exitmacd
if (exitlong)
    strategy.close_all()