Stratégie d'achat et de vente à plusieurs indicateurs

Auteur:ChaoZhang est là., Date: le 18 octobre 2023 11:36:38
Les étiquettes:

img

Résumé

Cette stratégie combine des indicateurs de moyenne mobile, de surachat-survente et de taux de volatilité pour acheter en baisse en cas de survente et vendre en hausse en cas de surachat, afin de suivre les tendances.

La logique de la stratégie

Prenez des positions lorsque le RSI et le Stoch sont tous deux dans des zones de survente/surachat et que l'oscillateur AO montre un signal d'inversion. Plus précisément, allez long lorsque le RSI et le Stoch sont bas (en dessous de 30 et 20) et que l'AO passe de négatif à positif; allez court lorsque le RSI et le Stoch sont élevés (au-dessus de 70 et 80) et que l'AO passe de positif à négatif. Définissez un stop-loss et un profit basé sur la valeur ATR pour ajuster les niveaux de perte/bénéfice en fonction de la volatilité du marché.

La stratégie utilise principalement quatre indicateurs:

  • Oscillateur AO: reflète la dynamique des prix, peut être utilisé pour identifier un renversement de tendance.
  • RSI: reflète les niveaux de surachat/survente. En dessous de 30 est la zone de survente.
  • Stock: reflète les zones de surachat/survente. En dessous de 20 est la zone de survente.
  • ATR: reflète la volatilité récente des prix.

Lorsque l'AO montre un signal de renversement et que le RSI et le Stoch sont tous deux dans des zones de survente / surachat, le prix peut s'inverser. Prenez des positions à ce moment-là. Utilisez ATR pour définir des prix de stop loss et de profit pour éviter d'être piégé en ajustant la fourchette de perte / profit en fonction de la volatilité.

Les avantages

  • Utilisez plusieurs indicateurs pour confirmer les signaux, en évitant les transactions erronées à partir d'un seul indicateur.
  • Régler le stop-loss/profit en fonction de la volatilité pour contrôler les pertes uniques.
  • Une logique simple et claire, facile à comprendre et à mettre en œuvre.
  • Profitez des situations de surachat/survente pour capter les revers.

Risques et solutions

  • AO peut générer de faux signaux. Il doit se combiner avec RSI et Stoch pour éviter de mauvais métiers.
  • Les paramètres fixes peuvent ne pas s'adapter aux changements du marché.
  • Un stop-loss trop proche peut déclencher des arrêts fréquents, peut assouplir la plage d'arrêt ou utiliser des stratégies de sortie.
  • Les bénéfices fixes peuvent être retirés trop tôt ou trop tard.

Pour réduire les risques, optimiser les aspects suivants:

  1. Optimiser les paramètres pour les adapter à différentes périodes et instruments.
  2. Améliorer les méthodes de stop-loss comme le trailing stop, les sorties partielles.
  3. Optimisez les règles d'entrée pour éviter les faux signaux.
  4. Optimiser les façons de tirer profit comme adaptative tirer profit, segmenté par les tendances.

Directions d'optimisation

Les aspects suivants peuvent être optimisés pour la stratégie:

  1. Optimiser les paramètres en traversant différentes valeurs.

  2. Ajoutez des conditions de filtrage à l'entrée pour éviter de faux signaux.

  3. Optimiser les méthodes d'arrêt de perte comme le stop loss de suivi.

  4. Optimiser les façons de tirer profit comme adaptive tirer profit.

  5. Ajoutez des bénéfices automatiques près des niveaux clés pour éviter le repli.

  6. Optimiser la gestion des fonds en ajustant la taille des positions en fonction du risque.

  7. Tester et optimiser les paramètres et les niveaux d'arrêt/profit en fonction de différents instruments et délais.

  8. Gérer les événements extrêmes comme éviter les transactions pendant les nouvelles ou les pertes rapides.

Résumé

Cette stratégie combine les systèmes de moyenne mobile, de surachat-survente et de volatilité pour acheter bas et vendre haut, avec une forte capacité de suivi de tendance. Mais certains problèmes tels que les paramètres fixes et le stop loss inapproprié existent. Nous pouvons optimiser à partir de divers aspects tels que l'ajustement des paramètres, l'amélioration du stop loss, l'ajout de filtres pour le rendre plus robuste. Dans le trading réel, il faut tester et optimiser en fonction d'instruments et de périodes spécifiques pour maximiser son efficacité et sa rentabilité.


/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("Buy&Sell Strategy depends on AO+Stoch+RSI+ATR by SerdarYILMAZ", shorttitle="Buy&Sell Strategy")
// Created by Serdar YILMAZ
// This strategy is just for training, its purpose is just learning code in pine script.
// Don't make buy or sell decision with this strategy.
// Bu strateji sadece pine script'te kodlamanın nasıl yapildigini ogrenmek icindir.
// Bu stratejiye dayanarak, kesinlikle al-sat islemleri yapmayin.

//AO

fast=input(title="Fast Length",type=input.integer,defval=5)
slow=input(title="Slow length",type=input.integer,defval=34)

awesome=(sma(hl2,fast)-sma(hl2,slow))*1000

plot(awesome, style=plot.style_histogram, color=(awesome>awesome[1]?color.green:color.red))

//Stoch

K=input(title="K",type=input.integer,defval=14)
D=input(title="D",type=input.integer,defval=3)
smooth=input(title="smooth",type=input.integer,defval=3)

k=sma(stoch(close,high,low,K),D)
d=sma(k,smooth)

hline(80)
hline(20)

plot(k,color=color.blue)

//RSI

rsisource=input(title="rsi source",type=input.source,defval=close)
rsilength=input(title="rsi length",type=input.integer,defval=10)

rsi=rsi(rsisource,rsilength)

hline(70,color=color.orange)
hline(30,color=color.orange)

plot(rsi,color=color.orange)

//ATR

atrlen=input(title="ATR Length", type=input.integer,defval=14)

atrvalue=rma(tr,atrlen)

plot(atrvalue*1000,color=color.green)

LongCondition=k<20 and rsi<30 and awesome>awesome[1]
ShortCondition=k>80 and rsi>70 and awesome<awesome[1]
if (LongCondition)
    stoploss=low-atrvalue
    takeprofit=close+atrvalue
    strategy.entry("Long Position", strategy.long)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)
    
if (ShortCondition)
    stoploss=high+atrvalue
    takeprofit=close-atrvalue
    strategy.entry("Short Position",strategy.short)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)
    
    

    
    




Plus de