
Diese Strategie basiert auf der traditionellen Strategie zur Umkehrung von Levers, die hauptsächlich durch die Berechnung des ATR und die Einstellung des ATR-Filterfaktors optimiert wird, um einige bedeutungslose Levers zu filtern und nur die wirklich wichtigen Levers zu handeln.
Die Kernlogik der Strategie ist die Berechnung von wichtigen Hoch- und Tiefpunkt-Begleitpunkten. Die Hauptschritte zur Berechnung von Hochpunkt-Begleitpunkten sind:
Die Logik der Berechnung der Tiefpunktspitzen ist ähnlich.
Nach Erreichen eines wichtigen Stützpunktes, machen Sie einen Shortfall, wenn der Preis den wichtigen Hochpunkt überschreitet; machen Sie einen Plus, wenn der Preis den wichtigen Tiefpunkt überschreitet.
Die wichtigsten Vorteile dieser Strategie sind:
Die wichtigsten Risiken dieser Strategie sind:
Um die oben genannten Risiken zu kontrollieren, können Optimierungen in folgenden Bereichen vorgenommen werden:
Die Strategie kann in folgenden Richtungen weiter optimiert werden:
In Kombination mit anderen Indikatoren, um die Markttrend-Zustand zu beurteilen, um zu vermeiden, dass Umkehrungen in der Trend-Situation auftreten. Es kann in Betracht gezogen werden, Indikatoren wie MACD, KDJ und andere hinzuzufügen.
Die Optimierung der Parameter durch die Zugabe von Machine Learning-Algorithmen und die automatische Optimierung der Parameter. Die Optimierung der Parameter kann mit Methoden wie genetischen Algorithmen oder Random Forests durchgeführt werden.
Hinzufügen von quantitativen Daten zum Trainieren, um den optimalen ATR-Bereich zu finden. Die Hinzufügung von Historikern kann die Genauigkeit der Parameterwahl verbessern.
Es kann auch in Kombination mit anderen Strategien verwendet werden, um die Vorteile verschiedener Arten von Strategien zu nutzen.
Diese wichtige Stützpunkt-Umkehrstrategie filtert sinnlose kleine Schwankungen durch die Berechnung von ATR und die Einstellung eines Filterfaktors. Umkehrgeschäfte nur an wichtigen Stützpunkten können die Ertragslage der Strategie effektiv erhöhen. Gleichzeitig erhöht sich die Schwierigkeit der Optimierung bestimmter Parameter, um die optimalen Parameter aus mehreren Aspekten zu finden.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("QuantNomad - Significant Pivot Reversal Strategy", shorttitle = "SPPS", overlay=true)
// Inputs
leftBars = input(4, title = 'PP Left Bars')
rightBars = input(2, title = 'PP Right Bars')
atr_length = input(14, title = 'ATR Length')
atr_mult = input(0.1, title = 'ATR Mult')
// Pivot High Significant Function
pivotHighSig(left, right) =>
pp_ok = true
atr = atr(atr_length)
for i = 1 to left
if (high[right] < high[right+i] + atr * atr_mult)
pp_ok := false
for i = 0 to right-1
if (high[right] < high[i] + atr * atr_mult)
pp_ok := false
pp_ok ? high[right] : na
// Pivot Low Significant Function
pivotLowSig(left, right) =>
pp_ok = true
atr = atr(atr_length)
for i = 1 to left
if (low[right] > low[right+i] - atr * atr_mult)
pp_ok := false
for i = 0 to right-1
if (low[right] > low[i] - atr * atr_mult)
pp_ok := false
pp_ok ? low[right] : na
swh = pivotHighSig(leftBars, rightBars)
swl = pivotLowSig (leftBars, rightBars)
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])
if (le)
strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", stop=hprice + syminfo.mintick)
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
if (se)
strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)