Les ressources ont été chargées... Je charge...

Tendance modifiée de l'indice de résistance relative suivant la stratégie

Auteur:ChaoZhang est là., Date: 2024-03-29 16:16:37 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie capture les tendances du marché basées sur l'indice de force relative modifiée (RSI modifié). L'idée principale de la stratégie est d'utiliser les signaux croisés et les signaux d'histogramme de l'indicateur RSI modifié pour déterminer la tendance du marché et effectuer des transactions selon la direction de la tendance.

Principe de stratégie

  1. Calculer l'EMA du prix comme entrée pour l'indice de volatilité modifié
  2. Calcul de l'indicateur RSI modifié
  3. Calculer l'EMA du RSI modifié comme ligne de signal
  4. Calculer la différence entre le RSI modifié et la ligne de signal sous forme d'histogramme
  5. Lorsque le RSI modifié franchit la ligne de signal et que l'histogramme est supérieur à 0, générer un signal d'achat
  6. Lorsque le RSI modifié traverse la ligne de signal et que l'histogramme est inférieur à 0, un signal de vente est généré.

Les avantages de la stratégie

  1. L'indicateur RSI modifié peut mieux capturer les tendances par rapport à l'indicateur RSI traditionnel
  2. La combinaison des signaux croisés et des signaux d'histogramme du RSI modifié peut filtrer efficacement les faux signaux
  3. Les paramètres sont réglables et applicables à différents marchés et délais
  4. Le programme est concis et efficace en termes de calcul.

Risques stratégiques

  1. L'indicateur RSI modifié est susceptible de générer de faux signaux sur les marchés à fourchette
  2. La capture des points tournants de la tendance peut avoir un retard
  3. Un seul indicateur est facilement affecté par le bruit des prix

Directions d'optimisation de la stratégie

  1. Il peut être combiné avec d'autres indicateurs de tendance tels que les moyennes mobiles pour améliorer la fiabilité du signal
  2. Un module stop-loss et take-profit peut être ajouté pour contrôler le risque d'une seule transaction
  3. Les paramètres peuvent être optimisés en fonction des différentes caractéristiques du marché
  4. Un module de gestion de position peut être ajouté pour ajuster dynamiquement les positions

Résumé

Cette stratégie utilise les caractéristiques de l'indicateur RSI modifié pour construire un système de trading dans la perspective du suivi de tendance. L'indicateur RSI modifié surmonte certains des défauts de l'indicateur RSI traditionnel et a une capacité de capture de tendance relativement forte. Cependant, les stratégies basées sur un seul indicateur ont souvent des limites et doivent être améliorées en combinaison avec d'autres moyens techniques. En optimisant les paramètres de la stratégie, en enrichissant les sources de signaux, en ajoutant des modules de contrôle des risques et d'autres méthodes, la stabilité et la rentabilité de cette stratégie peuvent être encore améliorées.


/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 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/
// © YogirajDange

//@version=5


// Verical lines


// // Define the times
// t1 = timestamp(year, month, dayofmonth, 09, 15) // 9:15
// t2 = timestamp(year, month, dayofmonth, 11, 15) // 11:15
// t3 = timestamp(year, month, dayofmonth, 13, 15) // 1:15
// t4 = timestamp(year, month, dayofmonth, 15, 25) // 3:25

// // Check if the current bar is on the current day
// is_today = (year(time) == year(timenow)) and (month(time) == month(timenow)) and (dayofmonth(time) == dayofmonth(timenow))

// // Draw a vertical line at each time
// if is_today and (time == t1 or time == t2 or time == t3 or time == t4)
//     line.new(x1 = bar_index, y1 = low, x2 = bar_index, y2 = high, extend = extend.both, color=color.red, width = 1)

strategy('Modified RSI')
col_grow_above = input(#02ac11, "Above   Grow", group="Histogram", inline="Above")
col_fall_above = input(#6ee47d, "Fall", group="Histogram", inline="Above")
col_grow_below = input(#e5939b, "Below Grow", group="Histogram", inline="Below")
col_fall_below = input(#dd0000, "Fall", group="Histogram", inline="Below")
EMA_length = input.int(13, 'Price_EMA', minval=1)
RSI_length = input.int(14, 'RSI_Period', minval=1)
Avg_length = input.int(5, 'RSI_Avg_EMA', minval=1)
fastMA = ta.ema(close, EMA_length)
modrsi = ta.rsi(fastMA, RSI_length)
RSIAVG = ta.ema(modrsi, Avg_length)
plot(modrsi, color=color.rgb(38, 0, 255), linewidth=2)
plot(RSIAVG, color=color.rgb(247, 0, 0))
rsiUpperBand = hline(60, 'RSI Upper Band', color=#099b0e)
//hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(40, 'RSI Lower Band', color=#e90101)

RSI_hist = modrsi - RSIAVG

//plot(RSI_hist,"RSI_Histogram", color = #c201e9, style = plot.style_columns,linewidth= 5)

plot(RSI_hist, title="RSI_Histogram", style=plot.style_columns, color=(RSI_hist>=0 ? (RSI_hist[1] < RSI_hist ? col_grow_above : col_fall_above) : (RSI_hist[1] < RSI_hist ? col_grow_below : col_fall_below)))


/////// Moving Averages 20 50 EMA

fast_ma = input.int(20, minval=2, title="Fast_EMA")
slow_ma = input.int(50, minval=2, title="Slow_EMA")

src = input.source(close, title="Source")

out = ta.ema(src, fast_ma)
out1 = ta.ema(src, slow_ma)

//plot(out, title="20 EMA", color=color.rgb(117, 71, 247), linewidth = 2)
//plot(out1, title="50 EMA", color=color.rgb(0, 0, 0), linewidth = 2)


longCondition = ((ta.crossover(modrsi, RSIAVG)) and (RSI_hist > 0))
if longCondition
    strategy.entry('B', strategy.long)

shortCondition = ((ta.crossunder(modrsi, RSIAVG)) and (RSI_hist < 0))
if shortCondition
    strategy.entry('S', strategy.short)



Plus de