La stratégie de négociation quantitative efficace combinant

Auteur:ChaoZhang est là., Date: 2024-02-01 15h09:06
Les étiquettes:

img

Résumé

Cette stratégie combine principalement l'indicateur RSI à 5 jours et la moyenne mobile à 200 jours pour former des signaux de décision de trading, qui appartient à la stratégie de combinaison d'indicateurs techniques. Son principe de trading principal est: lorsque le prix atteint la zone de surachat/survente, il signale la vente; lorsque le prix tombe à la zone de survente, il signale l'achat. Le plus grand avantage de cette stratégie est que le signal de stratégie est relativement clair et que le risque de retracement est relativement faible.

Principe de stratégie

Cette stratégie combine principalement l'indicateur RSI à 5 jours et la moyenne mobile à 200 jours pour juger de la zone de surachat/survente où les prix évoluent et forme des décisions de négociation:

  1. L'indicateur RSI de 5 jours évalue la zone de surachat/survente où les prix sont en cours. La ligne de surachat est définie à 72 et la zone de survente est de 30. Lorsque l'indicateur RSI franchit 30 de bas en haut, un signal d'achat est généré; lorsque l'indicateur RSI tombe de haut en bas en dessous de 72, un signal de vente est généré.

  2. La moyenne mobile de 200 jours détermine la direction de la tendance à moyen et long terme. Lorsque le prix est inférieur à la moyenne mobile de 200 jours, il s'agit d'une phase de baisse du prix; lorsque le prix est supérieur à la moyenne mobile de 200 jours, il s'agit d'une phase de hausse du prix.

  3. Combinant 1 et 2 jugement, cette stratégie se vend lorsque l'indicateur RSI de 5 jours est suracheté et tombe en dessous de 72, et achète lorsque l'indicateur RSI de 5 jours tombe en dessous de 30 et que le prix est en dessous de la moyenne mobile de 200 jours.

Les avantages de la stratégie

  1. Le signal de stratégie est relativement clair, en utilisant l'indicateur RSI pour déterminer le signal de surachat/survente par zone de jugement.

  2. La moyenne mobile à 200 jours détermine la direction de la tendance principale afin d'éviter les opérations contraires.

  3. Le nombre maximal de positions peut être fixé pour aider à contrôler les risques.

  4. La stratégie dispose d'un grand espace pour l'optimisation des paramètres, les paramètres réglables du RSI et les paramètres de la moyenne mobile.

  5. Le risque de retracement relativement faible peut contrôler efficacement le retracement maximal de la stratégie.

Risques liés à la stratégie

  1. En utilisant uniquement des indicateurs RSI et moyennes mobiles, le signal de stratégie peut être instable, avec le risque de pertes à long terme et à court terme sur les marchés volatils.

  2. Besoin d'optimiser et de tester les paramètres du RSI et les paramètres de la moyenne mobile pour obtenir de meilleurs résultats stratégiques.

  3. D'autres indicateurs ou modèles peuvent être introduits pour optimiser le signal de stratégie, tels que l'introduction d'indicateurs de volatilité, de jugements d'apprentissage automatique, etc.

Directions pour l'optimisation de la stratégie

  1. Utilisez plus de combinaisons d'indicateurs pour juger. tels que MACD, KD, indicateurs de volatilité, etc.

  2. Augmenter les jugements des modèles d'apprentissage automatique tels que LSTM pour juger de la stabilité des signaux de trading.

  3. Augmenter les facteurs quantitatifs tels que les changements du volume des transactions, la direction des flux de capitaux et d'autres jugements sur les facteurs de capital.

  4. Optimiser les paramètres de stratégie tels que les paramètres du RSI, les paramètres de la moyenne mobile, etc.

  5. Optimiser les mécanismes d'arrêt de perte, tels que le déplacement de l'arrêt de perte, l'arrêt du temps, etc.

Résumé

Cette stratégie utilise principalement la combinaison de l'indicateur RSI à 5 jours et de l'indicateur de moyenne mobile à 200 jours pour juger de la zone de surachat / survente des prix et former des signaux de trading. Elle appartient à la stratégie de combinaison d'indicateurs techniques. Le signal de stratégie est relativement clair et le risque de retracement maximal est relativement faible. Mais il peut être optimisé par des combinaisons multi-indicateurs et des jugements d'apprentissage automatique pour améliorer les résultats 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")


Plus de