
Die Kernlogik dieser Strategie besteht darin, zu erkennen, ob die Schlusskurslinie der N-Rück-K-Linie in Folge gestiegen ist, und wenn ja, dann mehr zu tun; wenn nicht zufriedenstellend, dann ist die Position gleich. So kann die steigende Tendenz des Aktienpreises erfasst und ein Gewinn erzielt werden.
Der zentrale Indikator für diese Strategie ist der nCounter, der durch den Vergleich der aktuellen K-Linie mit dem Schlusskurs und dem Eröffnungskurs beurteilt, ob der Preis gestiegen ist.
Wenn man sich also “close”[1]>=open[1], dann nCounter plus 1, um den Aufstieg zu zeigen; wenn close[1]
Dann wird nCounter mit dem Parameter nLength verglichen, und wenn nCounter>=nLength, dann wird das Ausgangssignal C1=1; andernfalls C1=0。 hier ist nLength die Anzahl der K-Linien, die wir definieren, die benötigt werden, um das Signal zu erzeugen。
Nach dem Empfang des Signals C1 = 1 wird ein Plus ausgeführt, wenn keine Position derzeit gehalten wird; wenn bereits mehrere Positionen gehalten werden, wird die Haltung fortgesetzt.
Darüber hinaus wird in der Strategie eine Stop-Loss- und Stop-Stop-Bedingung festgelegt. Wenn der Preis unter einem bestimmten Prozentsatz des Einstiegspreises liegt, wird die Ausgleichsposition beendet; wenn der Einstiegspreis über einem bestimmten Prozentsatz liegt, wird ein Stop-Stop eingestellt.
Dies ist eine eher typische Trend-Tracking-Strategie, die folgende Vorteile hat:
Die Strategie birgt auch einige Risiken, die sich auf folgende Bereiche konzentrieren:
Um diese Risiken zu verringern, können wir strengere Stop-Loss-Bedingungen festlegen, die n-Length-Parameter optimieren, die Big-Stock-Regel hinzufügen oder die Parameter für verschiedene Aktien einzeln testen. Natürlich ist es schwierig, Verluste vollständig zu vermeiden, und jede Strategie muss mit den Risikopräferenzen des Händlers abgestimmt werden.
Angesichts der oben genannten Risiken können wir die Strategie in folgenden Bereichen weiter optimieren:
Die Strategie ermöglicht die Erfassung von Aufwärtstrends durch die Erkennung von N-Roten und K-Linien. Sie ermöglicht eine effektive Trendverfolgung. Die Vorteile sind die einfache Logik, die Flexibilität bei der Anpassung der Parameter und die Möglichkeit der Filterung von False Breakouts.
/*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)