
Die Hauptidee dieser Strategie ist die Kombination von Percentrank-Indikatoren und Parameter-Optimierung, um die Preisentwicklung zu beurteilen und zu verfolgen. Die Strategie erzeugt Handelssignale, indem sie die aktuellen Preise mit einem Prozentsatz der Preisgröße innerhalb eines bestimmten historischen Zeitraums vergleicht, um den Zwischenspiegel-Effekt zu erfassen, den Trend zu verfolgen und so überschüssige Gewinne zu erzielen.
Die Strategie verwendet den percentrank-Indikator, um die Preisentwicklung zu bestimmen. Der percentrank zeigt die relative Stärke des aktuellen Preises innerhalb des betrachteten Zeitraums an. Das Parameter len zeigt die Länge des betrachteten historischen Zeitraums an.
Der Wertbereich von percentrank liegt zwischen 0 und 100. Wenn der Wert von percentrank nahe bei 0 liegt, ist der aktuelle Preis nahe am niedrigsten Preis in der Überprüfungsperiode und gehört zur Unterbewertungszone. Wenn er nahe bei 100 liegt, ist der aktuelle Preis nahe am höchsten Preis in der Überprüfungsperiode und gehört zur Überbewertungszone.
Die Strategie führt auch die Scale-Parameter als Abweichung ein. So wird der Bereich von 0 bis 100 in den Bereich von Scale bis 100+ Scale verschoben. Gleichzeitig werden zwei Signallinien level_1 und level_2 eingestellt.
Wenn der Preis-Percentrank-Indikator von unten nach oben durch Level_1 geht, erzeugt er ein Blicksignal; wenn er von oben nach unten durch Level_2 geht, erzeugt er ein Blicksignal. Die Position ist im Gegensatz zum Einstiegssignal.
Für die oben genannten Risiken kann durch Anpassung der Parameter len, scale und level optimiert werden. Außerdem können andere Indikatoren als Bestätigung verwendet werden, um falsche Transaktionen zu vermeiden.
Die Strategie kann noch weiter optimiert werden:
Die Strategie ist klar konzipiert und nutzt quantitative Methoden zur Parameteroptimierung, um Preistrends zu beurteilen und zu verfolgen. Sie hat einen gewissen Einsatzwert, muss jedoch weiter getestet und optimiert werden, um das Einsatzrisiko zu verringern und die stabile Profitabilität zu verbessern.
/*backtest
start: 2023-12-02 00:00:00
end: 2024-01-01 00:00:00
period: 4h
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/
// © Alex_Dyuk
//@version=4
strategy(title="percentrank", shorttitle="percentrank")
src = input(close, title="Source")
len = input(title="lookback - Период сравнения", type=input.integer, defval=10, minval=2)
scale = input(title="scale offset - смещение шкалы", type=input.integer, defval=50, minval=0, maxval=100)
level_1 = input(title="sygnal line 1", type=input.integer, defval=30)
level_2 = input(title="sygnal line 2", type=input.integer, defval=-30)
prank = percentrank(src,len)-scale
plot(prank, style = plot.style_columns)
plot(level_2, style = plot.style_line, color = color.red)
plot(level_1, style = plot.style_line, color = color.green)
longCondition = (crossunder(level_1, prank) == true)
if (longCondition)
strategy.entry("Long", strategy.long)
longExitCondition = (crossover(level_2, prank) == true)
if (longExitCondition)
strategy.close("Long")
shortCondition = (crossover(level_2, prank) == true)
if (shortCondition)
strategy.entry("Short", strategy.short)
shortexitCondition = (crossunder(level_1, prank) == true)
if (shortexitCondition)
strategy.close("Short")