Die Strategie nennt sich Trend-Tracking-Strategie, die auf drei verschiedenen Arten von Trend-Indikatoren basiert, die zusammen eine Cloud bilden, um Trends zu verfolgen, wenn der Preis die Cloud durchbricht.
Die Strategie basiert auf drei Indikatoren:
Kaufman ist ein flexibler Moving Average, der die Schwankungen des Marktes erfasst.
Hull Moving Averages, mit einer glatten Umdrehung, die falsche Signale filtern kann;
Es gibt eine Überschwänglichkeits-Stop-Mechanismus, um einen Preiskanal zu schaffen, um zu verhindern, dass die Preise nach oben oder unten gehen.
Diese drei Gruppen bilden zusammen eine Wolkenform, wobei die oberste Wolke die höchste und die untere die niedrigste ist.
Die spezifische Transaktionslogik:
Wenn der K-Hochpunkt die Wolkenhöhe durchbricht, zeigt dies einen Durchbruch in den Aufwärtstrendkanal und erzeugt ein Kaufsignal;
Wenn der K-Linien-Abschluss oder der Tiefpunkt die Wolkenbodenbreche erreicht, zeigt dies den Beginn eines Abwärtstrends und gleicht die Positionen aus.
Der Vorteil dieser Strategie ist, dass die Indikatorkombination den Trendstatus genauer beurteilt und die Falschsignale reduziert. Die Optimierung der Parameter ist jedoch weiterhin entscheidend. Eine Stop-Loss-Strategie ist ebenfalls unerlässlich.
Im Allgemeinen ist die Integration von mehreren Indikatoren eine übliche und effektive Methode, aber der Händler muss immer noch genügend Urteilsvermögen und Flexibilität bei der Anpassung seiner Strategie haben.
/*backtest
start: 2022-09-12 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
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/
// © SnarkyPuppy
//@version=5
strategy("HKST Cloud", overlay=true, default_qty_type= strategy.percent_of_equity, default_qty_value=100)
////////////////nAMA
Lengthkaufman = input(20)
xPrice = ohlc4
xvnoise = math.abs(xPrice - xPrice[1])
nfastend = 0.666
nslowend = 0.0645
nsignal = math.abs(xPrice - xPrice[Lengthkaufman])
nnoise = math.sum(xvnoise, Lengthkaufman)
nefratio = nnoise != 0? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMA = float(0)
nAMA := nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
//plot(nAMA,color=color.red)
///short=input(true)
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
////////hull moving average
hull_len=input(20)
hull= ta.hma(nAMA,hull_len)
///////atr trail
atr_factor=input(2)
atr_period=input(5)
[supertrend, direction] = ta.supertrend(atr_factor,atr_period)
/////////cloud
band1= math.max(supertrend,hull,nAMA)
band2= math.min(supertrend,hull,nAMA)
b1=plot(band1, "band1", color = color.rgb(76, 175, 79, 85), style=plot.style_linebr)
b2=plot(band2, "band2", color = color.rgb(255, 82, 82, 78), style=plot.style_linebr)
fill(b1,b2,color.rgb(12, 50, 186, 75))
longCondition = ta.crossover(high,band1) //or ta.crossover(low,band2)
if (longCondition)
strategy.entry("Up", strategy.long)
shortCondition = ta.crossunder(low,band2) or close<band2
if (shortCondition)
strategy.close("Up", shortCondition)