Williams Doppel-Exponential-Bewegtem Durchschnitt und Ichimoku Kinkou Hyo Strategie

Schriftsteller:ChaoZhang, Datum: 2024-02-18 16:20:12
Tags:

img

Übersicht

Diese Strategie kombiniert den Williams Double Exponential Moving Average und Ichimoku Kinkou Hyo, zwei technische Indikatoren, um ihre jeweiligen Vorteile zu nutzen und die Genauigkeit von Handelsentscheidungen zu verbessern.

Grundsätze

Der Williams-Doppel-Exponential-Bewegliche Durchschnitt enthält eine schnelle Linie und eine langsame Linie. Die schnelle Linie wird mit der Formel berechnet: 2 * ((n/2 Periode Gewichteter Beweglicher Durchschnitt), und die langsame Linie wird mit: n Periode Gewichteter Beweglicher Durchschnitt berechnet. Wenn die schnelle Linie über die langsame Linie von unten kreuzt, ist es ein Kaufsignal; wenn sie von oben nach unten kreuzt, ist es ein Verkaufssignal.

Ichimoku Kinkou Hyo besteht aus vier Komponenten: dem Tenkan Sen, dem Kijun Sen, der Führungslinie und den Wolkeschichten. Ein goldenes Kreuz zwischen dem Tenkan Sen und dem Kijun Sen ist ein Kaufsignal, während ein Todeskreuz ein Verkaufssignal ist. Wenn die Preise über oder unter die oberen oder unteren Ränder der Wolkeschichten durchbrechen, signalisiert dies jeweils einen Kauf oder Verkauf.

Diese Strategie kombiniert die Stärken beider Indikatoren. Der erste Determinant ist ein Signal des Williams-Indikators, und der zweite ist eine Bestätigung von Ichimoku Kinkou Hyo, die falsche Signale effektiv herausfiltert und die Entscheidungsgenauigkeit verbessert.

Vorteile

  1. Der Williams Double Exponential Moving Average reagiert empfindlich und kann eine starke Trendrichtung bestimmen.
  2. Ichimoku Kinkou Hyo gibt führende Urteile und warnt vor Trendumkehrungen.
  3. Durch die Kombination der beiden Indikatoren können sie sich gegenseitig validieren und falsche Signale reduzieren.
  4. Die Parameter lassen sich an unterschiedliche Zykluslängen und Produkte anpassen.

Risiken und Optimierung

  1. Bei nicht-trendigen Märkten können häufige Signale auftreten. Parameter können angepasst werden, um einige Signale auszufiltern.
  2. Es kann eine gewisse Verzögerung bei den Überschreitungen zwischen den schnellen und langsamen Linien geben.
  3. Es wird empfohlen, sie mit Trend- oder Volatilitätsindikatoren zu kombinieren, um weitere falsche Signale zu vermeiden.

Zusammenfassung

Diese Strategie nutzt die Fähigkeiten des Williams-Indikators zur Beurteilung von Trendrichtungen und Ichimoku Kinkou Hyo voll aus, um Frühwarnungen vor Umkehrungen zu liefern und die Genauigkeit von Handelsentscheidungen erheblich zu verbessern.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy("Hull MA-X + Ichimoku Kinko Hyo", shorttitle="Hi", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)

keh=input(title="Double HullMA",defval=12, minval=1)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green

TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods")
KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods")
SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods")
displacement = input(24, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
TenkanSen = donchian(TenkanSenPeriods)
KijunSen = donchian(KijunSenPeriods)
SenkouSpanA = avg(TenkanSen, KijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)
SenkouSpanH = max(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1])
SenkouSpanL = min(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1])
ChikouSpan = close[displacement-1]

Hullfast=plot(n1,color=c)
Hullslow=plot(n2,color=c)
plot(cross(n1, n2) ? n1:na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1:na, style = line, color=d, linewidth = 3)
plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2)
plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3)
plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2)
sa=plot (SenkouSpanA, offset = displacement, color=green,  title="Senkou Span A", linewidth = 2)
sb=plot (SenkouSpanB, offset = displacement, color=red,  title="Senkou Span B", linewidth = 3)
fill(sa, sb, color = SenkouSpanA > SenkouSpanB ? green : red)

longCondition = n1>n2 and close>n2 and close>ChikouSpan and close>SenkouSpanH and (TenkanSen>KijunSen or close>KijunSen)
if (longCondition)
    strategy.entry("Long",strategy.long)

shortCondition = n1<n2 and close<n2 and close<ChikouSpan and close<SenkouSpanL and (TenkanSen<KijunSen or close<KijunSen)
if (shortCondition)
    strategy.entry("Short",strategy.short)

closelong = n1<n2 and close<n2 and (TenkanSen<KijunSen or close<TenkanSen or close<KijunSen or close<SenkouSpanL)
if (closelong)
    strategy.close("Long")

closeshort = n1>n2 and close>n2 and (TenkanSen>KijunSen or close>TenkanSen or close>KijunSen or close>SenkouSpanH)
if (closeshort)
    strategy.close("Short")

Mehr