Croix en mouvement moyenne Croix d'or Croix de la mort Stratégie

Auteur:ChaoZhang est là., Date: 2023-12-05 11:11:02 Je suis désolé
Les étiquettes:

img

Il s'agit d'une stratégie classique de croix-mort en moyenne mobile. La stratégie utilise deux moyennes mobiles, TENKAN et KIJUN, avec des périodes de temps différentes pour former des signaux de croix dorée et de croix-mort pour les transactions longues et courtes.

La logique de la stratégie

La stratégie est principalement basée sur une méthode japonaise d'analyse technique des actions appelée Ichimoku Kinko Hyo, utilisant plusieurs moyennes mobiles comme les lignes TENKAN et KIJUN pour déterminer la direction de la tendance du marché.

Premièrement, la ligne TENKAN est une ligne de 9 jours représentant la tendance à court terme; la ligne KIJUN est une ligne de 26 jours représentant la tendance à moyen terme. Lorsque la ligne TENKAN traverse au-dessus de la ligne KIJUN, un signal d'achat est généré.

Deuxièmement, la stratégie introduit également la ligne Senkou Span A (SSA) et la ligne Senkou Span B (SSB). La ligne SSA est la moyenne des lignes TENKAN et KIJUN tandis que la ligne SSB est une moyenne mobile de 52 jours. Ensemble, ils forment les bandes Kumo (nuage) qui déterminent la direction de la tendance à long terme - le prix au-dessus du nuage signifie une tendance haussière tandis que le prix en dessous du nuage signifie une tendance baissière.

Enfin, pour filtrer les faux signaux, cette stratégie examine également la position du prix par rapport au Chikou Span (le prix de clôture retardé de 26 jours) générant uniquement des signaux d'achat lorsque le prix est inférieur à Chikou et des signaux de vente lorsque le prix est supérieur à Chikou.

Les avantages

Il s'agit d'une stratégie de moyenne mobile très typique dont les principaux avantages sont:

  1. L'utilisation de deux moyennes mobiles de périodes différentes permet de juger efficacement simultanément des tendances à court et à moyen terme.

  2. Les tendances à long terme sont déterminées avec les bandes Kumo afin d'éviter d'acheter sur des marchés baissiers à long terme.

  3. La comparaison des prix avec la ligne Chikou retardée filtre beaucoup de faux signaux et réduit les transactions inutiles.

En utilisant habilement diverses fonctions des moyennes mobiles, cette stratégie peut suivre les tendances sur des périodes courtes, moyennes et longues.

Les risques

Les principaux risques de cette stratégie sont les suivants:

  1. Les stratégies de moyennes mobiles ont tendance à produire de nombreux faux signaux.

  2. Cette stratégie est fortement axée sur les éléments techniques sans tenir compte des éléments fondamentaux.

  3. Aucun mécanisme de stop loss n'est inclus. Une fois que le jugement de la direction du marché est erroné, les pertes peuvent s'accumuler.

Par conséquent, nous avons besoin de systèmes de moyennes mobiles plus avancés, de règles de stop loss appropriées ou de signaux fondamentaux supplémentaires, afin d'affiner davantage cette stratégie et de réduire les risques.

Des possibilités d'amélioration

Cette stratégie peut également être améliorée dans les domaines suivants:

  1. Rechercher des ensembles de paramètres plus stables et plus efficaces par le biais de tests antérieurs.

  2. Ajouter des règles de stop loss. Un stop loss raisonnable aide à contrôler efficacement les pertes maximales.

  3. Complétez les signaux fondamentaux tels que les révisions des estimations des bénéfices qui contiennent des informations sur les perspectives d'une entreprise.

  4. Optimiser la stratégie de comparaison des prix de la ligne Chikou avec des solutions plus stables.

  5. Incorporer des signaux de sélection d'actions. Les facteurs de notation tels que le ratio PE et le ROE peuvent filtrer les actions de qualité inférieure.

Conclusion

Il s'agit d'une stratégie de moyenne mobile très typique et pratique. En surveillant simultanément les tendances à court, moyen et long terme, en utilisant diverses fonctions des moyennes mobiles, il génère des signaux commerciaux avec une performance solide. Nous pouvons l'améliorer davantage en ajustant les paramètres, en ajoutant un stop loss, une sélection de stock, etc. Dans l'ensemble, il s'agit d'une stratégie quantitative prometteuse digne de recherche et de suivi.


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

