Stratégie de négociation de l'or selon le MACD SMO VWAP

Auteur:ChaoZhang est là., Date: 2023-10-20 16h23 et 33 min
Les étiquettes:

img

Résumé

La stratégie de trading VWAP MACD SMO Gold est une stratégie complète conçue pour le marché de l'or à l'aide d'un graphique de 12 heures.

La logique de la stratégie

La stratégie utilise le VWAP mensuel comme indicateur principal de tendance. VWAP représente le prix moyen de la transaction, et mensuel signifie que la période de calcul du VWAP est le mois précédent. Si la clôture actuelle est supérieure au VWAP mensuel, cela indique la tendance haussière actuelle; si la clôture est inférieure au VWAP mensuel, cela signifie que la tendance est à la baisse.

L'oscillateur SMO est utilisé pour déterminer la situation actuelle de surachat et de survente. Il se compose d'une composante de cycle long et d'une composante de cycle court. Lorsque l'oscillateur est supérieur à 0, il indique des conditions de surachat et lorsqu'il est inférieur à 0, il représente une survente.

L'histogramme MACD peut déterminer la direction de l'élan. Lorsque la colonne se brise, elle représente l'élan se renforce pour aller long; lorsque la colonne se brise, cela signifie que l'élan s'affaiblit pour considérer aller court.

Selon ces trois indicateurs, on peut établir les règles spécifiques de la stratégie de négociation:

Entrée longue: lorsque la clôture est supérieure à VWAP mensuel, l'histogramme MACD se décompose et l'oscillateur SMO est supérieur à 0. Entrée courte: lorsque la clôture est inférieure à VWAP mensuel, l'histogramme MACD se décompose et l'oscillateur SMO est inférieur à 0.

Les bénéfices et les arrêts de perte sont établis sur la base des pourcentages d'entrée.

Analyse des avantages

La stratégie combine plusieurs délais et indicateurs pour déterminer efficacement la direction et la force de la tendance, avec les avantages suivants:

  1. Le VWAP mensuel peut déterminer la direction de la tendance principale pour éviter les transactions contre-tendance.
  2. L'histogramme MACD peut capturer les changements de dynamique en temps opportun.
  3. L'oscillateur SMO évalue les conditions de surachat et de survente, ce qui est utile pour entrer dans des points de renversement potentiels.
  4. La combinaison de plusieurs indicateurs peut se vérifier mutuellement et améliorer la fiabilité du signal.
  5. Des pourcentages de prise de bénéfices et de stop-loss personnalisables pour contrôler les risques.

Analyse des risques

Bien que la stratégie soit conçue de manière raisonnable, il y a encore quelques risques à noter:

  1. Le VWAP est sensible aux fléchettes, ce qui peut générer de faux signaux.
  2. Un mauvais réglage des paramètres du MACD augmente la probabilité de fausses ruptures.
  3. Des paramètres SMO inappropriés peuvent également conduire à une mauvaise appréciation des zones surachetées et survendues.
  4. Les paramètres de prise de profit et de stop loss trop larges ne peuvent pas contrôler efficacement une seule perte.

Pour contrôler les risques ci-dessus, les paramètres VWAP et MACD devraient être optimisés de manière raisonnable sans gammes trop larges.

Directions d'optimisation

La stratégie peut également être optimisée dans les aspects suivants:

  1. Ajouter une confirmation de volume, telle que la rupture de volume de l'AM.
  2. Incorporer des indicateurs de volatilité tels que ATR pour ajuster la taille des positions en fonction de la volatilité du marché.
  3. Ajoutez un mécanisme d'allumage à des niveaux élevés pour éviter de manquer des bénéfices.
  4. Testez différentes stratégies de prise de profit et de stop-loss, telles que le stop-loss de suivi, le stop-loss adaptatif, etc.
  5. Ajouter le module de vérification du modèle pour filtrer les signaux anormaux.

Conclusion

La stratégie Gold VWAP MACD SMO combine plusieurs indicateurs pour déterminer la tendance et les conditions de surachat / survente, ce qui peut effectivement capturer les opportunités à moyen et long terme dans l'or. Bien qu'il existe certains risques, ils peuvent être contrôlés grâce à l'optimisation des paramètres et à la gestion des risques.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
// strategy("VWAP Gold strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 10000, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.005)


source = input(low)


//vwap monthly
timeframeM = time("M")
beginningM = na(timeframeM[1]) or timeframeM > timeframeM[1]

sumsourceM = source * volume
sumVolM = volume
sumsourceM := beginningM ? sumsourceM : sumsourceM + sumsourceM[1]
sumVolM := beginningM ? sumVolM : sumVolM + sumVolM[1]
vwapMonthly= sumsourceM / sumVolM

//macd
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)


fast_ma = ema(src, fast_length)
slow_ma = ema(src, slow_length)
macd = fast_ma - slow_ma
signal =  ema(macd, signal_length)
hist = macd - signal


//SMO
longlen = input(22, minval=1, title="Long Length SMO")
shortlen = input(6, minval=1, title="Short Length SMO")
siglen = input(5, minval=1, title="Signal Line Length SMO")
erg = tsi(close, shortlen, longlen)
sig = ema(erg, siglen)
osc = erg - sig


shortCondition =  close < vwapMonthly and hist < hist[1] and osc < 0
longCondition =  close > vwapMonthly and hist> hist[1] and osc > 0

tplong=input(0.085, step=0.005, title="Take profit % for long")
sllong=input(0.03, step=0.005, title="Stop loss % for long")
tpshort=input(0.05, step=0.005, title="Take profit % for short")
slshort=input(0.025, step=0.005, title="Stop loss % for short")

strategy.entry("long",1,when=longCondition)
strategy.entry("short",0,when=shortCondition)

strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT',  alert_message = 'closeshort')
strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT',  alert_message = 'closeshort')




Plus de