Briser la stratégie de croisement de moyennes mobiles


Date de création: 2023-12-12 17:43:19 Dernière modification: 2023-12-12 17:43:19
Copier: 1 Nombre de clics: 929
1
Suivre
1621
Abonnés

Briser la stratégie de croisement de moyennes mobiles

Aperçu

Cette stratégie est appelée la stratégie de croisement de la ligne de moyenne de rupture de la tendance, l’idée principale est de combiner l’indicateur de tendance et le croisement de la ligne de moyenne pour juger de la survente. Plus précisément, cette stratégie utilise le cycle de tendance de Schaff (indicateur du cycle de tendance de Schaff, STC) et la croisement de la double moyenne.

Principe de stratégie

Cette stratégie est basée sur deux indicateurs techniques:

  1. Indicateur de tendance: Indicateur STC, qui détermine la direction de la tendance. L’indicateur STS contient l’indicateur MACD, l’indicateur Stoch et la ligne d’indicateur STC.

  2. Le croisement de la ligne moyenne: le croisement de la moyenne mobile simple rapide (cycle par défaut 35) et de la moyenne mobile simple lente (cycle par défaut 200). Le croisement de la ligne lente sur la ligne rapide est un signal à plusieurs têtes et celui de la ligne lente en dessous est un signal à vide.

La logique de jugement des signaux de négociation de cette stratégie est la suivante:

  1. Faites plus de signaux: lorsque l’indicateur STC franchit la ligne 25 vers le haut, que la moyenne mobile simple rapide est supérieure à la moyenne mobile simple rapide et que le prix est supérieur à la moyenne mobile simple rapide, faites plus de signaux.

  2. Signal de rupture: Lorsque l’indicateur STC dépasse la ligne 75 vers le bas et que la moyenne mobile simple rapide est inférieure à la moyenne mobile simple rapide et que le prix est inférieur à la moyenne mobile simple rapide, la rupture est effectuée.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Les signaux de négociation sont plus fiables lorsqu’ils sont combinés avec des indicateurs de tendance et des indicateurs de courbe moyenne. Les indicateurs STC déterminent la direction de la tendance générale, tandis que les indicateurs de courbe moyenne déterminent l’entrée en bourse.

  2. Les paramètres de la ligne moyenne sont réglables. Les paramètres de la ligne moyenne peuvent être ajustés en fonction du marché et de la stratégie d’optimisation.

  3. Le risque est maîtrisé. L’indicateur STC détermine les zones de survente et d’excédent, et évite de poursuivre les fonds marginaux élevés dans les zones extrêmes. Le stop loss cible a une plage de stop loss de 400 points.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Il est possible que l’indicateur STC soit faussement dépassé.

  2. Le croisement de la ligne moyenne peut produire plus de faux signaux. Il faut ajuster le paramètre de la période moyenne.

  3. Les transactions unilatérales doivent être effectuées.

  4. Le risque de glissement est plus élevé dans le cas d’une transaction en valeurs mobilières.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Modifier les paramètres STC pour optimiser les jugements de survente.

  2. Optimisation de la périodicité de la ligne moyenne et amélioration de la fiabilité du signal croisé.

  3. Ajout d’autres indicateurs de filtrage pour filtrer les fausses brèches. Par exemple, la bande de Brin.

  4. Augmentation de la logique de transaction bidirectionnelle. Réduction du risque spatial.

  5. Logique de stop-loss ajoutée. Contrôle des pertes individuelles.

Résumer

Cette stratégie utilise des indicateurs de tendance et des indicateurs de croisement de la même ligne pour déterminer la direction de la tendance et les points d’entrée spécifiques. En assurant certaines conditions de contrôle des risques, il est possible d’obtenir de meilleurs rendements. Le modèle de stratégie est simple et clair, facile à comprendre, il est également facile d’ajuster les paramètres et d’optimiser les fonctions en fonction des différents marchés, adapté à l’apprentissage et à l’application des débutants.

Code source de la stratégie
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Shaff Trend Cycle coded by Alex Orekhov (everget)
// Strategy and its additional conditions provided by greenmask
// Schaff Trend Cycle script may be freely distributed under the MIT license.
strategy("STC", shorttitle="STC")

fastLength = input(title="MACD Fast Length", type=input.integer, defval=23)
slowLength = input(title="MACD Slow Length", type=input.integer, defval=50)
cycleLength = input(title="Cycle Length", type=input.integer, defval=10)
d1Length = input(title="1st %D Length", type=input.integer, defval=3)
d2Length = input(title="2nd %D Length", type=input.integer, defval=3)
src = close
highlightBreakouts = input(title="Highlight Breakouts ?", type=input.bool, defval=true)

macd = ema(src, fastLength) - ema(src, slowLength)
k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))
d = ema(k, d1Length)
kd = nz(fixnan(stoch(d, d, d, cycleLength)))
stc = ema(kd, d2Length)
stc := 	stc > 100 ? 100 : stc < 0 ? 0 : stc
stcColor = not highlightBreakouts ? (stc > stc[1] ? color.green : color.red) : #ff3013
stcPlot = plot(stc, title="STC", color=stcColor, transp=0)
upper = 75
lower = 25
transparent = color.new(color.white, 100)
upperLevel = plot(upper, title="Upper", color=color.gray)
hline(50, title="Middle", linestyle=hline.style_dotted)
lowerLevel = plot(lower, title="Lower", color=color.gray)

fill(upperLevel, lowerLevel, color=#f9cb9c, transp=90)

upperFillColor = stc > upper and highlightBreakouts ? color.green : transparent
lowerFillColor = stc < lower and highlightBreakouts ? color.red : transparent

fill(upperLevel, stcPlot, color=upperFillColor, transp=80)
fill(lowerLevel, stcPlot, color=lowerFillColor, transp=80)
strategy.initial_capital = 50000
ordersize=floor(strategy.initial_capital/close)
targetvalue = input(title="Target/stop", type=input.integer, defval=400)

ma1length = input(title="SMA1", type=input.integer, defval=35)
ma2length = input(title="SMA2", type=input.integer, defval=200)
ma1 = ema(close,ma1length)
ma2 = ema(close,ma2length)

bullbuy = crossover(stc, lower) and ma1>ma2 and close>ma1
bearsell = crossunder(stc, upper) and ma1<ma2 and close<ma1

if (bullbuy)
    strategy.entry("Riposte", strategy.long, ordersize)
    strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue)

if (bearsell)
    strategy.entry("Riposte", strategy.short, ordersize)
    strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue)

//plotshape(bullbuy,  title= "Purple", location=location.belowbar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte")
//plotshape(bearsell,  title= "Purple", location=location.abovebar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte")