Ichimoku Kurz-Lange-Strategie mit Geldmanagement

Schriftsteller:ChaoZhang, Datum: 2023-12-28 12:12:51
Tags:

img

Übersicht

Diese Strategie ist eine Verbesserung des Ichimoku-Handelssystems. Die Hauptidee besteht darin, den Ichimoku-Indikator und die Geldmanagementregeln zu kombinieren, um kurz- und langfristige Handelsmöglichkeiten zu identifizieren.

Strategieprinzipien

Die Strategie verwendet das klassische Ichimoku-System als Basisreferenz.

Tenkan-Sen: Konversionslinie, die mittelfristige Trends widerspiegelt.

Kijun-Sen: Basislinie, die langfristige Trends widerspiegelt.

Senkou Span: Führende Linie.

Chikou Span: Verzögerungslinie, die vergangene Trends widerspiegelt.

Auf dieser Grundlage wurden folgende Verbesserungen in der Strategie vorgenommen:

  1. Die Zeitparameter folgen der ungeraden Quadrattheorie, um besser mit den Marktmustern übereinstimmen zu können.

  2. Es werden Geldmanagementregeln hinzugefügt, einschließlich Stop-Loss, Take-Profit, Positionsgröße usw., um Handelsrisiken zu kontrollieren.

  3. Die Rückprüfungsperiode kann für umfassendere Prüfungen angepasst werden.

Insbesondere beinhalten die Long-Entry-Bedingungen Tenkan Cross Kijun Up, Chikou über dem Preis, Preis über kumo, zukünftige kumo bullish usw. Der Short-Entry erfordert Tenkan Cross Kijun Down, Chikou unter dem Preis usw.

Die Regeln für das Geldmanagement verlangen eine Gewinnnahme von 30% und einen Stop-Loss von 5% für Longs; bei einem Stop-Loss von mehr als 3 ATR von tenkan für Shorts.

Analyse der Vorteile

Die Hauptvorteile der Kombination von Ichimoku und Geldmanagement sind:

  1. Ichimoku selbst spiegelt kurz-, mittelfristige und langfristige Trends, vernünftige Einstiege/Ausgänge wider.

  2. Die ungerade Quadrattheorie optimiert die Parameter, um mit den Marktstatistiken übereinzustimmen.

  3. Das Geldmanagement kontrolliert effektiv einen einzigen Stop-Loss, während die Gewinne übersteigen.

  4. Eine anpassbare Rückprüfungsperiode ermöglicht eine umfassendere Prüfung.

Zusammenfassend kann gesagt werden, dass diese Strategie den Trend, die Parameterwahl, die Risikokontrolle usw. umfassend berücksichtigt und bei der Ermittlung von kurzfristigen Chancen und der Kontrolle von Handelsrisiken wirksam ist.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind folgende:

  1. Ichimoku ist anfällig für falsche Ausbrüche, die unnötige Einträge verursachen.

  2. Festgewinne und Stop-Loss können anfällig für Fallen sein.

  3. Unvollständige Backtesting-Daten können die Leistung überschätzen.

  4. Die Strategie passt besser zu den Trendmärkten. Kann in den unterschiedlichen Märkten unterdurchschnittlich sein. Die Einstiegsbedingungen können für die Trendenidentifizierung optimiert werden.

Anweisungen zur Verbesserung

Zu den wichtigsten Verbesserungsbereichen gehören:

  1. Hinzufügen von Indikatorfiltern zur Verbesserung der Eintrittsqualität, wie MACD, KDJ usw.

  2. Dynamische Gewinnentnahme und Stop-Loss. Zum Beispiel Gewinnentnahme nach N ATR-Break-outs, Stop-Loss unterhalb der Unterstützungen.

  3. Multi-Asset-Tests für längere Daten zur Stabilitätsprüfung.

  4. Trends und Marktvarianten unterscheiden.Einträge für die Anpassung an unterschiedliche Marktbedingungen optimieren.

Schlussfolgerung

Diese Strategie berücksichtigt umfassend Trends, Geldmanagement usw., verwendet Ichimoku, um lange Chancen zu identifizieren, und wendet Risikokontrollregeln an, um Einzelhandelsverluste zu begrenzen.


/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-27 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// Author Obarut
//@version=5
strategy("İchimoku Strategy With MM Short-Long",overlay=true,process_orders_on_close=true)

