Stratégie de négociation quantitative combinée à plusieurs indicateurs

Auteur:ChaoZhang est là., Date: 2024-01-24 15:10:41 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie utilise trois indicateurs techniques du prix des actions, RSI, StochRSI et Bollinger Bands, et combine les conditions de temps et de direction de négociation pour déterminer les signaux d'achat et de vente pour les stratégies de négociation quantitatives.

Principe

Lorsque l'indicateur RSI est inférieur à la zone inférieure et que la ligne StochRSI K traverse au-dessus de la ligne D, il est considéré comme un signal d'achat.

Lorsque l'indicateur RSI dépasse la zone supérieure et que la ligne StochRSI K traverse en dessous de la ligne D, il est considéré comme un signal de vente.

L'indicateur RSI juge si le prix de l'action est suracheté ou survendu, StochRSI juge l'élan du prix de l'action et Bollinger Bands juge si le prix de l'action est à des niveaux élevés et bon marché.

Analyse des avantages

Il s'agit d'une stratégie combinée à plusieurs indicateurs avec une large couverture d'indicateurs et une base de jugement complète.

Les restrictions de temps sont ajoutées avant la passation des ordres afin d'éviter des risques plus élevés pendant des périodes de temps spécifiques.

En combinant les jugements de multiples indicateurs, il est possible de faire correspondre plus de tendances pour améliorer l'efficacité de la stratégie.

Analyse des risques

La stratégie repose principalement sur trois types d'indicateurs. Si l'indicateur donne un mauvais signal, la stratégie causera des pertes. Les indicateurs doivent se vérifier mutuellement et ne peuvent pas se fier complètement à un certain indicateur. Par exemple, l'oscillation du RSI dans une certaine période augmentera la possibilité d'émettre de faux signaux.

Les conditions de jugement du temps ajoutées à la stratégie peuvent également manquer des conditions de marché favorables.

Si la sélection des stocks est inappropriée, par exemple pour les stocks présentant des effets d'exagération graves, la validité de ces indicateurs sera considérablement réduite.

Optimisation

  1. Augmenter les mesures de contrôle des risques telles que le tirage maximum pour limiter les pertes.

  2. Ajustez les paramètres de l'indicateur pour qu'ils correspondent mieux aux actions sélectionnées.

  3. Augmenter les mécanismes de filtrage, tels que suspendre les transactions lorsque le prix des actions est au milieu de la bande de Bollinger pour éviter les conditions oscillantes du marché.

  4. La sélection d'actions peut se référer aux fondamentaux pour éviter les actions présentant de graves fraudes financières.

Résumé

Il s'agit d'une stratégie d'indicateur technique typique à variables multiples avec un mélange équilibré d'indicateurs et une couverture étendue. Dans le même temps, les conditions d'ordre sont rigoureuses, ce qui peut sélectionner efficacement les stocks pour réaliser un profit, et le retrait sera contrôlé dans une certaine plage. Grâce à l'optimisation des indicateurs et des paramètres, il peut mieux s'adapter au marché.


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

//@version= 2
strategy("RSI+STOCHRSI+BB Strategy", overlay=true)
lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 70 )
price = close
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

bblength = input(50)
bbupmult =input(1.5,title="Multiplier for BB Upper Band")
bblowmult = input(1.5,title="Multiplier for BB Lower Band")

basis =  sma(close,bblength)

devup = bbupmult * stdev(close, bblength)
devlow = bblowmult * stdev(close, bblength)

upper = basis + devup
lower = basis - devlow
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)


yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  ( crossover(k,d)) and ( crossover(vrsi,overSold) or vrsi<overSold)  and (  (price<lower) or crossover(price,lower) ) ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( ( crossunder(k,d) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and  ( (price>upper) or crossunder(price,upper) )) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

Plus de