Stratégie de pyramide de négociation d'actions basée sur l'indicateur RSI

Auteur:ChaoZhang est là., Date: 2024-01-30 15h26h49
Les étiquettes:

img

Résumé

Cet article présente principalement une stratégie de pyramide de négociation d'actions conçue sur la base de l'indicateur de force relative (RSI).

Principe de stratégie

  • Utilisez l'indicateur RSI pour juger si l'action est entrée dans la zone de surachat ou de survente.
  • Quand le RSI entre dans la zone de survente, commencez à aller long.
  • Adopter la méthode pyramidale, avec jusqu'à 7 achats supplémentaires.

Analyse des avantages

  • L'utilisation de l'indicateur RSI pour déterminer les zones de surachat et de survente peut permettre de saisir de plus grandes opportunités de renversement des prix.
  • La méthode pyramidale peut obtenir des rendements relativement meilleurs lorsque le marché évolue correctement.
  • Le fait de définir un profit et un stop-loss après chaque achat supplémentaire peut contrôler les risques.

Analyse des risques

  • L'effet de l'indicateur RSI pour déterminer les zones de surachat et de survente est instable et des signaux erronés peuvent se produire.
  • Le nombre d'achats supplémentaires doit être fixé de manière raisonnable, trop d'achats supplémentaires augmenteront les risques.
  • La fixation des points de stop loss doit tenir compte de la volatilité, elle ne peut pas être trop faible.

Directions d'optimisation

  • Envisagez de combiner d'autres indicateurs pour filtrer les signaux RSI et améliorer la précision de la détermination des statuts de surachat et de survente. tels que KDJ, BOLL et autres indicateurs.
  • Peut régler le stop loss flottant pour suivre le prix.
  • Considérez l'utilisation de paramètres adaptatifs basés sur les conditions du marché (marché haussier, marché baissier, etc.).

Résumé

Cette stratégie combine l'indicateur RSI avec la stratégie pyramidale. Tout en jugeant les statuts de surachat et de survente, il peut obtenir plus de rendements grâce à des achats supplémentaires. Bien que l'exactitude du jugement RSI doive être améliorée, grâce à une optimisation raisonnable des paramètres et une combinaison avec d'autres indicateurs, il peut former une stratégie de trading efficace. Cette stratégie a une certaine universalité et est une méthode de trading quantitative relativement simple et simple.


/*backtest
start: 2023-12-30 00:00:00
end: 2024-01-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni

strategy(title='Simple RSI strategy', overlay=false)

SWperiod = 1
look = 0
OverBought = input(80, minval=50)
OverSold = input(25, maxval=50)

bandmx = hline(100)
bandmn = hline(0)

band1 = hline(OverBought)
band0 = hline(OverSold)
//band50 = hline(50, color=black, linewidth=1)
fill(band1, band0, color=color.purple, transp=98)


src = close
len = input(5, minval=1, title="RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)

p = 100

//scale
hh = highest(high, p)
ll = lowest(low, p)
scale = hh - ll

//dynamic OHLC
dyno = (open - ll) / scale * 100
dynl = (low - ll) / scale * 100
dynh = (high - ll) / scale * 100
dync = (close - ll) / scale * 100

//candle color
color_1 = close > open ? 1 : 0

//drawcandle
hline(78.6)
hline(61.8)
hline(50)
hline(38.2)
hline(23.6)
plotcandle(dyno, dynh, dynl, dync, title="Candle", color=color_1 == 1 ? color.green : color.red)
plot(10, color=color.green)
plot(55, color=color.black)
plot(80, color=color.black)
plot(90, color=color.red)

long = rsi <= OverSold ? 5 : na

//Strategy
golong = rsi <= OverSold ? 5 : na

longsignal = golong  
//based on https://www.tradingview.com/script/7NNJ0sXB-Pyramiding-Entries-On-Early-Trends-by-Coinrule/
//set take profit

ProfitTarget_Percent = input(3)
Profit_Ticks = close * (ProfitTarget_Percent / 100) / syminfo.mintick

//set take profit

LossTarget_Percent = input(10)
Loss_Ticks = close * (LossTarget_Percent / 100) / syminfo.mintick


//Order Placing

strategy.entry("Entry 1", strategy.long, when=strategy.opentrades == 0 and longsignal)

strategy.entry("Entry 2", strategy.long, when=strategy.opentrades == 1 and longsignal)

strategy.entry("Entry 3", strategy.long, when=strategy.opentrades == 2 and longsignal)

strategy.entry("Entry 4", strategy.long, when=strategy.opentrades == 3 and longsignal)

strategy.entry("Entry 5", strategy.long, when=strategy.opentrades == 4 and longsignal)

strategy.entry("Entry 6", strategy.long, when=strategy.opentrades == 5 and longsignal)

strategy.entry("Entry 7", strategy.long, when=strategy.opentrades == 6 and longsignal)



if strategy.position_size > 0
    strategy.exit(id="Exit 1", from_entry="Entry 1", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 2", from_entry="Entry 2", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 3", from_entry="Entry 3", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 4", from_entry="Entry 4", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 5", from_entry="Entry 5", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 6", from_entry="Entry 6", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 7", from_entry="Entry 7", profit=Profit_Ticks, loss=Loss_Ticks)


Plus de