Une stratégie à court terme avec la gestion de l' argent

Auteur:ChaoZhang est là., Date: 2023-12-28 12:12:51 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie est une amélioration basée sur le système de trading Ichimoku.

Principes de stratégie

La stratégie utilise le système Ichimoku classique comme référence de base.

Tenkan-Sen: Ligne de conversion, reflétant les tendances à moyen terme.

Kijun-Sen: Ligne de base, reflétant les tendances à long terme.

Senkou Span: Ligne de conduite, reflétant les tendances futures.

Chikou Span: ligne de retard, reflétant les tendances du passé.

Sur cette base, la stratégie a apporté les améliorations suivantes:

  1. Les paramètres de temps suivent la théorie du carré impair pour mieux correspondre aux tendances du marché.

  2. Des règles de gestion de l'argent sont ajoutées, y compris le stop loss, le take profit, la taille de la position, etc., pour contrôler les risques commerciaux.

  3. Période d'essai réglable pour des essais plus complets.

Plus précisément, les conditions d'entrée longues incluent le tenkan cross kijun vers le haut, le chikou au-dessus du prix, le prix au-dessus de kumo, le futur kumo haussier, etc. L'entrée courte nécessite le tenkan cross kijun vers le bas, le chikou en dessous du prix, etc.

Les règles de gestion de l'argent exigent une prise de profit de 30% et un stop loss de 5% pour les longs; un stop loss si plus de 3 ATR de tenkan pour les shorts.

Analyse des avantages

Les principaux avantages de combiner Ichimoku et la gestion de l'argent sont:

  1. Ichimoku lui-même reflète les tendances à court, moyen et long terme, entrée/sortie raisonnable.

  2. La théorie du carré impair optimise les paramètres pour correspondre aux statistiques du marché.

  3. La gestion de l'argent contrôle efficacement le stop loss de la seule transaction pendant que les bénéfices dépassent.

  4. Une période de retesting réglable permet des essais plus complets.

En résumé, cette stratégie tient compte de la tendance, de la sélection des paramètres, du contrôle des risques, etc. et est efficace pour identifier les opportunités à court terme et contrôler les risques commerciaux, avec une grande praticité.

Analyse des risques

Les principaux risques de cette stratégie proviennent de:

  1. Ichimoku est sujet à de fausses fuites provoquant des entrées inutiles.

  2. Le profit fixe et le stop loss peuvent être vulnérables aux pièges. Des règles dynamiques sont nécessaires.

  3. Les données de backtesting incomplètes peuvent surestimer les performances.

  4. La stratégie s'adapte mieux aux marchés en tendance. Elle peut être moins performante sur les marchés en évolution. Les conditions d'entrée peuvent être optimisées pour l'identification des tendances.

Directions de renforcement

Les principaux domaines d'amélioration sont les suivants:

  1. Ajoutez des filtres d'indicateurs pour améliorer la qualité de l'entrée, tels que MACD, KDJ etc.

  2. Par exemple, prise de profit après une rupture du N ATR, stop loss en dessous des supports.

  3. Tests multi-actifs sur des données plus longues pour vérifier la stabilité.

  4. Différencier les tendances et les marchés variés. Optimiser les entrées pour s'adapter aux différentes conditions du marché.

Conclusion

Cette stratégie prend en compte de manière exhaustive la tendance, la gestion de l'argent, etc., utilise Ichimoku pour identifier les opportunités à long terme et applique des règles de contrôle des risques pour limiter les pertes d'une seule transaction.


/*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")

Plus de