Stratégie d' Origix Ashi basée sur une moyenne mobile lisse

Auteur:ChaoZhang est là., Date: 2024-01-25 15h26 et 25h
Les étiquettes:

img

Résumé

L'idée principale de cette stratégie est d'utiliser la moyenne mobile lissée pour calculer le Heiken Ashi lissé pour identifier les tendances des prix, et aller long quand le prix a une croix dorée avec le Heiken Ashi lissé, et aller court quand il y a une croix de mort.

La logique de la stratégie

La stratégie définit d'abord une fonction smoothedMovingAvg pour calculer la moyenne mobile, qui utilise la valeur de la moyenne mobile de la période précédente et le prix le plus récent pour calculer la moyenne mobile de la période en cours sur la base de certains poids.

Ensuite, il définit une fonction getHAClose pour calculer le prix de clôture de Heiken Ashi basé sur les prix d'ouverture, haut, bas et de clôture.

Dans la logique de stratégie principale, il obtient d'abord les prix d'origine de différentes périodes, puis utilise la fonction smoothedMovingAvg pour calculer la moyenne mobile lissée, puis calcule le prix de clôture Heiken Ashi lissé via la fonction getHAClose.

Enfin, il va long lorsque le prix dépasse le prix de clôture Heiken Ashi lissé, et ferme la position lorsque le prix dépasse celui-ci.

Analyse des avantages

Le plus grand avantage de cette stratégie est qu'en utilisant la moyenne mobile lissée pour calculer le Heiken Ashi lissé, il peut déterminer plus précisément les tendances des prix et filtrer un peu de bruit pour éviter de générer de mauvais signaux pendant les périodes agitées.

Analyse des risques

Les principaux risques auxquels cette stratégie est confrontée sont les suivants:

  1. Des paramètres incorrects de l'assouplissement peuvent entraîner la stratégie de manquer des opportunités d'inversion de prix ou de générer de mauvais signaux.

  2. Lorsque les prix fluctuent fortement, la moyenne mobile lissée peut être en retard par rapport aux changements de prix, ce qui entraîne un déclenchement de stop loss ou des opportunités de renversement manquées.

Pour faire face aux risques susmentionnés, des méthodes telles que l'ajustement des paramètres de lissage, l'introduction de mécanismes de stop loss, la réduction des positions par transaction peuvent être utilisées pour réduire les risques et améliorer la stabilité de la stratégie.

Directions d'optimisation

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

  1. Mettre en place des paramètres de lissage adaptatif pour ajuster automatiquement les paramètres lorsque la volatilité du marché augmente.

  2. Combiner avec d'autres indicateurs comme filtres pour éviter d'émettre des signaux erronés lors de la consolidation des prix.

  3. Ajouter des mécanismes de stop loss pour contrôler la perte par transaction.

  4. Optimiser les produits de négociation, les sessions de négociation, etc., afin de se concentrer sur les produits et les sessions présentant le plus d'avantages.

Grâce aux optimisations susmentionnées, les risques d'ajustement de la courbe de la stratégie peuvent être encore réduits et l'adaptabilité et la stabilité de la stratégie peuvent être améliorées.

Conclusion

La logique générale de cette stratégie est claire et facile à comprendre. En calculant le Heiken Ashi lissé pour déterminer les tendances des prix et faire des positions longues et courtes en conséquence. Son plus grand avantage est de pouvoir filtrer un peu de bruit et améliorer la précision du jugement du signal. Mais il y a aussi certaines difficultés dans l'optimisation des paramètres et des risques de manquer des renversements rapides. D'autres optimisations peuvent être effectuées en introduisant des mécanismes adaptatifs, en élargissant les combinaisons d'indicateurs, etc. pour en faire une recherche approfondie.


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

 //@version=5
strategy("Smoothed Heiken Ashi Strategy", overlay=true)

// Inputs
g_TimeframeSettings = 'Display & Timeframe Settings'
time_frame = input.timeframe(title='Timeframe for HA candle calculation', defval='', group=g_TimeframeSettings)

g_SmoothedHASettings = 'Smoothed HA Settings'
smoothedHALength = input.int(title='HA Price Input Smoothing Length', minval=1, maxval=500, step=1, defval=10, group=g_SmoothedHASettings)

// Define a function for calculating the smoothed moving average
smoothedMovingAvg(src, len) => 
    smma = 0.0
    smma := na(smma[1]) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len 
    smma

// Function to get Heiken Ashi close
getHAClose(o, h, l, c) =>
    ((o + h + l + c) / 4)

// Calculate smoothed HA candles
smoothedHAOpen = request.security(syminfo.tickerid, time_frame, open)
smoothedMA1close = smoothedMovingAvg(request.security(syminfo.tickerid, time_frame, close), smoothedHALength)
smoothedHAClose = getHAClose(smoothedHAOpen, smoothedHAOpen, smoothedHAOpen, smoothedMA1close)

// Plot Smoothed Heiken Ashi candles
plotcandle(open=smoothedHAOpen, high=smoothedHAOpen, low=smoothedHAOpen, close=smoothedHAClose, color=color.new(color.blue, 0), wickcolor=color.new(color.blue, 0))

// Strategy logic
longCondition = close > smoothedHAClose
shortCondition = close < smoothedHAClose

strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition)

plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)

Plus de