Die Kernlogik dieser Strategie besteht darin, festzustellen, ob der Schlusskurs von N aufeinanderfolgenden Kerzen weiter steigt. Wenn ja, gehen Sie lang; andernfalls schließen Sie die Position. Dies kann den Aufwärtstrend des Aktienkurses erfassen und Gewinn erzielen.
Der Kernindikator dieser Strategie ist der nCounter. Er vergleicht den Schlusskurs und den Eröffnungskurs der aktuellen Kerze, um zu beurteilen, ob der Preis steigt.
Insbesondere wenn close[1]>=open[1], fügt nCounter 1 hinzu, was einen Anstieg anzeigt; wenn close[1]
Wenn nCounter>=nLength, Ausgangssignal C1=1; andernfalls C1=0. Hier nLength ist die Anzahl der aufeinanderfolgenden aufsteigenden Kerzen, die wir definiert haben, um ein Signal zu erzeugen.
Nach Empfang des C1=1-Signals, wenn keine aktuelle Position vorhanden ist, gehen Sie lang; wenn Sie bereits in der langen Position sind, halten Sie an.
Wenn der Preis um einen bestimmten Prozentsatz unter den Einstiegspreis fällt, tritt der Stop-Loss aus der Position aus; steigt er um einen bestimmten Prozentsatz über den Einstiegspreis, wird der Gewinn erzielt.
Dies ist ein typischer Trend nach einer Strategie mit folgenden Stärken:
Diese Strategie birgt einige Risiken, hauptsächlich in folgenden Bereichen:
Um diese Risiken zu reduzieren, können wir strengere Stop-Losss festlegen, nLength optimieren, Marktbedingungen-Regeln hinzufügen oder Testparameter separat für verschiedene Aktien verwenden.
Unter Berücksichtigung der oben genannten Risiken können wir die Strategie aus folgenden Aspekten optimieren:
Diese Strategie erfasst den Aufwärtstrend, indem sie N aufeinanderfolgende aufsteigende Kerzen erkennt. Sie kann effektiv dem Trend folgen. Die Vorteile sind einfache Logik, flexible Parameter-Tuning, Filterung falscher Ausbrüche. Es gibt aber auch einige Risiken. Sie muss Module wie Stop-Loss, Parameteroptimierung, Umweltbeurteilung hinzufügen, um zu verbessern. Insgesamt bietet diese Strategie ein wertvolles Basismodell für den quantitativen Handel. Sie kann nach kontinuierlicher Verbesserung zu einem leistungsstarken Handelswerkzeug werden.
/*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)