Stratégie de trading quantitative combinant croisement de moyennes mobiles doubles et indicateur RSI


Date de création: 2023-11-21 12:09:50 Dernière modification: 2023-11-21 12:09:50
Copier: 0 Nombre de clics: 669
1
Suivre
1617
Abonnés

Stratégie de trading quantitative combinant croisement de moyennes mobiles doubles et indicateur RSI

Aperçu

Cette stratégie consiste à identifier la direction d’une tendance en combinant une double croisée des lignes de parité et un indicateur RSI pour identifier la direction d’une tendance et des situations de survente et d’achat excessif. La stratégie vise à utiliser la croisée des lignes de parité pour déterminer la direction de la tendance, tout en utilisant l’indicateur RSI pour éviter la survente au sommet du marché et la dépréciation au bas du marché, afin d’obtenir de meilleurs résultats.

Principe de stratégie

Un signal typique est un signal à plusieurs têtes lorsque la courte tendance à la hausse est superposée à la longue tendance à la hausse sur une moyenne rapide de 9 cycles. De plus, si le RSI est supérieur à 5 points de la période précédente et inférieur à 70, cela indique qu’il est dans la zone d’avant le surachat.

Lorsque la moyenne rapide de 9 cycles est inférieure à la moyenne lente de 50 cycles, cela signifie que le marché est vide et que la position doit être nettoyée.

Analyse des avantages

  • Pour ne pas être induit en erreur par de fausses avancées, utilisez une croix biuniversale pour juger des grandes tendances
  • L’indicateur RSI évite de prendre de mauvaises décisions à un tournant du marché
  • La périodicité linéaire peut être ajustée de manière flexible pour s’adapter à différentes variétés et dimensions temporelles
  • Des stratégies contrôlables pour arrêter les pertes

Analyse des risques

  • La prise de décision à la croisée des chemins est parfois inefficace et peut entraîner des pertes
  • Une mauvaise configuration des paramètres RSI peut entraîner la perte du meilleur moment d’entrée
  • Il faut se demander si le volume de transactions peut soutenir les prix.
  • Les comportements irrationnels provoqués par des événements imprévus nécessitent une intervention manuelle.

Direction d’optimisation

  • Optimiser les paramètres du RSI pour obtenir les meilleurs résultats
  • Éviter les fausses alertes en combinant avec le volume des transactions
  • Paramètres de la moyenne optimale selon les différentes variétés et dimensions temporelles
  • Laissez la marge de freinage appropriée pour éviter d’être piégé.

Résumer

Cette stratégie permet d’obtenir des gains stables en utilisant efficacement les tendances de la ligne médiane et longue pour déterminer la direction des croisements de la ligne médiane et éviter de suivre le RSI. Cependant, il faut également être attentif au retard des signaux de croisement de la ligne médiane et à l’ajustement des paramètres du RSI, tout en se concentrant sur la relation entre le prix et le volume de transactions.

Code source de la stratégie
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 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/
// © joshuajcoop01

//@version=5
strategy("Bitpanda Coinrule Template",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0


// RSI
length = input(14)
vrsi = ta.rsi(close, length)

// Moving  Averages for Buy Condition
buyFastEMA = ta.ema(close, 9)
buySlowEMA = ta.ema(close, 50)
buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA)


increase = 5
if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod)
    strategy.entry("Long", strategy.long)


// Moving  Averages for Sell Condition
sellFastEMA = ta.ema(close, 9)
sellSlowEMA = ta.ema(close, 50)
plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue)
plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green)


condition = ta.crossover(sellSlowEMA, sellFastEMA)
//sellCondition1 = request.security(syminfo.tickerid, "60", condition)

strategy.close('Long', when = condition and timePeriod)