Stratégie de trading quantitative efficace combinée à la moyenne mobile


Date de création: 2024-02-01 15:09:06 Dernière modification: 2024-02-01 15:09:06
Copier: 0 Nombre de clics: 589
1
Suivre
1617
Abonnés

Stratégie de trading quantitative efficace combinée à la moyenne mobile

Aperçu

Cette stratégie utilise principalement la combinaison de l’indicateur RSI à 5 jours et de la moyenne mobile à 200 jours pour former un signal de décision de transaction. Elle appartient à la stratégie de combinaison d’indicateurs techniques. Son principe de négociation principal est le suivant: lorsque le prix est supérieur à la zone de survente, le signal est vendu; lorsque le prix est inférieur à la zone de survente, le signal est acheté. Le plus grand avantage de cette stratégie est que le signal de la stratégie est plus clair et le risque de rétractation est moindre.

Principe de stratégie

Cette stratégie utilise principalement l’indicateur RSI à 5 jours combiné avec la moyenne mobile à 200 jours pour déterminer les zones de survente et de survente dans lesquelles les prix évoluent et pour prendre des décisions de négociation:

  1. Le 5ème jour, l’indicateur RSI détermine la zone de survente et de survente de la course du prix. La ligne de survente est fixée à 72 et la zone de survente à 30. Un signal d’achat est généré lorsque l’indicateur RSI franchit 30 de bas en haut; un signal de vente est généré lorsque l’indicateur RSI franchit 72 de haut en bas.

  2. La moyenne mobile de 200 jours détermine la direction de la tendance de la ligne médiane longue des prix. Lorsque les prix sont inférieurs à la moyenne des 200 jours, c’est la phase de baisse des prix; lorsque les prix sont supérieurs à la moyenne des 200 jours, c’est la phase de hausse des prix.

  3. En combinant les jugements 1 et 2, cette stratégie a au moins 5 jours de survente du RSI et de vente de 72 points de rupture, 5 jours de rupture de 30 points de rupture du RSI et d’achat de 200 points de rupture de la moyenne quotidienne.

Avantages stratégiques

  1. Les signaux stratégiques sont plus clairs et utilisent la zone de jugement de l’indicateur RSI pour déterminer les signaux de survente et de survente.

  2. La moyenne quotidienne de 200 jours permet de déterminer la direction de la tendance générale et d’éviter les opérations de contre-courant.

  3. Il est possible de régler le nombre de positions maximales, ce qui permet de contrôler les risques.

  4. Il est possible d’optimiser les paramètres stratégiques en ajustant les paramètres RSI et les paramètres de la moyenne.

  5. Le risque de retrait est faible et les stratégies de contrôle efficaces permettent un retrait maximal.

Risque stratégique

  1. En utilisant uniquement l’indicateur RSI et l’indicateur de la moyenne, le signal stratégique peut être instable et il existe un risque de perte de vente et de vente dans un marché de choc à plusieurs niveaux.

  2. Il est nécessaire d’optimiser et de tester les paramètres RSI et les paramètres de la moyenne pour obtenir de meilleurs résultats stratégiques.

  3. Il est possible d’introduire d’autres indicateurs ou modèles de jugement pour optimiser les signaux de stratégie. Par exemple, l’introduction d’indicateurs de volatilité, de jugements d’apprentissage automatique, etc.

Orientation de l’optimisation de la stratégie

  1. Il utilise un plus grand nombre de combinaisons d’indicateurs, comme le MACD, le KD, l’indicateur de volatilité, etc.

  2. Ajout de modèles d’apprentissage automatique pour juger la stabilité des signaux de transaction, comme le LSTM.

  3. Augmentation des facteurs quantifiables. Facteurs de jugement financiers tels que les variations du volume des transactions, les flux de capitaux, etc.

  4. Paramètres de stratégie d’optimisation tels que les paramètres RSI, les paramètres de la moyenne, etc.

  5. Optimisation des mécanismes de stop-loss, tels que le stop-loss mobile, le stop-loss temporel, etc.

Résumer

Cette stratégie utilise principalement un ensemble d’indicateurs RSI de 5 jours et d’indicateurs de la moyenne de 200 jours pour déterminer les zones de survente et de survente des prix, formant un signal de transaction, appartenant à une stratégie de composition d’indicateurs techniques. Le signal de la stratégie est plus clair et le risque de reprise maximale est plus faible.

Code source de la stratégie
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 3m
basePeriod: 1m
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/
// ©chewyScripts.

//@version=5
strategy("96er RSI+200EMA Strategy + Alerts", overlay=true)
// This works best on a small account $100, with 50% of equity and up to 10 max open trades. 
// 96% Profitable, turns $100 into $350 in 1 month. very few losses. super happy with it.
// So far it triples the account on a 1m chart in 1 month back testing on the SEI-USD pair.
// I did not test on FX pairs or other instruments.
// had some issues with the inputs not working so had to hard code some, also the lastClose var sometimes breaks and starts following every candle, not sure why.

in_r1 = input.int(5,"5 day input or RSI1")
in_openOrders = input.int(3,"max open orders")

in_lowerRSI = input.int(30,"RSI Lower")
in_upperRSI = input.int(72,"RSI Upper ")

in_emaperiod = input.int(200,"EMA Period")

in_buybreakout = input.int(50,"Buy breakout range")

in_buyTP = input.float(1.05,"Buy TP: 1+TP %, .05 seems to work well.")
in_sellTP = input.float(0.9850, "Sell TP: 1-TP%. .025 seems to work well. ")

simple int rsi5 = in_r1

// 3 rsi strategy , when all of them are overbought we sell, and vice versa
rsi7 = ta.rsi(close,rsi5)
lastClose = request.security(syminfo.tickerid, "D", close, lookahead = barmerge.lookahead_on)
rsi3 = ta.rsi(close[5],rsi5)

ma = ta.ema(close,in_emaperiod)

plot(rsi7,"5 Day RSI",color.red)
plot(lastClose,"Yesterdays Close",color.green)
plot(rsi3,"Previous 5th candles RSI",color.purple)


// sell condition
//sell = ta.crossunder(rsi7,70) and ta.crossunder(rsi14,70) and ta.crossunder(rsi21,70)

//buy condition
//buy = ta.crossover(rsi7,in_lowerRSI) and close < ma and rsi3 <= in_upperRSI and strategy.opentrades < in_openOrders
//sell = ta.crossunder(rsi7,in_upperRSI) and close > ma and rsi3 >= in_lowerRSI3 and strategy.opentrades < in_openOrders

buy = ta.crossover(rsi7,in_lowerRSI) and close < ma and close < lastClose and strategy.opentrades < in_openOrders
sell = ta.crossunder(rsi7,in_upperRSI) and close > ma and close > lastClose and strategy.opentrades < in_openOrders


var lastBuy = close 
var lastSell = close 

if (buy)
    strategy.entry("BUY", strategy.long)
    lastBuy := close 
    alert("Buy")

if ((close >= lastBuy*in_buyTP ) or rsi7 > in_buybreakout and close >= lastClose and (close >= lastClose*in_buyTP or close >= lastBuy*in_buyTP ) )
    strategy.close("BUY", "BUY Exit")
    alert("Buy Exit")
    
if (sell)
    strategy.entry("SELL", strategy.short)
    lastSell := close 
    alert("Sell")

if ( close < ma and (close <= lastSell*in_sellTP ) or (close < lastClose*in_sellTP) )
    strategy.close("SELL", "Sell Exit")
    alert("Sell Exit")