Stratégie de négociation combinée à plusieurs indicateurs

Auteur:ChaoZhang est là., Date: 2023-09-13 12:18:05 Je vous en prie.
Les étiquettes:

Cette stratégie combine plusieurs indicateurs techniques tels que les moyennes mobiles, le RSI et le stochastique pour évaluer la tendance des prix et les niveaux de surachat/survente pour les signaux commerciaux.

La logique de la stratégie:

  1. Utilisez plusieurs EMA pour déterminer l'évolution globale des prix.

  2. Calculer le RSI et le stochastique pour les niveaux de surachat/survente.

  3. Entrez long lorsque les EMA donnent un signal haussier, le RSI n'est pas suracheté et le Stoch n'est pas suracheté.

  4. Entrez à court lorsque les EMA donnent un signal d'abaissement, le RSI n'est pas survendu et le Stoch n'est pas survendu.

  5. Sortie lorsque l'un des indicateurs donne le signal opposé.

Les avantages:

  1. La vérification par plusieurs indicateurs améliore la précision.

  2. Les indicateurs se complètent pour une meilleure évaluation du marché.

  3. Des règles commerciales claires facilitent les tests antérieurs et l'exécution.

Les risques:

  1. Éviter une redondance excessive entre les indicateurs.

  2. Optimisation multi-indicateur complexe.

  3. Plus d'indicateurs n'améliorent pas nécessairement les performances.

En résumé, l'approche multi-indicateurs peut améliorer les décisions dans une certaine mesure, mais nécessite d'équilibrer la difficulté d'optimisation et la redondance pour des stratégies simples et fiables.


/*backtest
start: 2022-09-06 00:00:00
end: 2023-09-12 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// strategy(title='Combined Strategy', default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=.0020, pyramiding=0, slippage=3, overlay=true)

//----------//
// MOMENTUM //
//----------//
ema8 = ta.ema(close, 5)
ema13 = ta.ema(close, 9)
ema21 = ta.ema(close, 13)
ema34 = ta.ema(close, 21)
ema55 = ta.ema(close, 34)

plot(ema8, color=color.new(color.red, 0), style=plot.style_line, title='5', linewidth=1)
plot(ema13, color=color.new(color.orange, 0), style=plot.style_line, title='9', linewidth=1)
plot(ema21, color=color.new(color.yellow, 0), style=plot.style_line, title='13', linewidth=1)
plot(ema34, color=color.new(color.aqua, 0), style=plot.style_line, title='21', linewidth=1)
plot(ema55, color=color.new(color.lime, 0), style=plot.style_line, title='34', linewidth=1)

longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55
exitLongEmaCondition = ema13 < ema55

shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55
exitShortEmaCondition = ema13 > ema55

// ----------  //
// OSCILLATORS //
// ----------- //
rsi = ta.rsi(close, 14)
longRsiCondition = rsi < 70 and rsi > 40
exitLongRsiCondition = rsi > 70

shortRsiCondition = rsi > 30 and rsi < 60
exitShortRsiCondition = rsi < 30

Stochastic
length = 14, smoothK = 3, smoothD = 3
kFast = ta.stoch(close, high, low, 14)
dSlow = ta.sma(kFast, smoothD)

longStochasticCondition = kFast < 80
exitLongStochasticCondition = kFast > 95

shortStochasticCondition = kFast > 20
exitShortStochasticCondition = kFast < 5

//----------//
// STRATEGY //
//----------//

longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0
exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0

if (longCondition)
  strategy.entry("LONG", strategy.long)
if (exitLongCondition)
  strategy.close("LONG")

shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0
exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0

if (shortCondition)
  strategy.entry("SHORT", strategy.short)
if (exitShortCondition)
  strategy.close("SHORT")



Plus de