Achetez bas et vendez haut : stratégie de trading quantitatif à court terme basée sur la moyenne mobile RSI


Date de création: 2023-12-01 16:59:26 Dernière modification: 2023-12-01 16:59:26
Copier: 0 Nombre de clics: 703
1
Suivre
1619
Abonnés

Achetez bas et vendez haut : stratégie de trading quantitatif à court terme basée sur la moyenne mobile RSI

Aperçu

La stratégie consiste à acheter et à vendre lorsque le RSI est inférieur à la moyenne et à vendre lorsque le RSI est supérieur à la moyenne, ce qui est typique de la stratégie de bas-achat-haute.

Principe de stratégie

  1. Calculer le RSI sur une ligne K de 40 cycles
  2. Calculer la moyenne de l’AM sur le RSI avec une longueur de cycle de 10 lignes K
  3. Générer un signal d’achat lorsque l’indicateur RSI est inférieur à sa moyenne par un facteur ((1-intervalle de vente / 100)
  4. Un signal de vente est généré lorsque l’indicateur RSI est supérieur à sa ligne moyenne multiplié par le facteur ((1 + intervalle d’achat et de vente / 100)
  5. Le signal est généré lorsque la distance entre les zones d’achat et de vente est par défaut de 5, ce qui signifie que la distance de la ligne moyenne est de +/- 5%
  6. Le plafond est jugé RSI si l’indicateur est supérieur à sa moyenne et supérieur au niveau 50

Analyse des avantages

Il s’agit d’une stratégie typique de renversement de tendance qui utilise les caractéristiques de sur-achat et de sur-vente de l’indicateur RSI pour déterminer le moment de l’achat et de la vente. La stratégie présente les avantages suivants:

  1. L’utilisation de l’indicateur RSI pour juger de la structure du marché, l’indicateur lui-même est plus fiable
  2. Le filtrage homogène évite les transactions inutiles et améliore la stabilité
  3. Les paramètres de distance entre les zones d’achat et de vente peuvent ajuster la fréquence des transactions
  4. Le code est simple, compréhensible et logique.

Dans l’ensemble, c’est une stratégie simple et pratique de négociation en ligne courte.

Analyse des risques

Cette stratégie comporte également des risques à prendre en compte:

  1. Le RSI peut émettre des signaux erronés et il est nécessaire de prêter attention à la forme de la courbe
  2. Une mauvaise distance entre les zones d’achat et de vente peut entraîner des transactions excessives ou des opportunités manquées
  3. La fréquence des transactions est élevée et les coûts de transaction doivent être pris en compte.
  4. Basé sur un seul indicateur, vulnérable aux anomalies du marché

Ces risques peuvent être atténués par l’optimisation des paramètres, l’ajout de conditions de filtrage, etc.

Direction d’optimisation

Cette stratégie peut être optimisée dans les dimensions suivantes:

  1. Ajout d’indicateurs de filtrage supplémentaires, tels que les indicateurs de volume de transactions, pour s’assurer que les signaux ne sont générés qu’à des points de retournement de tendance
  2. Adhésion à une stratégie de stop-loss pour contrôler les pertes individuelles
  3. Optimisation des distances entre les zones d’achat et de vente, équilibre de la fréquence des transactions et des taux de profit
  4. Utilisation d’algorithmes d’apprentissage automatique pour trouver les combinaisons de paramètres optimales
  5. Ajout de modèles de regroupement pour intégrer les résultats de plusieurs sous-stratégies

La performance de la stratégie peut être considérablement améliorée par la combinaison de plusieurs indicateurs, la gestion des stops et l’optimisation des paramètres.

Résumer

Cette stratégie est une stratégie de négociation de courte ligne très typique et pratique. Elle utilise l’indicateur RSI pour déterminer le moment de l’achat et de la vente, complétée par un filtrage parallèle. La logique de la stratégie est simple et claire, les paramètres sont flexibles et faciles à mettre en œuvre.

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

//@version=5
strategy("I11L - Meanreverter 4h", overlay=false, pyramiding=3, default_qty_value=10000, initial_capital=10000, default_qty_type=strategy.cash,process_orders_on_close=false, calc_on_every_tick=false)
 
frequency = input.int(10)
rsiFrequency = input.int(40)
buyZoneDistance = input.int(5)
avgDownATRSum = input.int(3)
useAbsoluteRSIBarrier = input.bool(true)
barrierLevel = 50//input.int(50)

momentumRSI = ta.rsi(close,rsiFrequency)
momentumRSI_slow = ta.sma(momentumRSI,frequency)
 
isBuy = momentumRSI < momentumRSI_slow*(1-buyZoneDistance/100) and (strategy.position_avg_price - math.sum(ta.atr(20),avgDownATRSum)*strategy.opentrades > close or strategy.opentrades == 0 ) //and (momentumRSI < barrierLevel or not(useAbsoluteRSIBarrier))
isShort = momentumRSI > momentumRSI_slow*(1+buyZoneDistance/100) and (strategy.position_avg_price - math.sum(ta.atr(20),avgDownATRSum)*strategy.opentrades > close or strategy.opentrades == 0 ) and (momentumRSI > barrierLevel or not(useAbsoluteRSIBarrier))
momentumRSISoftClose = (momentumRSI > momentumRSI_slow) and (momentumRSI > barrierLevel or not(useAbsoluteRSIBarrier))

isClose = momentumRSISoftClose

plot(momentumRSI,color=isClose ? color.red :  momentumRSI < momentumRSI_slow*(1-buyZoneDistance/100) ? color.green : color.white)
plot(momentumRSI_slow,color=color.gray)
plot(barrierLevel,color=useAbsoluteRSIBarrier ? color.white : color.rgb(0,0,0,0))
plot(momentumRSI_slow*(1-buyZoneDistance/100),color=color.gray)
plot(momentumRSI_slow*(1+buyZoneDistance/100),color=color.gray)
plot(momentumRSI_slow*(1+(buyZoneDistance*2)/100),color=color.gray)

// plot(strategy.wintrades - strategy.losstrades)

 
 
if(isBuy)
    strategy.entry("Buy",strategy.long, comment="#"+str.tostring(strategy.opentrades+1))

// if(isShort)
//     strategy.entry("Sell",strategy.short, comment="#"+str.tostring(strategy.opentrades+1))

if(isClose)
    strategy.exit("Close",limit=close)