Les ressources ont été chargées... Je charge...

Stratégie de négociation combinée dynamique et supertrend

Auteur:ChaoZhang est là., Date: 2023-12-27 16h37 et 58 min
Les étiquettes:

img

1. vue d'ensemble de la stratégie

L'idée principale de cette stratégie est de combiner l'indicateur Momentum avec l'indicateur SuperTrend pour tirer parti des deux indicateurs pour des entrées et sorties plus précises.

Plus précisément, l'indicateur de Momentum est utilisé pour juger de l'accélération ou de la décélération des mouvements de prix et des changements de tendance.

Principe de stratégie détaillée

  1. Partie de l'indicateur de vitesse

    Calculer la valeur du momentum de N jours du prix et calculer le momentum de 1 jour de la valeur du momentum. Lorsque le momentum de N jours est > 0 et le momentum de 1 jour > 0, il s'agit d'un signal long; lorsque le momentum de N jours est < 0 et le momentum de 1 jour < 0, il s'agit d'un signal court.

  2. Partie de l'indicateur SuperTrend

    Calculez la valeur ATR du prix et dessinez la ligne de canal ascendante et la ligne de canal descendante basée sur ATR. Lorsque le prix traverse le canal ascendant depuis le bas, c'est un signal long, et lorsque le prix traverse le canal descendant depuis le haut, c'est un signal court.

  3. Logique d'entrée

    Prenez l'opération AND du signal long de l'indicateur de momentum et du signal long de la SuperTrend pour générer le signal d'entrée long final lorsque les deux se produisent en même temps; Prenez l'opération AND du signal court de l'indicateur de momentum et du signal court de la SuperTrend pour générer le signal d'entrée court final lorsque les deux se produisent en même temps.

3. Analyse des avantages

  1. Utiliser des indicateurs de dynamique pour déterminer l'accélération ou la décélération des mouvements de prix afin de capturer les points d'inversion de tendance.

  2. Utiliser les indicateurs SuperTrend pour déterminer les canaux de percée des prix afin de capturer les points de percée.

  3. La vérification mutuelle de deux types d'indicateurs peut réduire les faux signaux et améliorer l'exactitude des données.

  4. La combinaison de la logique de sortie des deux indicateurs permet de suivre la tendance de sortie pour éviter une sortie prématurée.

4. Analyse des risques

  1. Un paramètre incorrect de l'indicateur de dynamique N-day peut manquer les points d'inversion de tendance.

  2. Un mauvais réglage des paramètres de SuperTrend peut entraîner un dessin erroné des canaux et de faux signaux.

  3. La vérification mutuelle des deux indicateurs peut manquer certaines opportunités.

  4. La combinaison des paramètres doit être ajustée pour trouver la paire de paramètres optimale afin de maximiser le potentiel de la stratégie.

Solution correspondante:

  1. Utilisez l'analyse de marche pour trouver les paramètres optimaux.

  2. Ajouter le module d'optimisation des paramètres pour l'optimisation des paramètres en temps réel.

  3. Ajustez la logique de combinaison des deux indicateurs et examinez-les de façon exhaustive.

5. Directions d'optimisation

  1. Ajout d'un module d'optimisation adaptatif des paramètres pour un ajustement en temps réel en fonction des conditions du marché

  2. Ajouter un modèle d'apprentissage automatique pour aider à juger de l'exactitude des signaux d'indicateur

  3. Élargir les indicateurs pour former un ensemble d'indicateurs et utiliser le mécanisme de vote pour générer des signaux d'entrée

  4. Utiliser des modèles d'apprentissage en profondeur au lieu d'indicateurs traditionnels pour des jugements basés sur les données sur les délais d'entrée et de sortie

6. Résumé

Cette stratégie combine les atouts des indicateurs Momentum et SuperTrend grâce à une double vérification pour améliorer l'exactitude des entrées et utilise des indicateurs pour juger du moment des sorties. Par rapport à l'utilisation unique d'indicateurs, elle peut réduire les faux signaux et atteindre des taux de gain plus élevés.


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Momentum + SuperTrend Strategy", overlay=true)

// Momentum Strategy
length = input(12)
price = close
momentum(seria, length) =>
    mom = seria - seria[length]
    mom
mom0 = momentum(price, length)
mom1 = momentum(mom0, 1)
momLongCondition = mom0 > 0 and mom1 > 0
momShortCondition = mom0 < 0 and mom1 < 0

// SuperTrend Strategy
Periods = input(10)
Multiplier = input(3.0)
changeATR = input(true)
src = input(hl2)
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
buySignal = trend == 1 and trend[1] == -1
sellSignal = trend == -1 and trend[1] == 1

// Combined Entry Conditions
longCondition = momLongCondition and buySignal
shortCondition = momShortCondition and sellSignal

// Strategy Entries
if (longCondition)
    strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
    strategy.cancel("MomLE")

if (shortCondition)
    strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
    strategy.cancel("MomSE")

// Plot SuperTrend on the chart
upPlot = plot(trend == 1 ? up : na, title="SuperTrend Up", color=color.green, linewidth=2)
dnPlot = plot(trend == -1 ? dn : na, title="SuperTrend Down", color=color.red, linewidth=2)

// Highlight the SuperTrend region
fill(upPlot, dnPlot, color = trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90), title="SuperTrend Highlight")

// Plot SuperTrend Buy/Sell signals on the chart
plotshape(series=buySignal, title="SuperTrend Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sellSignal, title="SuperTrend Sell Signal", color=color.red, style=shape.triangledown, size=size.small)
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © naveen1119

Plus de