Ichimoku: Früherer Cloud-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-12 16:11:09
Tags:

img

Übersicht

Die Ichimoku Early Cloud Trend Following Strategie ist eine Trendfolgsstrategie, die auf dem beliebten Ichimoku Cloud Indikator basiert. Sie nutzt die Crossover-Linien der Ichimoku Cloud, um frühe Eintrittssignale zu generieren und Trends im Voraus zu erfassen.

Strategie Logik

Die Strategie beruht hauptsächlich auf folgenden Elementen:

  1. Konstruieren Sie die Ichimoku-Wolke mit Hilfe der Konversionslinie und der Basislinie und zeichnen Sie die Wolke mit einer 26-Perioden-Verlagerung.

  2. Auslösen eines langen Signals, wenn die Nähe über der Spitze der Wolke bricht; Auslösen eines kurzen Signals, wenn die Nähe unterhalb der Wolke bricht.

  3. Erfordern, dass die Konvertierungs- und Basislinien nahe sind, um auch die maximale Brechzeit der Konversions- und Basislinien zu überschreiten, um falsche Ausbrüche auszufiltern.

  4. Optional ein Stop-Loss von 5% auf Basis des Einstiegspreises.

Mit einer solchen mehrschichtigen Filterung kann er effektiv Trendumkehrpunkte identifizieren und aufkommende Handelschancen rechtzeitig erfassen.

Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Ichimoku Cloud Crossover Linien haben klare frühe Anzeichen vor einer Trendumkehr.
  2. Die Einbeziehung gleitender Durchschnitte verhindert einen falschen Ausbruch aufgrund von Übernachtungslücken.
  3. Mehrfache Filterbedingungen reduzieren falsche Signale und verbessern die Signalqualität.
  4. Lange Haltemöglichkeiten führen zu geringeren Abzügen und einer leichteren Gewinnentnahme.
  5. Anwendbar auf verschiedene Produkte, insbesondere auf Trend-Instrumente.

Risiken

Es gibt auch einige Risiken, die zu berücksichtigen sind:

  1. Funktioniert besser für Trending-Märkte; kann mehr falsche Signale während der Bereichsgebundenen Perioden erzeugen.
  2. Ichimoku-Parameter müssen für verschiedene Produkte optimiert werden.
  3. Die Platzierung von Stop Loss erfordert Vorsicht, um einen vorzeitigen Ausstieg zu vermeiden.
  4. Relativ geringe Signalfrequenz, neigt dazu, kurzfristige Chancen zu verpassen.

Die Risiken können verringert werden, indem

  1. Wählen Sie stark trendige Produkte aus, vermeiden Sie Produkte, die unterschiedlich sind.
  2. Ich optimiere Ichimoku-Parameter für verschiedene Zeitrahmen, um die besten Kombinationen zu finden.
  3. Verwenden Sie Trailing Stop Loss, um Verluste bei einzelnen Trades zu kontrollieren.
  4. Hinzufügen anderer Indikatoren zur Erhöhung der Signalfrequenz.

Verbesserungen

Die Strategie kann in folgenden Punkten weiter verbessert werden:

  1. Zusätzliche Positionsgröße an den programmatisch gehandelten Kontrollbetrag überstrategy.position_size.

  2. Fügen Sie Sicherheitsuniversum Filterung automatisch Trendstärke übersecurity().

  3. Einbeziehung von Stop-Loss/Profit-Taking-Techniken für das Risikomanagement.

  4. Ein Multi-Indikator-System mit Indikatoren wie Bollinger Bands und RSI zu schaffen, um die Signalqualität zu verbessern.

  5. Anwendung von maschinellem Lernen zur Beurteilung der Signalzuverlässigkeit und dynamische Anpassung von Auftragsmengen.

Schlussfolgerung

Die Ichimoku Early Cloud Trend Following Strategie nutzt die Ichimoku Cloud zur frühzeitigen Trendidentifizierung, verstärkt durch gleitende Durchschnittsfilter, um hochwertige Handelsmöglichkeiten zuverlässig zu erkennen.


/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 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/
// © QuantCT

//@version=4
strategy("Ichimoku Cloud Strategy Idea",
         shorttitle="Ichimoku", 
         overlay=true,
         pyramiding=0,     
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=99, 
         initial_capital=1000,           
         commission_type=strategy.commission.percent, 
         commission_value=0.1)

// ____ Inputs

conversion_period = input(9, minval=1, title="Conversion Line Period")
base_period = input(26, minval=1, title="Base Line Period")
lagging_span2_period = input(52, minval=1, title="Lagging Span 2 Period")
displacement = input(26, minval=1, title="Displacement")
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)

// ____ Logic

donchian(len) => avg(lowest(len), highest(len))

conversion_line = donchian(conversion_period)
base_line = donchian(base_period)
lead_line1 = avg(conversion_line, base_line)
lead_line2 = donchian(lagging_span2_period)
chikou = close

chikou_free_long = close > high[displacement] and close > max(lead_line1[2 * displacement], lead_line2[2 * displacement])
enter_long = chikou_free_long and close > max(lead_line1[displacement], lead_line2[displacement])
exit_long = close < lead_line1[displacement] or close < lead_line2[displacement]

chikou_free_short = close < low[displacement] and  close < min(lead_line1[2 * displacement], lead_line2[2 * displacement])
enter_short = chikou_free_short and close < min(lead_line1[displacement], lead_line2[displacement])
exit_short = close > lead_line1[displacement] or close > lead_line2[displacement]

strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long) 
if (not long_only)
    strategy.entry("Short", strategy.short, when=enter_short)
    strategy.close("Short", when=exit_short) 

// ____ SL

sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
    strategy.exit(id="SL", from_entry="Long", stop=sl_long)
    strategy.exit(id="SL", from_entry="Short", stop=sl_short)

// ____ Plots

colors = 
 enter_long ? #27D600 :
 enter_short ? #E30202 :
 color.orange
 
p1 = plot(lead_line1, offset = displacement, color=colors,
	 title="Lead 1")
p2 = plot(lead_line2, offset = displacement, color=colors,
	 title="Lead 2")
fill(p1, p2, color = colors)
plot(chikou, offset = -displacement, color=color.blue)



Mehr