Combinaison de stratégies multifactorielles


Date de création: 2023-10-26 15:18:34 Dernière modification: 2023-10-26 15:18:34
Copier: 0 Nombre de clics: 429
1
Suivre
1178
Abonnés

Combinaison de stratégies multifactorielles

Voici un article détaillé sur l’analyse de la stratégie que j’ai rédigé à partir du code de stratégie de trading que vous m’avez fourni:

Aperçu

Cette stratégie est composée de plusieurs facteurs, et vise à tirer parti des différents facteurs pour construire une stratégie de trading globale. Elle est principalement composée des facteurs suivants:

  1. Stoch.RSI - indice aléatoire à moyenne mobile lisse
  2. RSI - Indice de force et de faiblesse relative
  3. Double Stratégie - une double stratégie pour les indices aléatoires et le RSI
  4. CM Williams Vix Fix - Fixation de la volatilité de Williams, à la recherche du bas du marché
  5. DMI - Indicateur de tendance

En combinant plusieurs facteurs, il est possible de tirer parti des avantages de chaque facteur, d’obtenir plus d’opportunités de trading et de réduire le risque de dépendance à un seul facteur.

Principe de stratégie

La stratégie utilise principalement les indicateurs techniques suivants:

  1. Stoch.RSI- L’indicateur RSI aléatoire, qui combine les avantages de l’indicateur RSI et de l’indicateur aléatoire. Il utilise la valeur du RSI comme une entrée pour l’indicateur aléatoire pour déterminer si le marché est en survente ou en survente.

  2. RSI- Indice de relative faiblesse, qui détermine l’état de sur-achat et de sur-vente du marché. Le RSI est supérieur à 70 pour les zones de survente et inférieur à 30 pour les zones de survente. Le RSI oscille entre 30 et 70 et représente un marché en cours de liquidation.

  3. Double Strategy- une double stratégie combinant l’utilisation d’indicateurs aléatoires et du RSI. Lorsque l’indicateur aléatoire %K traverse la ligne %D depuis la zone de survente et que le RSI traverse la zone de survente, faites plus; lorsque l’indicateur aléatoire %K traverse la ligne %D depuis la zone de survente et que le RSI traverse la zone de survente, faites moins.

  4. CM Williams Vix Fix- L’indicateur de réparation de la volatilité de Williams, qui permet de déterminer si le marché est à un point de retournement en calculant une plage en pourcentage de la volatilité des prix au cours de la période la plus récente.

  5. DMI- Indicateur de tendance, qui permet de déterminer la direction d’une tendance du marché en calculant la différence entre +DI et -DI. L’indice ADX peut être utilisé pour déterminer la force d’une tendance.

L’utilisation combinée des avantages de chacun de ces indicateurs pour évaluer les tendances du marché et les points d’achat et de vente sous différents angles peut améliorer la stabilité et le taux de réussite de la stratégie.

Avantages stratégiques

  • La diversité des facteurs, les différences entre les facteurs, sont plus complètes.
  • Il y a plus d’opportunités avec différents types de signaux de négociation, tels que les signaux de tendance et de revers.
  • En même temps, il est nécessaire de juger les zones de survente et de surachat, et de détecter en temps opportun la formation et la reprise d’états extrêmes.
  • La mise en place d’indicateurs optimisés pour les paramètres, plus adaptés aux différents environnements du marché;
  • Les indicateurs de tendance peuvent être combinés pour évaluer la force de la tendance et éviter les échanges à contre-courant.

Analyse des risques

  • La combinaison de plusieurs facteurs et la robustesse globale de la stratégie doivent être vérifiées.
  • Il existe des problèmes d’homogénéisation dans certains indicateurs, ce qui permet d’optimiser davantage la combinaison.
  • La présence simultanée de signaux de multiples espaces nécessite une stratégie claire et une stratégie de choix.
  • Le paramétrage nécessite une optimisation rigoureuse de la rétro-mesure et ne convient pas à une modification arbitraire des paramètres;
  • L’efficacité à long terme peut être médiocre et il est nécessaire d’arrêter les pertes en temps opportun.

Direction d’optimisation

  • un filtrage plus poussé des indicateurs du portefeuille, en préservant les facteurs uniques;
  • Optimiser les paramètres de chaque indicateur pour le rendre plus adapté au marché cible;
    • établir des règles claires d’entrée et de sortie;
  • Les méthodes de gestion des risques, combinées à des méthodes telles que le stop-loss et le profit-retrait;
  • Tester l’impact des différentes périodes de détention sur la performance.

Résumer

