Stratégie de saut de prix à la moyenne mobile double

Auteur:ChaoZhang est là., Date: 2023-11-21 14h28 et 35 min
Les étiquettes:

img

Résumé

Cette stratégie utilise l'indicateur RSI pour déterminer les conditions de surachat et de survente, combiné à un système de jugement de tendance construit avec des lignes moyennes mobiles rapides, moyennes et lentes, afin d'identifier les opportunités d'ouvrir des positions longues ou courtes lorsque les prix sautent.

Principe de stratégie

  1. Utiliser l'indicateur RSI pour déterminer les conditions de surachat et de survente

    • Le paramètre RSI est réglé sur 14 périodes
    • La ligne de survente est à 30, la ligne de surachat est à 70
  2. Utiliser trois lignes SMA de différentes périodes pour déterminer la tendance

    • La ligne rapide est la SMA à 9 périodes, qui représente la tendance à court terme.
    • La ligne moyenne est la SMA à 50 périodes, qui représente la tendance à moyen terme.
    • La ligne lente est une SMA de 200 périodes, représentant une tendance à long terme.
  3. Lorsque la ligne rapide traverse au-dessus de la ligne moyenne, et que l'indicateur RSI montre une survente, passez long

  4. Lorsque la ligne rapide traverse la ligne moyenne et que l'indicateur RSI montre un surachat, passez à la ligne courte.

  5. Le stop loss est fixé à 4% du prix d'entrée

  6. La prise de profit se fait par lots, d'abord prendre un profit de 20%, puis prendre 15% que le prix continue à augmenter, sortir des positions progressivement

Analyse des avantages

  1. L' utilisation de trois lignes SMA de différentes périodes permet de juger des changements de tendance sur différentes périodes
  2. L'utilisation de l'indicateur RSI évite d'ouvrir des positions en dehors des zones de surachat/survente
  3. Les bénéfices par lots augmentent pendant la période de détention et le bénéfice moyen de la stratégie

Analyse des risques

  1. Probabilité de signaux erronés des trois lignes moyennes mobiles
  2. Risque d'incomplétude des bénéfices par lots lors de l'exécution
  3. Nécessité de choisir des instruments appropriés avec une forte fluctuation des prix

Directions d'optimisation

  1. Peut tester les paramètres de modification des moyennes mobiles et du RSI pour optimiser l'entrée et la sortie
  2. Peut ajouter d'autres indicateurs pour filtrer les motifs de bougies, etc. pour améliorer la précision
  3. Peut suivre dynamiquement le stop loss pour contrôler davantage le risque

Résumé

Cette stratégie combine des indicateurs de moyenne mobile et l'indicateur de surachat/survente RSI. En capturant les changements de tendance des prix tout en jugeant les opportunités de trading, elle appartient à une stratégie de suivi des tendances couramment utilisée.


/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
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/
// © syfuslokust

//@version=4
strategy(shorttitle='CoinruleCombinedCryptoStrat',title='CoinruleCombinedCryptoStrat', overlay=true)


// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
//Normal
oversold = input(30)
overbought =  input(70)
//ALGO
//oversold= input(26)
//overbought= input(80)

//sell pct
SellPct = input(20)
ExitPct = input(15)

//MA inputs and calculations
movingaverage_signal = sma(close, input(9))
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_mid= sma(close, input(100))

//Look Back
inp_lkb = input(12, title='Lookback Long Period')
inp_lkb_2 = input(2, title='Lookback Short Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

//Entry 

//MA
bullish = crossover(movingaverage_signal, movingaverage_fast)
//Execute buy
strategy.entry(id="long", long = true, when = (RSI < oversold and movingaverage_fast < movingaverage_mid))

//when = crossover(close, movingaverage_signal) and movingaverage_signal < movingaverage_slow and RSI < oversold)

//Exit

//RSI
Stop_loss= ((input (4))/100)
longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
//MA
bearish = crossunder(movingaverage_signal, movingaverage_fast)
//Execute sell
strategy.close("long", qty_percent = SellPct, when = RSI > overbought and movingaverage_fast > movingaverage_mid)
//when = (crossunder(low, movingaverage_signal) and movingaverage_fast > movingaverage_slow and RSI > overbought) or (movingaverage_signal < movingaverage_fast and crossunder(low, movingaverage_fast)) or (low < longStopPrice))


//PLOT
plot(movingaverage_signal, color=color.black, linewidth=2, title="signal")
plot(movingaverage_fast, color=color.orange, linewidth=2, title="fast")
plot(movingaverage_slow, color=color.purple, linewidth=2, title="slow")
plot(movingaverage_mid, color=color.blue, linewidth=2, title="mid")

Plus de