
Die Strategie nutzt in Kombination zwei Indikatoren, den Dual Exponential Moving Average (DEMA) und den Bandpassfilter (BPF), um die Doppelfilterung von Überkaufen und Überkaufen zu durchbrechen und ein stabiles Handelssignal zu erzeugen, um den Gewinn zu maximieren.
Die Strategie besteht aus zwei Unterstrategien:
Die Verwendung von 2- und 20-Tage-Doppelindex-Moving Averages bildet die Gold-Fork-Kauf- und Todesfork-Verkaufssignale. Der Indikator filtert die teilweise Preislärm, um Trends zu erkennen.
Der BPF-Indikator kombiniert mathematische Transformationen, um die Komponenten zu erkennen, die sich im Preis wiederholen, und bildet eine Überkauf-Überverkaufszone innerhalb eines bestimmten Zyklus, um ein Handelssignal zu senden. Diese Strategie ist auf einen 20-Tage-Zyklus und einen Regulierungsparameter von 0,5 eingestellt.
In Kombination mit den beiden wird ein gleichzeitiger Mehrfach-Durchlauf-Signal verwendet, der zeigt, dass sowohl der Trend als auch der Zyklusfaktor verifiziert sind und daher eine höhere Vertrauenswürdigkeit haben, was zu einem stabileren Einstiegs- und Ausstiegspunkt führt.
Der größte Vorteil dieser Strategie liegt in der Doppel-Indikator-Filterung, die die Signale stabiler und zuverlässiger macht. DEMA gleicht die Preise und erkennt die Trendrichtung. BPF erkennt die Kreislaufmerkmale und identifiziert die überkauften und überverkauften Bereiche. Die Überprüfung der beiden Kreuzungen reduziert die Wahrscheinlichkeit von falschen Signalen, die durch Preislärm und die periodische Anpassung erzeugt werden, erheblich.
Außerdem ist die Strategie selbst nicht so häufig gehandelt, um den Verlust von Kapital und Gebühren für übermäßige Transaktionen zu vermeiden. Die Haltedauer wird von der mittleren bis langen Linie dominiert, was dazu beiträgt, die Auswirkungen von zufälligen Schwankungen zu vermeiden.
Die größte Gefahr besteht darin, die Marktlage falsch zu beurteilen. In einem bewegten Umfeld kann leicht ein falsches Signal erzeugt werden; bei einer Trendwende kann der Stop-Loss größer sein. Darüber hinaus können Probleme mit der Parameter-Einstellung einen großen Einfluss auf die Strategie haben.
Diese Risiken können kontrolliert und verbessert werden, indem die Kennzahlen optimiert, die Stop-Loss-Stopps gesetzt und andere Kennzahlen kombiniert werden. Wenn der Markt in eine Phase der Erschütterung und des Wechselns geraten ist, kann eine Aussetzung der Strategie in Betracht gezogen werden, um Störungen durch ungünstige Verhaltensweisen zu vermeiden.
Die Strategie kann in folgenden Bereichen optimiert werden:
Zeitzyklusoptimierung. Verschiedene DEMA- und BPF-Parameter-Einstellungen werden getestet, um die optimale Zykluskombination zu ermitteln.
Erhöhen Sie die Stop-Loss-Stopp-Einstellung. Setzen Sie eine angemessene Stop-Loss-Marge, um zu verhindern, dass die Verluste sich ausdehnen.
Zusätzliche Filter für andere Kennzahlen wie Volumen, MACD usw. werden hinzugefügt, um zu vermeiden, dass die Signale durch eine große Anzahl von Reduzierungsspielen fehlgeleitet werden.
Optimierung der Anpassung der Parameter. Damit können die Parameter von DEMA und BPF dynamisch an die neuesten Marktbedingungen angepasst werden, um die Echtzeit der Indikatoren zu gewährleisten.
Die Strategie integriert die Vorteile von zwei Indikatoren, Doppel-EMA und BPF, Doppel-Filter verbessert die Signalqualität und strebt nach einer stabilen mittleren Gewinnlinie. Das Risiko besteht hauptsächlich aus Fehleinschätzung der Marktsituation und falscher Parameterstellung. Durch Multi-Indikator-Verifizierung, dynamische Optimierung der Parameter usw. kann die Strategie flexibler und anpassungsfähiger und kostengünstiger gemacht werden.
/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 05/04/2022
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The related article is copyrighted material from
// Stocks & Commodities Mar 2010
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
pos = 0.0
xPrice = close
xXA = ta.ema(xPrice, Length)
nHH = math.max(high, high[1])
nLL = math.min(low, low[1])
nXS = nLL > xXA or nHH < xXA ? nLL : nHH
iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
pos := nXS > close[1] ? -1 : iff_1
pos
BPF(Length,Delta,SellZone,BuyZone) =>
pos = 0.0
xPrice = hl2
beta = math.cos(3.14 * (360 / Length) / 180)
gamma = 1 / math.cos(3.14 * (720 * Delta / Length) / 180)
alpha = gamma - math.sqrt(gamma * gamma - 1)
BP = 0.0
BP := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(BP[1]) - alpha * nz(BP[2])
pos:= BP > SellZone ? 1 :
BP <= BuyZone? -1 : nz(pos[1], 0)
pos
strategy(title='Combo 2/20 EMA & Bandpass Filter', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Bandpass Filter ═════●'
LengthBPF = input.int(20, minval=1, group=I2)
Delta = input(0.5, group=I2)
SellZone = input.float(5, step = 0.01, group=I2)
BuyZone = input.float(-5, step = 0.01, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosBPF = BPF(LengthBPF,Delta,SellZone,BuyZone)
iff_1 = posEMA20 == -1 and prePosBPF == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBPF == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
strategy.entry('Long', strategy.long)
if possig == -1
strategy.entry('Short', strategy.short)
if possig == 0
strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)