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.
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.
Il s'agit d'une tendance typique suivant une stratégie présentant les points forts suivants:
Cette stratégie présente certains risques, principalement dans les aspects suivants:
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.
Compte tenu des risques ci-dessus, nous pouvons optimiser la stratégie à partir des aspects suivants:
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)