Cette stratégie utilise les avantages de plusieurs indicateurs techniques pour former des signaux de trading grâce à des facteurs tels que Stoch.RSI, RSI, Double Strategy, CM Williams Vix Fix et DMI. Elle fournit une base de jugement plus complète et plus stable, mais rend l’optimisation des paramètres de la stratégie plus complexe.

Code source de la stratégie
/*backtest
start: 2023-10-18 00:00:00
end: 2023-10-25 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


     //////////////////////////////////////////////////////////////////////
    ////  STOCHASTIC_RSI+RSI+DOUBLE_STRATEGY+CM_WILLIAMS_VIX_FIX+DMI  ////
   //////////////////////////////////////////////////////////////////////


//  This is a simple combination of integrated and published scripts, useful 
//  if you don't have a PRO account and want to bypass the 3 indicator limit. 
//  It includes:
//  1) Stoch.RSI
//  2) Relative strenght index
//  3) Stochastic + RSI, Double Strategy (by ChartArt)
//  4) CM_Williams_Vix_Fix Finds Market Bottoms (by ChrisMoody)
//  5) Directional Movement Index (DMI)
//  For more details about 3) and 4) check the original scripts.


//@version=3

strategy(title="Stoch.RSI+RSI+DoubleStrategy+CMWilliamsVixFix+DMI", shorttitle="Stoch.RSI+RSI+DoubleStrategy+CMWilliamsVixFix+DMI")


///STOCH.RSI///
smoothK = input(3, minval=1, title="Stochastic %K Smoothing")
smoothD = input(3, minval=1, title="Stochastic %K Moving Average")
lengthRSI = input(14, minval=1, title="RSI Lenght")
lengthStoch = input(14, minval=1, title="Stochastic Lenght")
RSIprice = close
rsi1 = rsi(RSIprice, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
plot(k, color=blue, linewidth=2)
plot(d, color=silver, linewidth=2)
h0 = hline(80)
h1 = hline(20)
fill(h0, h1, color=purple, transp=78)


///RSI///
up = rma(max(change(RSIprice), 0), lengthRSI)
down = rma(-min(change(RSIprice), 0), lengthRSI)
rsi2 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi2, color=fuchsia, linewidth=2)
// band0 = hline(70, linestyle=dotted)
// band1 = hline(30, linestyle=dotted)
// fill(band0, band1, color=purple, transp=100)


///OVERBOUGHT-OVERSOLD STRATEGY///
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
ks = sma(stoch(close, high, low, lengthStoch), smoothK)
ds = sma(k, smoothD)
RSIOverBought = input( 70  , title="RSI overbought condition")
RSIOverSold = input( 30  , title="RSI oversold condition")
vrsi = rsi(RSIprice, lengthRSI)
if (not na(ks) and not na(ds))
    if (crossover(ks,ds) and k < StochOverSold)
        if (not na(vrsi)) and (crossover(vrsi, RSIOverSold))
            strategy.entry("LONG", strategy.long, comment="LONG")
if (crossunder(ks,ds) and ks > StochOverBought)
    if (crossunder(vrsi, RSIOverBought))
        strategy.entry("SHORT", strategy.short, comment="SHORT")
 
 
///CM WILLIAMS VIX FIX///
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bollinger Band Length")
mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%")
hp = input(false, title="Show High Range (Based on Percentile and LookBack Period)?")
sd = input(false, title="Show Standard Deviation Line?")
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph
rangeLow = (lowest(wvf, lb)) * pl
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray
plot(hp and rangeHigh ? rangeHigh : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(hp and rangeLow ? rangeLow : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(wvf, title="Williams Vix Fix", style=columns, linewidth = 4, color=col, transp=85)
plot(sd and upperBand ? upperBand : na, title="Upper Band", style=line, linewidth = 3, color=aqua)


///DIRECTIONAL MOVEMENT INDEX///
len3 = input(14, minval=1, title="DI Length")
lensig3 = input(14, title="ADX Smoothing", minval=1, maxval=50)
up3 = change(high)
down3 = -change(low)
plusDM3 = na(up3) ? na : (up3 > down3 and up3 > 0 ? up3 : 0)
minusDM3 = na(down3) ? na : (down3 > up3 and down3 > 0 ? down3 : 0)
trur3 = rma(tr, len3)
plus3 = fixnan(100 * rma(plusDM3, len3) / trur3)
minus3 = fixnan(100 * rma(minusDM3, len3) / trur3)
sum3 = plus3 + minus3
adx3 = 100 * rma(abs(plus3 - minus3) / (sum3 == 0 ? 1 : sum3), lensig3)
plot(plus3, color=green, style=circles, linewidth=2, title="+DI")
plot(minus3, color=red, style=circles, linewidth=2, title="-DI")
plot(adx3, color=aqua, style=circles, linewidth=3, title="ADX")