//Ichimoku Inputs
ts_period = input.int(8, minval=1, title="Tenkan-Sen Period")
ks_period = input.int(16, minval=1, title="Kijun-Sen Period")
ssb_period = input.int(24, minval=1, title="Senkou-Span B Period")
cs_offset = input.int(16, minval=1, title="Chikou-Span Offset")
ss_offset = input.int(8, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

// Back Testing Period Inputs

fromday = input.int(defval=1,title="Start Date",minval=1,maxval=31) 
frommonth = input.int(defval=1,title="Start Month",minval=1,maxval=12)
fromyear = input.int(defval=1980,title="Start Year",minval=1800, maxval=2100)
today = input.int(defval=1,title="En Date",minval=1,maxval=31)
tomonth = input.int(defval=1,title="End Month",minval=1,maxval=12)
toyear =input.int(defval=2100,title="End Year",minval=1800,maxval=2200)
start=timestamp(fromyear,frommonth,fromday,00,00)
finish=timestamp(toyear,tomonth,today,00,00)
timewindow= time>=start and time<=finish

//Ichimoku Componenets Calculation Function
middle(len) => math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Components

tenkan = middle(ts_period)
kijun = middle(ks_period)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_period)
//Senkou Span Lines slopes
slopetenkan=(tenkan-tenkan[2])/tenkan
slopekijun= (kijun-kijun[2])/kijun
//Avarage True Range 
atr = ta.atr(14)
//Senkou Span Lines
ss_above = math.max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_below = math.min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Price Distance From Tenkan
distance = close - tenkan

// Price Distance from Kijun
distancek = close - kijun

// Entry/Exit Signals

tk_cross_kijun_bull = tenkan >= kijun//Tenkan Sen is greater than or equal to  Kijun Sen
tk_cross_kijun_bear = tenkan <= kijun//Tenkan Sen is smaller than or equal to Kijun Sen
cs_cross_bull = close > high[cs_offset-1]//Chikou is above the price
cs_cross_bear = close < close[cs_offset-1]//Chikou is below the price
price_above_kumo = close > ss_above//Price is above the Kumo cloud
pbsenkA = close < ss_above // Price is below the Senkou Span which is higher
pasenkB = close > ss_below// Price is above the Senkou span which is lower
price_below_kumo = close < ss_below // Price is below Kumo cloud
future_kumo_bull = senkouA > senkouB and (ta.roc(senkouA,3)>0) and (ta.roc(senkouB,3)>=0) // Future Kumo cloud is bullish
pbtenkan=close<tenkan
tkbelowkij=tenkan<kijun
future_kumo_bear = senkouA < senkouB//Future Kumo cloud is bearish
// Price Distance From Tenken
disbull = distance < 2*atr
//Price Distance From Kijun
disbullk = distancek < 3*atr
//Price Above Tenkan Condition
patk = close > tenkan
// Kijun Above Senkou Span Condition
kjasenkA = kijun > ss_above
// Price Below Kijun Condition
pbkijun = close < kijun
//Consolidation Tenkan and Kijun are inside Kumo cloud
kijuninsidekumo= kijun<ss_above and kijun>ss_below
tenkaninsidekumo= tenkan<ss_above and tenkan>ss_below
consolidation=kijuninsidekumo and tenkaninsidekumo

//Bullish Entry Condition

bullish= tk_cross_kijun_bull and cs_cross_bull and price_above_kumo and future_kumo_bull and disbull and patk 
     and not consolidation
//Bullish exit
bearish=tk_cross_kijun_bear and pbsenkA and cs_cross_bear  and future_kumo_bear
      or price_below_kumo     
// Bearish Entry Condition

bearish2=tk_cross_kijun_bear and pbtenkan and tkbelowkij and tkbelowkij and cs_cross_bear and future_kumo_bear

if(bullish and timewindow and long_entry )
    strategy.entry("Long Entry", strategy.long)


if(bearish2 and timewindow and short_entry)
    strategy.entry("Short Entry",strategy.short)
// Bearish Condition



lastentryprice = strategy.opentrades.entry_price(strategy.opentrades - 1)

// Take Profit or Stop Loss in Bearish

exit1= (close-tenkan)>3*atr and slopetenkan<=0
exit2= (close-lastentryprice)>5*atr and close<(tenkan-0.04*atr)

if(bearish and timewindow and not short_entry or exit1 or exit2  or (close>1.30*lastentryprice  ) or (close< 0.95*lastentryprice))
    strategy.close("Long Entry")
if(bullish and timewindow and not long_entry)
    strategy.close("Short Entry")
if(time>finish)
    strategy.close_all("time up")

plot(tenkan, color=#0496ff, title="Tenkan-Sen")
plot(kijun, color=#991515, title="Kijun-Sen")
plot(close, offset=-cs_offset+1, color=#2e640e, title="Chikou-Span")
sa=plot(senkouA, offset=ss_offset-1, color=color.rgb(17, 122, 21), title="Senkou-Span A")
sb=plot(senkouB, offset=ss_offset-1, color=color.rgb(88, 8, 8), title="Senkou-Span B")
fill(sa, sb, color = senkouA > senkouB ? color.rgb(198, 234, 198) : color.rgb(208, 153, 153), title="Cloud color")

Mehr