Les ressources ont été chargées... Je charge...

Stratégie de signaux long-courts basée sur QQE et RSI

Auteur:ChaoZhang est là., Date: 2024-05-27 15:17:45 La date est fixée à
Les étiquettes:Indice de résistanceQQE

img

Résumé

Cette stratégie est basée sur l'indicateur QQE et l'indicateur RSI. Elle calcule la moyenne mobile lissée et la plage d'oscillation dynamique de l'indicateur RSI pour construire des intervalles de signaux longs et courts. Lorsque l'indicateur RSI traverse le rail supérieur, il génère un signal long et lorsqu'il traverse le rail inférieur, il génère un signal court.

Principe de stratégie

  1. Calculer la moyenne mobile lissée RsiMa de l'indicateur RSI comme base pour juger de la tendance.
  2. Calculer la valeur absolue de l'écart AtrRsi de l'indicateur RSI et sa moyenne mobile lissée MaAtrRsi comme base pour juger de la volatilité.
  3. Calculer la plage d'oscillation dynamique dar selon le facteur QQE, et la combiner avec RsiMa pour construire les intervalles de signal long-courts longband et shortband.
  4. Jugez la relation entre l'indicateur RSI et les intervalles de signal long-courts. Lorsque l'indicateur RSI traverse au-dessus de la bande longue, il génère un signal long, et lorsqu'il traverse au-dessous de la bande courte, il génère un signal court.
  5. Lorsque le signal long est déclenché, ouvrez une position longue, et lorsque le signal court est déclenché, fermez la position.

Les avantages de la stratégie

  1. Il combine les caractéristiques de l'indicateur RSI et de l'indicateur QQE, qui peuvent mieux capturer les tendances du marché et les opportunités de volatilité.
  2. Il utilise une plage d'oscillation dynamique pour construire des intervalles de signaux, qui peuvent s'adapter aux changements de volatilité du marché.
  3. Il aplatit l'indicateur RSI et la fourchette de volatilité, réduisant ainsi efficacement les interférences sonores et les transactions fréquentes.
  4. La logique est claire, avec moins de paramètres, et convient à une optimisation et à une amélioration ultérieures.

Risques stratégiques

  1. Pour les marchés volatils et les marchés à faible volatilité, la performance de cette stratégie peut ne pas être idéale.
  2. Il manque d'un mécanisme d'arrêt-perte clair et peut être confronté à un risque de retrait plus élevé lorsque le marché se retourne soudainement.
  3. Les paramètres définis ont une plus grande incidence sur les performances de la stratégie et doivent être ajustés en fonction des différents marchés et variétés.

Directions d'optimisation de la stratégie

  1. Mettre en place des mécanismes de stop-loss clairs, tels que le stop-loss à pourcentage fixe, le stop-loss ATR, etc., afin de contrôler le risque de retrait.
  2. Optimiser les paramètres. La combinaison optimale de paramètres peut être trouvée par des algorithmes génétiques, la recherche par grille et d'autres méthodes.
  3. Envisager d'introduire d'autres indicateurs tels que le volume des transactions et le volume des positions afin d'enrichir les signaux de négociation et d'améliorer la stabilité de la stratégie.
  4. Pour les marchés volatils, envisager l'introduction d'une logique de négociation de gamme ou de swing trading pour améliorer l'adaptabilité de la stratégie.

Résumé

Cette stratégie construit des signaux long-courts basés sur l'indicateur RSI et l'indicateur QQE, et possède les caractéristiques de capture de tendance et de capture de la volatilité. La logique de la stratégie est claire, avec moins de paramètres, et convient à une optimisation et à une amélioration ultérieures. Cependant, la stratégie comporte également certains risques, tels que le contrôle du tirage et le réglage des paramètres, qui doivent être améliorés.


/*backtest
start: 2023-05-21 00:00:00
end: 2024-05-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=4
// modified by swigle
// thanks colinmck

strategy("QQE signals bot", overlay=true)


RSI_Period = input(14, title='RSI Length')
SF = input(5, title='RSI Smoothing')
QQE = input(4.236, title='Fast QQE Factor')
ThreshHold = input(10, title="Thresh-hold")

src = close
Wilders_Period = RSI_Period * 2 - 1

Rsi = rsi(src, RSI_Period)
RsiMa = ema(Rsi, SF)
AtrRsi = abs(RsiMa[1] - RsiMa)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
dar = ema(MaAtrRsi, Wilders_Period) * QQE

longband = 0.0
shortband = 0.0
trend = 0

DeltaFastAtrRsi = dar
RSIndex = RsiMa
newshortband = RSIndex + DeltaFastAtrRsi
newlongband = RSIndex - DeltaFastAtrRsi
longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1], newlongband) : newlongband
shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ? min(shortband[1], newshortband) : newshortband
cross_1 = cross(longband[1], RSIndex)
trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1)
FastAtrRsiTL = trend == 1 ? longband : shortband

// Find all the QQE Crosses

QQExlong = 0
QQExlong := nz(QQExlong[1])
QQExshort = 0
QQExshort := nz(QQExshort[1])
QQExlong := FastAtrRsiTL < RSIndex ? QQExlong + 1 : 0
QQExshort := FastAtrRsiTL > RSIndex ? QQExshort + 1 : 0

//Conditions

qqeLong = QQExlong == 1 ? FastAtrRsiTL[1] - 50 : na
qqeShort = QQExshort == 1 ? FastAtrRsiTL[1] - 50 : na

// Plotting

plotshape(qqeLong, title="QQE long", text="Long", textcolor=color.white, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny)
plotshape(qqeShort, title="QQE short", text="Short", textcolor=color.white, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny)

// trade

//if qqeLong > 0
strategy.entry("buy long", strategy.long, 100, when=qqeLong)
    
if qqeShort > 0
    strategy.close("buy long")
    // strategy.exit("close_position", "buy long", loss=1000)
    // strategy.entry("sell", strategy.short, 1, when=strategy.position_size > 0)
    


Relationnée

Plus de