Stratégie Qiyuan Axu basée sur la moyenne mobile lissée


Date de création: 2024-01-25 15:26:25 Dernière modification: 2024-01-25 15:26:25
Copier: 1 Nombre de clics: 623
1
Suivre
1617
Abonnés

Stratégie Qiyuan Axu basée sur la moyenne mobile lissée

Aperçu

L’idée principale de cette stratégie est d’utiliser des moyennes mobiles lisses pour calculer des moyennes éclairées lisses afin de détecter la tendance des prix et de faire plus lorsque le prix se fourche avec la moyenne éclairée lisses et moins lorsque la fourche est morte.

Principe de stratégie

La stratégie définit d’abord une fonction pour calculer la moyenne mobile lisse smoothedMovingAvg, qui prend la moyenne mobile de la période précédente et la plus récente pour calculer la moyenne mobile lisse de la période en cours avec un certain poids.

On définit ensuite une fonction getHAClose qui permet de calculer le prix de clôture en fonction du prix d’ouverture, du prix le plus élevé, du prix le plus bas et du prix de clôture.

Dans la logique de la stratégie principale, on obtient d’abord les prix initiaux des différents cycles, puis on calcule la moyenne mobile en douceur à l’aide de la fonction smoothedMovingAvg, puis on calcule le prix de clôture en douceur à l’aide de la fonction getHAClose.

Enfin, lorsque le prix est au-dessus de la marge de glissement pour indiquer le prix de clôture, faites plus, et le prix est à l’arrêt lorsque le prix est au-dessous de la marge de glissement pour indiquer le prix de clôture, faites moins, et le prix est à l’arrêt lorsque le prix est à l’arrêt.

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans l’utilisation de moyennes mobiles lisses pour calculer la moyenne d’éclairage lisse, permettant de déterminer plus précisément la tendance des prix, de filtrer une partie du bruit et d’éviter de produire de faux signaux dans les oscillations. En outre, la moyenne d’éclairage a elle-même l’avantage de mettre en évidence la tendance, et son utilisation en combinaison avec les prix peut encore améliorer l’exactitude de la décision.

Analyse des risques

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

  1. Une mauvaise configuration des paramètres de l’alignement peut entraîner la perte d’opportunités de reprise des cours ou la génération de signaux erronés. Il est nécessaire de trouver les paramètres optimaux en effectuant des tests et des optimisations répétés.
  2. Lors d’une forte oscillation des prix, le smoothing average peut retarder le suivi des variations de prix, ce qui entraîne des pertes ou des opportunités de reprise manquées. Il est alors nécessaire de réduire le risque d’évitement des positions.

En ce qui concerne les risques susmentionnés, nous pouvons réduire les risques et améliorer la stabilité de la stratégie en ajustant les paramètres de lissage, en introduisant des mécanismes de stop-loss et en réduisant les positions de transaction individuelles.

Direction d’optimisation

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

  1. Ajout de paramètres d’alignement automatique pour ajuster automatiquement les paramètres lorsque la volatilité du marché augmente.
  2. Combinez avec d’autres indicateurs comme filtres pour éviter de donner de faux signaux lors des fluctuations des prix. Par exemple, MACD, KD, etc.
  3. Ajout d’un mécanisme d’arrêt des pertes pour contrôler les pertes individuelles. Vous pouvez définir un arrêt de pourcentage ou un arrêt d’oscillation.
  4. Optimiser les types de transactions, les périodes de temps, etc., en se concentrant sur les types et les périodes de transactions les plus avantageux.

En optimisant les points ci-dessus, il est possible de réduire encore plus le risque d’adaptation à la courbe de la stratégie et d’améliorer l’adaptabilité et la stabilité de la stratégie.

Résumer

L’idée générale de la stratégie est claire et facile à comprendre, elle permet de déterminer la tendance des prix en calculant une ligne de lumière uniforme lisse, et de procéder en conséquence. Le plus grand avantage est de pouvoir filtrer une partie du bruit et d’améliorer l’exactitude du jugement des signaux. Mais il existe également une certaine difficulté d’optimisation des paramètres et le risque de manquer un retournement rapide.

Code source de la stratégie
/*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)