Strategie auf Basis eines dreifachen Indikator-Wolkenmusters

Schriftsteller:ChaoZhang, Datum: 2023-09-13 17:38:55
Tags:

Diese Strategie heißt Trend Following Strategy Based on Triple Indicator Cloud Pattern. Sie integriert drei verschiedene Arten von Trendindikatoren, um ein Cloud-Muster zu bilden.

Die drei verwendeten Indikatoren sind:

Kaufman Adaptive Moving Average, empfindlich bei der Erfassung von Marktvolatilität.

Hull Moving Average, mit seinen glatten Kurven, filtert falsche Signale aus.

SuperTrend-Mechanismus, bei dem Preiskanäle gebildet werden, um Höchststände und Tiefstände zu vermeiden.

Zusammen bilden sie das Wolkenmuster, wobei das obere Band die höchsten Werte der drei und das untere Band die niedrigsten Werte darstellt.

Die Handelslogik lautet:

Wenn das Kerzenhoch über die Wolkenoberfläche bricht, signalisiert es, dass der Aufwärtstrendkanal für ein Kaufsignal gebrochen wird.

Wenn der Schlusseffekt unterhalb des Wolkenbodens liegt, markiert er den Beginn eines Abwärtstrends für die Schließung von Longs.

Der Vorteil dieser Strategie ist, dass die Indikatorkombination den Trendstatus genauer beurteilt und falsche Signale reduziert.

Zusammenfassend ist die Verwendung mehrerer Indikatoren zur Bestimmung von Trends ein üblicher und effektiver Ansatz.


/*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)



Mehr