Stratégie de percée de positionnement des oscillations avec plusieurs indicateurs

Auteur:ChaoZhang est là., Date: 2023-12-01 17:49:34 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie combine plusieurs indicateurs, y compris STOCH.RSI, RSI, la stratégie double, l'indicateur CM Williams et l'indice des flux de trésorerie (MFI) pour localiser avec précision les fluctuations du marché et rechercher des opportunités de long/short. Elle peut générer des signaux de trading lorsque les cours des actions approchent des niveaux de support ou de résistance. En intégrant les avantages de plusieurs indicateurs et de la validation croisée, cette stratégie peut réduire efficacement les faux signaux et améliorer la fiabilité.

La logique de la stratégie

  1. STOCH.RSI combine les forces de l'oscillateur stochastique et de l'indice de force relative (RSI), affichant les niveaux de surachat/survente pour détecter les opportunités de renversement.

  2. L'indicateur des taux d'intérêt juge les conditions de surachat/survente comme une confirmation auxiliaire.

  3. La stratégie double détermine les croisements entre Stoch et RSI pour générer des signaux de trading.

  4. L'indicateur CM Williams calcule les bandes de percentiles.

  5. L'indice des flux de trésorerie (IFM) évalue les flux de fonds, en validant les signaux avec Stoch.RSI et RSI pour améliorer la qualité.

En résumé, en combinant Stoch.RSI, RSI, Dual Strategy, CM Williams et MFI, cette stratégie peut déterminer efficacement les niveaux de surachat/survente, localiser les points d'inversion et générer des signaux de qualité.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. La combinaison de plusieurs indicateurs améliore la qualité du signal par validation et réduit les faux signaux.

  2. STOCH.RSI, RSI et IFM détectent efficacement les zones de surachat/survente et les points tournants du marché.

  3. CM Williams calcule des bandes de percentiles pour aider à juger des fluctuations et des renversements du marché.

  4. La stratégie double génère des signaux de trading simples et faciles à suivre.

  5. Très personnalisable avec un large éventail de paramètres optimisables et adaptés à différents marchés.

Analyse des risques

Quelques risques à noter:

  1. Les calculs complexes multi-indicateurs nécessitent une puissance de calcul élevée, ce qui est inadéquat pour le trading à haute fréquence.

  2. Un réglage inapproprié des paramètres pourrait entraîner une détérioration de la qualité du signal.

  3. Les signaux d'inversion peuvent être retardés, mais d'autres indicateurs pourraient aider à juger de la tendance.

  4. Une fréquence de négociation élevée peut entraîner une mauvaise utilisation du capital.

Les solutions:

  1. Utilisez des terminaux puissants et optimisez les paramètres.

  2. Je fais des tests pour trouver les paramètres personnels optimaux.

  3. Ajouter plus d'indicateurs pour déterminer les tendances à l'avance.

  4. Optimiser les mécanismes de contrôle des risques tels que le stop loss pour limiter les pertes par transaction.

Directions d'optimisation

Cette stratégie peut être améliorée dans les domaines suivants:

  1. Optimiser les paramètres des indicateurs pour trouver la combinaison optimale.

  2. Ajoutez des indicateurs tels que le volume et le facteur de profit pour améliorer la sélection des actions.

  3. Incorporer plus de lignes de tendance, de bandes de Bollinger, etc. pour prévoir les niveaux de support/résistance.

  4. Ajoutez le stop loss, les filtres d'entrée sur le marché pour contrôler le risque.

  5. Les paramètres varient selon les produits et les délais en fonction des caractéristiques.

Conclusion

Cette stratégie permet de localiser les renversements du marché en combinant avec précision plusieurs indicateurs, notamment STOCH.RSI, RSI, Dual Strategy, CM Williams et MFI. La validation croisée améliore la qualité du signal et réduit les faux signaux.


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


     //////////////////////////////////////////////////////////////////////////
    ////  STOCHASTIC_RSI+RSI+DOUBLE_STRATEGY+CM_WILLIAMS_VIX_FIX+MFI  ////////
   //////////////////////////////////////////////////////////////////////////


//  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 indicators limit. 
//  It includes:
//  1) Stoch.RSI
//  2) Relative strenght index (RSI)
//  3) Stochastic + RSI, Double Strategy (by ChartArt)
//  4) CM_Williams_Vix_Fix Finds Market Bottoms (by ChrisMoody)
//  5) Monetary Flow Index (MFI)
//  For more details about 3) and 4) check the original scripts.


//@version=3
// @author GianlucaBezziccheri

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


///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)
band1 = hline(30)
fill(band0, band1, color=purple, transp=100)


///OVERBOUGHT-OVERSOLD STRATEGY///
StochOverBought = input(80, title="Stochastic RSI overbought")
StochOverSold = input(20, title="Stochastic RSI oversold")
ks = sma(stoch(close, high, low, lengthStoch), smoothK)
ds = sma(k, smoothD)
RSIOverBought = input( 70  , title="RSI overbought")
RSIOverSold = input( 30  , title="RSI oversold")
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)


///MONETARY FLOW INDEX
length4 = input(title="MFI Length", defval=14, minval=1, maxval=2000)
src4 = hlc3
upper4 = sum(volume * (change(src4) <= 0 ? 0 : src4), length4)
lower4 = sum(volume * (change(src4) >= 0 ? 0 : src4), length4)
mf4 = rsi(upper4, lower4)
plot(mf4, color=yellow, style=line, linewidth=2, title="Monetary Flow Index")
overbought=hline(70, title="MFI Overbought", color=yellow)
oversold=hline(30, title="MFI Oversold", color=yellow)
fill(overbought, oversold, color=#9915ff, transp=100)

Plus de