Quantitative Handelsstrategie basierend auf Ichimoku-Gleichgewicht und implizitem Konflikt


Erstellungsdatum: 2024-02-20 17:12:35 zuletzt geändert: 2024-02-20 17:12:35
Kopie: 0 Klicks: 606
1
konzentrieren Sie sich auf
1617
Anhänger

Quantitative Handelsstrategie basierend auf Ichimoku-Gleichgewicht und implizitem Konflikt

Überblick

Diese Strategie kombiniert die unmittelbare Gleichgewichts- und die unmittelbare Konflikt-Indikatoren, um eine relativ einfache quantitative Handelsstrategie zu realisieren. Sie erzeugt ein Kaufsignal, wenn die unmittelbare Gleichgewichtslinie höher ist als die unmittelbare Konfliktlinie und der Schlusskurs höher ist als die unmittelbare Gleichgewichtslinie. Sie erzeugt ein Verkaufssignal, wenn die unmittelbare Gleichgewichtslinie unter der unmittelbaren Konfliktlinie liegt und der Schlusskurs unter der unmittelbaren Gleichgewichtslinie liegt.

Strategieprinzip

Der Gleichgewichtsindikator besteht aus drei Kurven: die Vorwende, die Benchmark und die Verzögerungslinie. Die Vorwende stellt den Durchschnittspreis der jüngsten Periode dar, die Benchmark den Durchschnittspreis der längeren Periode. Die Verzögerungslinie ist in der Regel der Durchschnittswert der Vorwende und der Benchmark.

Der Hidden Conflict-Indikator besteht aus zwei Kurven, Priority Line A und Priority Line B. Sie stellen den Mittelwert für die Preisschwankungen in verschiedenen Längen dar. Wenn Priority Line A höher als Priority Line B ist, bedeutet dies, dass die kurzfristigen Schwankungen größer sind und die Preisschwankungen relativ groß sind.

Diese Strategie nutzt die Gleichgewichtslinie, um die ungefähre Trendrichtung zu bestimmen, die Preisdynamik durch die vorhergehende Leitung der versteckten Konflikte zu bestimmen und in Verbindung mit den Schließkursen ein genaues Handelssignal zu erzeugen. Kaufen Sie, wenn ein Aufwärtstrend auftritt und die Schwankungen sich vergrößern, und verkaufen Sie, wenn ein Abwärtstrend auftritt und die Schwankungen sich verringern, um damit zu profitieren.

Strategische Vorteile

Dies ist eine relativ einfache Quantitative Trading-Strategie, die folgende Vorteile hat:

  1. Mit einer Kombination von Indikatoren, die die Preisentwicklung und -dynamik zusammenfassen, sind die Handelssignale zuverlässiger.
  2. Es gibt nur einen bestimmten Durchbruchspunkt, um zu viele ungültige Geschäfte zu vermeiden.
  3. Kurzfristige Geschäfte mit hochflüchtigen Vermögenswerten sind sehr profitabel.
  4. Die Strategie ist einfach zu verstehen und zu ändern.
  5. Es ist leicht, weitere Indikatoren zu erweitern, um ein Multifaktormodell zu bilden.

Risikoanalyse

Es gibt einige Risiken, die mit dieser Strategie verbunden sind:

  1. Mistrade-Risiken. Ein Stop-Loss muss eingerichtet werden, um einzelne Verluste zu kontrollieren.
  2. Preisumkehrrisiko. Der Preis kann sich nach dem Signal des Indikators umkehren und zu Verlusten führen. Um dieses Risiko zu verringern, können die Haltungsbedingungen angemessen gelockert werden.
  3. Die Risiken der Parameteroptimierung. Die unterschiedlichen Parameter beeinflussen das Ergebnis erheblich und erfordern eine Kombination von Tests, um die optimalen Parameter zu finden.
  4. Überoptimierungsrisiken. Es ist notwendig, die Anzahl der Parameterkombinationen zu kontrollieren, um eine Überoptimierung zu vermeiden.

Strategieoptimierung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Versuchen Sie mehr Kombinationen von Indikatoren, um bessere Parameter zu finden. Häufig erprobte sind KDJ, BOLL, MACD usw.
  2. Einstieg in den Stop-Loss-Mechanismus. Setzen Sie den mobilen Stop-Loss oder den Multiplikator-Stop.
  3. Optimierung der Eintritts- und Auswahlkriterien.
  4. Optimieren Sie die Haltungsregeln. Sie können versuchen, die Stop-Loss-Zeit zu verkürzen oder die Stop-Loss-Grenze zu erhöhen.
  5. Mehr Elemente des maschinellen Lernens. Nutzung von neuronalen Netzwerken, um bessere Kombinationen von Parametern zu finden.

Zusammenfassen

Diese Strategie ist insgesamt eine sehr einfache quantitative Handelsstrategie, die die Gleichgewichtslinie und die Indikatoren für die versteckten Konflikte kombiniert, um die Preisentwicklung und -dynamik zu beurteilen und ein Handelssignal zu bilden. Die Strategie ist für den Kurzstreckenhandel mit hochvolatilen Vermögenswerten geeignet und kann gute Erträge erzielen. Natürlich kann keine Strategie perfekt sein, und die Strategie hat einen gewissen Optimierungsraum.

Strategiequellcode
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud + ema 50 Strategy", overlay=true)

len = input.int(50, minval=1, title="Length")
src = input(close, title="Source")
out = ta.ema(src, len)

conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(1, minval=1, title="Lagging Span")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
     title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

plot(out, title="EMA", color=color.white)

// Condition for Buy Signal
buy_signal = close > out and leadLine1 > leadLine2

// Condition for Sell Signal
sell_signal = close < out and leadLine2 > leadLine1

// Strategy entry and exit conditions
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Exit long position if candle closes below EMA 50
if (strategy.opentrades > 0)
    if (close < out)
        strategy.close("Buy")

// Exit short position if candle closes above EMA 50
if (strategy.opentrades < 0)
    if (close > out)
        strategy.close("Sell")