Supertrend BarUpDn Stratégie de fusion

Auteur:ChaoZhang est là., Date: 2024-01-31 14:43:06 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie Supertrend BarUpDn Fusion est une stratégie qui fusionne l'indicateur Supertrend et l'indicateur BarUpDn.

Principe de stratégie

La stratégie utilise principalement deux indicateurs:

  1. Supertrend Indicator: Cet indicateur détermine la direction de la tendance basée sur la plage moyenne vraie et un facteur.

  2. BarUpDn Indicateur: Cet indicateur juge si la barre actuelle est une barre haussière (close plus élevée que l'ouverture) ou une barre baissière (ouverte plus élevée que la fermeture).

La logique principale de la stratégie est la suivante:

  1. Allez long quand Supertrend est long et BarUpDn est haussier.

  2. Allez court quand Supertrend est court et BarUpDn est baissier.

  3. Fermez les positions en temps opportun lorsque la Supertrend change de direction.

Grâce à cette fusion, la stratégie peut utiliser à la fois la capacité de jugement des tendances de Supertrend et la capacité de jugement à court terme de BarUpDn pour obtenir un meilleur timing d'entrée.

Analyse des avantages

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

  1. Amélioration de la précision grâce à la fusion de plusieurs indicateurs.

  2. Un arrêt rapide des pertes lorsque l'indicateur principal change de direction peut éviter une augmentation des pertes.

  3. La stratégie utilise uniquement une combinaison de deux indicateurs communs, ce qui la rend très simple et facile à utiliser.

  4. Supertrend lui-même possède des paramètres réglables pour s'adapter à différents produits et délais.

Analyse des risques

Cette stratégie comporte également certains risques:

  1. Une mauvaise évaluation de la fusion peut entraîner une mauvaise évaluation.

  2. Un réglage incorrect des paramètres affecte les performances. La longueur et le facteur ATR de la Supertrend doivent être ajustés pour différents produits.

  3. Des pertes mineures peuvent survenir lors d'inversions de prix à court terme avant que Supertrend ne tourne direction.

Directions d'optimisation

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

  1. Ajoutez des stratégies de stop loss telles que le stop loss mobile, le stop loss temporel, le stop loss de rupture, etc. pour contrôler davantage les risques.

  2. Optimiser les paramètres de Supertrend pour trouver les meilleures combinaisons de paramètres pour différents produits et délais, par exemple via l'apprentissage automatique.

  3. Ajouter plus d'indicateurs de fusion pour créer un mécanisme de vote et améliorer la stabilité des jugements.

  4. Incorporer plus de facteurs de marché tels que la variation du volume, la variation du spread, etc. pour juger de la fiabilité du signal et filtrer les signaux trompeurs.

Résumé

La stratégie de fusion Supertrend BarUpDn fusionne le jugement des tendances et le jugement à court terme en combinant des indicateurs simples, améliorant la précision du temps d'entrée tout en conservant la simplicité et la facilité d'utilisation.


/*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("Supertrend and BarUpDn Indicator Fusion", overlay=true)

// Supertrend indicator
atrLength = input(10, title="ATR Length")
factor = input(3.0, title="Factor")
[supertrend, direction] = ta.supertrend(factor, atrLength)
lastBar = 0

// BarUpDn indicator
barUpDn = close > open and open > close[1] ? 1 : close < open and open < close[1] ? -1 : 0

if (barUpDn == 1)
    lastBar := 1
else if barUpDn == -1
    lastBar := -1


// Determine long or short position
longCondition = (direction > 0 and barUpDn > 0) or (direction > 0 and lastBar == 1)
shortCondition = (direction < 0 and barUpDn < 0) or (direction < 0 and lastBar == -1)

// Enter long or short position
if (longCondition)
    strategy.entry("Long", strategy.long)
    lastBar := 1
else if (shortCondition)
    strategy.entry("Short", strategy.short)
    lastBar := -1

if (direction < 0 and barUpDn > 0)
    strategy.entry("Long", strategy.long)

// Exit long or short position
if (direction > 0 and barUpDn < 0)
    strategy.entry("Short", strategy.short)

// Exit long or short position
// if (direction < 0 and barUpDn > 0 or direction > 0 and barUpDn < 0)
//   strategy.close_all()


Plus de