Stratégie de trading combinée avec indicateur Stoch à moyenne mobile double


Date de création: 2023-09-12 14:44:56 Dernière modification: 2023-09-12 14:44:56
Copier: 0 Nombre de clics: 710
1
Suivre
1617
Abonnés

Cette stratégie utilise une combinaison d’indicateurs de courbe moyenne et d’indicateurs de Stoch pour concevoir un système de trading quantitatif doté de fonctions de jugement de tendance et de détermination de survente et de survente. La stratégie intègre les avantages de plusieurs indicateurs pour effectuer un jugement de tendance et une saisie d’opportunités systématiques.

Le principe de la stratégie:

  1. La moyenne à long terme (MA) et la moyenne à court terme (EMA) sont calculées comme indicateurs techniques pour déterminer la direction de la tendance.

  2. Calculer les valeurs K et D de Stoch pour déterminer si le marché est en survente ou en survente.

  3. Lorsque le CLOSE franchit la MA de bas en haut et que les valeurs de Stoch K et D sont supérieures à la ligne de survente, jugez que c’est le moment d’entrée de la ligne longue et faites plus.

  4. Lorsque le CLOSE franchit l’EMA de haut en bas, et que les valeurs de Stoch K et D sont inférieures à la ligne de vente excessive, jugez que c’est le moment d’entrée en ligne courte, et faites une pause.

  5. La direction de la transaction est déterminée par la balise COLOR.

Les avantages de cette stratégie:

  1. La combinaison de deux lignes homogènes permet de déterminer la direction de la tendance principale et d’éviter les signaux erronés.

  2. L’indicateur Stoch identifie les zones de sur-achat et de sur-vente pour améliorer la probabilité de profit.

  3. L’utilisation combinée de plusieurs indicateurs, qui peuvent être vérifiés les uns par les autres, augmente la fiabilité du signal.

Le risque de cette stratégie:

  1. Si les paramètres ne sont pas optimisés correctement, il peut y avoir des transactions fréquentes ou des signaux incohérents.

  2. Il peut y avoir des retards sur la moyenne et sur la stoch, ce qui peut entraîner des entrées trop tôt ou trop tard.

  3. La combinaison de plusieurs indicateurs augmente la fiabilité mais aussi la complexité de la stratégie.

En résumé, la stratégie utilise la courbe de la courbe de la courbe de la courbe, la courbe de Stoch pour juger de la survente et de la survente, pour effectuer des transactions quantifiées. La stabilité et la fiabilité du système de négociation peuvent être améliorées dans le cadre de l’optimisation des paramètres.

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

//@version=4

// strategy("PMB2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 20, initial_capital=1000, currency=currency.USD)
//study(title="PMB2", overlay=true)

l_ma = input(50, title="MA (green)", type=input.integer)
l_ema = input(25, title="EMA (red)", type=input.integer)

MA = sma(close,l_ma)
EMA = ema(close,l_ema)

plot(MA, color=color.green)
plot(EMA, color=color.red)

//STOCH(14,3,3)
length = input(20, minval=1, title="STOCH - K")
smoothK = input(2, minval=1, title="STOCH - D")
smoothD = input(2 , minval=1, title="STOCH - Smooth")

StkLong= input(50 , minval=1, maxval=100, title="Long when Close > MA and Stoch > ")
StkShort= input(80 , minval=1, maxval=100, title="Short when Close < EMA and Stoch < ")

k = sma(stoch(close, high, low, length), smoothK)
d = sma(k, smoothD)
//plot(k, color=color.blue, title="STOCH - K")
//plot(d, color=color.orange, title="STOCH - D")
//band180 = hline(80, title="STOCH - Banda superior")
//band120 = hline(20, title="STOCH - Banda superior")
//band100 = hline(50,  color=color.gray, editable=false, linestyle=hline.style_solid)
//fill(band180, band120, color=color.gray, transp=75, title="STOCH - Fundo")

BTStartY = input(title="Strategy Test Start Year", type=input.integer, defval=2019, minval=2010, maxval=2100)
BTStartM = input(title="Strategy Test Start Month", type=input.integer, defval=1, minval=1, maxval=12)
BTStartD = input(title="Strategy Test Start Day", type=input.integer, defval=1, minval=1, maxval=31)
BTStopY = input(title="Strategy Test Stop Year", type=input.integer, defval=2019, minval=2010, maxval=2100)
BTStopM = input(title="Strategy Test Stop Month", type=input.integer, defval=12, minval=1, maxval=12)
BTStopD = input(title="Strategy Test Stop Day", type=input.integer, defval=31, minval=1, maxval=31)

// set up min and max date for strategy test
TMin = timestamp(BTStartY, BTStartM, BTStartD, 00, 00)
TMax = timestamp(BTStopY, BTStopM, BTStopD, 00, 00)
InTime = true

bool long = false, short = false, trade = false

trade := trade[1]
long := long[1]
short := short[1]

if (crossover(close, MA) and k > StkLong and d > StkLong) // "LONG!"
//if (close > MA and k > StkLong and d > StkLong) // "LONG!"
    short := false
    long := true
    trade := true // LONG

if (crossunder(close, EMA)  and k < StkShort and d < StkShort) // "SHORT!""
//if (close < EMA and k < StkShort and d < StkShort) // "SHORT!""
    long := false
    short := true
    trade := false // SHORT


//bgcolor(FL > SH ? color.green : FH < SL ? color.red : na, transp=80)
bgcolor(trade ? color.green : color.red, transp=90)

//alertcondition((crossover(close, MA) and k > 50 and d > 50) , title='Buy', message='Buy')
//alertcondition((crossunder(close, EMA) and k > 80 and d > 80) , title='Sell', message='Sell')


if ((crossover(close, MA) and k > StkLong and d > StkLong) and InTime)
//if ((close > MA and k > StkLong and d > StkLong) and InTime)
    strategy.entry("Long", strategy.long)

if ((crossunder(close, EMA) and k < StkShort and d < StkShort)  and InTime)
//if ((close < EMA and k < StkShort and d < StkShort)  and InTime)
    strategy.entry("Short", strategy.short)