//@version=4
strategy(
     title="Ichimoku Kinko Hyo Strategy", 
     shorttitle="Ichimoku Strategy", 
     overlay=true,
     pyramiding=0,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=100,
     initial_capital=1000,
     currency="USD",
     commission_type=strategy.commission.percent,
     commission_value=0.0
     )

//
// SETTINGS
//

// Ichimoku

int TENKAN_LEN = input(title="Tenkan-Sen Length", defval=9, minval=1, step=1)
int KIJUN_LEN = input(title="Kijun-Sen Length", defval=26, minval=1, step=1)
int SSB_LEN = input(title="Senkou Span B Length", defval=52, minval=1, step=1)
int OFFSET = input(title="Offset For Chikou Span / Kumo", defval=26, minval=1, step=1)

// Strategy

int COOLDOWN = input(title="Orders Cooldown Period", defval=5, minval=0, step=1)
bool USE_CHIKOU = input(title="Use Imperfect Chikou Position Detection", defval=false)

//
// HELPERS
//

color _red = color.red
color _blue = color.blue
color _lime = color.lime
color _fuchsia = color.fuchsia
color _silver = color.silver
color _aqua = color.aqua

f_donchian(_len) => avg(lowest(_len), highest(_len))

//
// ICHIMOKU INDICATOR
//

float tenkan = f_donchian(TENKAN_LEN)
float kijun = f_donchian(KIJUN_LEN)
float ssa = avg(tenkan, kijun)
float ssb = f_donchian(SSB_LEN)

plot(tenkan, title="Tenkan", color=_silver)
plot(close, title="Chikou", offset=-OFFSET+1, color=_aqua)
_ssa = plot(ssa, title="SSA", offset=OFFSET-1, color=_lime)
_ssb = plot(ssb, title="SSB", offset=OFFSET-1, color=_red)
fill(_ssa, _ssb, color=ssa > ssb ? _lime : _fuchsia, transp=90)

//
// STRATEGY
//

// Check if price is "above or below" Chikou (i.e. historic price line):
// This detection is highly imperfect, as it can only know what Chikou position
// was 2*offset candles in the past, therefore if Chikou crossed the price
// line in the last 2*offset periods it won't be detected.
// Use of this detection is disabled by default,

float _chikou_val = close[OFFSET*2+1]
float _last_val = close[OFFSET+1]
bool above_chikou = USE_CHIKOU ? _last_val > _chikou_val : true
bool below_chikou = USE_CHIKOU ? _last_val < _chikou_val : true

// Identify short-term trend with Tenkan

bool _above_tenkan = min(open, close) > tenkan
bool _below_tenkan = max(open, close) < tenkan

// Check price position compared to Kumo

bool _above_kumo = min(open, close) > ssa
bool _below_kumo = max(open, close) < ssb

// Check if Kumo is bullish or bearish

bool bullish_kumo = ssa > ssb
bool bearish_kumo = ssa < ssb

// Correlate indicators to confirm the trend

bool bullish_trend = _above_tenkan and _above_kumo and bullish_kumo
bool bearish_trend = _below_tenkan and _below_kumo and bearish_kumo

// Build signals

bool buy1 = (close > open) and ((close > ssa) and (open < ssa)) // green candle crossing over SSA
bool buy2 = bullish_kumo and bearish_kumo[1] // bullish Kumo twist

bool sell1 = (close < open) and ((close < ssb) and (open > ssb)) // red candle crossing under SSB
bool sell2 = bearish_kumo and bullish_kumo[1] // bearish Kumo twist

bool go_long = below_chikou and (bullish_trend and (buy1 or buy2))
bool exit_long = above_chikou and (bearish_trend and (sell1 or sell2))

//
// COOLDOWN
//

f_cooldown() =>
    _cd_needed = false
    for i = 1 to COOLDOWN by 1
        if go_long[i]
            _cd_needed := true
            break
    _cd_needed

go_long := f_cooldown() ? false : go_long

//
// ORDERS
//

strategy.entry("buy", strategy.long, when=go_long)
strategy.close_all(when=exit_long)

//
// ALERTS
//

alertcondition(
     condition=go_long,
     title="Buy Signal",
     message="{{exchange}}:{{ticker}}: A buy signal for {{strategy.market_position_size}} units has been detected (last close: {{close}})."
     )
alertcondition(
     condition=exit_long,
     title="Sell Signal",
     message="{{exchange}}:{{ticker}}: A sell signal for {{strategy.market_position_size}} units has been detected (last close: {{close}})."
     )


Plus de