N Stratégie de rupture de clôture à hauteur consécutive

Auteur:ChaoZhang est là., Date: 2023-12-08 10:50:54 Je vous en prie.
Les étiquettes:

img

Résumé

La logique de base de cette stratégie est de détecter si le prix de clôture de N bougies consécutives continue d'augmenter. Si oui, allez long; sinon, position fermée. Cela peut capturer la tendance haussière du prix de l'action et faire un profit.

Principe de stratégie

L'indicateur de base de cette stratégie est nCounter. Il compare le prix de clôture et le prix d'ouverture de la bougie courante pour juger si le prix augmente.

Plus précisément, si close[1]>=open[1], nCounter ajoute 1, ce qui indique la hausse; si close[1]

Ensuite, comparez nCounter avec le paramètre nLength. Lorsque nCounter>=nLength, le signal de sortie C1=1; sinon C1=0. Ici nLength est le nombre de bougies ascendantes consécutives que nous avons définies pour générer le signal.

Après réception du signal C1=1, si la position actuelle n'existe pas, passez à la position longue; si vous êtes déjà en position longue, restez en attente.

En outre, cette stratégie définit des conditions de stop loss et de take profit. Si le prix tombe en dessous du prix d'entrée d'un certain pourcentage, le stop loss quitte la position; si il dépasse le prix d'entrée d'un certain pourcentage, profitez.

Analyse des avantages

Il s'agit d'une tendance typique suivant une stratégie présentant les points forts suivants:

  1. Il peut saisir les opportunités de tendance haussière du cours de l'action, adapté comme stratégie longue
  2. N augmentations consécutives en tant que signal d'entrée peuvent filtrer efficacement la fausse rupture et réduire les transactions inutiles
  3. La mise en place d'un stop loss et d'un take profit peut limiter le risque à la baisse et bloquer les bénéfices
  4. La logique est simple et claire, facile à comprendre et à modifier
  5. La fréquence de négociation peut être contrôlée en ajustant le paramètre nLength

Analyse des risques

Cette stratégie présente certains risques, principalement dans les aspects suivants:

  1. Si la tendance haussière s'inverse, le fait de ne pas arrêter les pertes à temps peut entraîner d'énormes pertes
  2. Si nLength est trop grand, de bonnes opportunités d'entrée peuvent être manquées
  3. Il ne tient pas compte de l'environnement du marché.
  4. L'utilisation de paramètres unifiés sans ajustement en fonction des différentes caractéristiques des stocks peut ne pas s'appliquer à certains stocks

Pour réduire ces risques, nous pouvons définir un stop loss plus strict, optimiser nLength, ajouter des règles de conditions de marché ou tester des paramètres séparément pour différents stocks.

Directions d'optimisation

Compte tenu des risques ci-dessus, nous pouvons optimiser la stratégie à partir des aspects suivants:

  1. Ils peuvent ajuster le point de stop loss en conséquence en fonction de la variation du prix pour réduire le risque de perte
  2. Optimisez le paramètre nLength. Testez respectivement pour différents types de stocks pour trouver des valeurs de paramètres plus appropriées
  3. Ajouter un jugement sur l'environnement du marché. Par exemple, mettre en pause les transactions lorsque le marché s'effondre pour éviter des pertes supplémentaires sur le marché baissier
  4. Ajouter d'autres facteurs comme le volume comme conditions auxiliaires. Par exemple, nécessiter un volume accru pendant la tendance haussière pour assurer la validité de la rupture
  5. Réglez le contrôle de retrait comme le pourcentage de perte maximal autorisé, les temps de perte consécutifs maximaux, etc. pour arrêter la perte contrôlant automatiquement la perte globale

Conclusion

Cette stratégie capture la tendance haussière en détectant N bougies ascendantes consécutives. Elle peut effectuer efficacement le suivi de la tendance. Les avantages sont la logique simple, le réglage flexible des paramètres, le filtrage de la fausse rupture. Mais il y a aussi des risques. Elle doit ajouter des modules tels que le stop loss, l'optimisation des paramètres, le jugement de l'environnement pour s'améliorer.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive higher closes. Returns a value 
// of 1 when the condition is true or 0 when false.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="N Bars Up", shorttitle="NBU Backtest", overlay = false) 
nLength = input(4, minval=1)
input_takeprofit = input(20, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
nCounter = 0
nCounter := iff(close[1] >= open[1], nz(nCounter[1],0)+1,
             iff(close[1] < open[1], 0, nCounter))
C1 = iff(nCounter >= nLength, 1, 0)
posprice = 0.0
pos = 0
barcolor(nz(pos[1], 0) == -1 ? color.red: nz(pos[1], 0) == 1 ? color.green : color.blue ) 
posprice := iff(C1== 1, close, nz(posprice[1], 0)) 
pos := iff(posprice > 0, 1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == 1)
    strategy.entry("Long", strategy.long)
posprice := iff(low <= posprice - input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
plot(C1, title='NBU', color=color.green)

Plus de