Stratégie des niveaux de double rupture transversale

Auteur:ChaoZhang est là., Date: 2023-11-15 17h27 et 36 min
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie qui utilise des niveaux clés sur différents délais pour générer des signaux de trading à double rupture.

La logique de la stratégie

La stratégie analyse l'action des prix simultanément sur deux délais différents (tf et tf2), tf étant le délai le plus long reflétant la tendance à moyen et à long terme, et tf2 étant le délai le plus court reflétant les mouvements à court terme.

  1. Lorsque le prix dépasse le niveau (niveau) sur tf délai, enregistrer up1=true
  2. Lorsque le prix tombe en dessous du niveau du délai tf, enregistrer dn1=true
  3. Lorsque le prix dépasse le niveau (level2) sur la période tf2, enregistrer up2=true
  4. Lorsque le prix tombe en dessous du niveau de la période tf2, enregistrer dn2=true

Le signal de négociation est formé lorsque up1 et up2 sont vrais ensemble, indiquant que à long terme et à court terme sont à la fois haussiers, go long; lorsque dn1 et dn2 sont à la fois vrais, indiquant à long terme et à court terme à la fois baissiers, go short.

La stratégie intègre également des filtres tels que le scalping inverse et les bougies de couleur pour éviter les signaux erronés des ruptures non tendance.

Dans l'ensemble, la stratégie tire pleinement parti de l'analyse de plusieurs échéanciers, garantissant que la tendance à moyen et à long terme répond aux attentes tout en évitant les interférences du bruit de marché à court terme, générant des signaux de négociation de haute qualité.

Analyse des avantages

  1. Identifier les tendances à moyen et long terme en dépassant les niveaux clés

    En surveillant les écarts des niveaux clés sur deux périodes, il peut capturer des signaux d'entrée clairs aux stades d'initiation de la tendance.

  2. La double confirmation réduit considérablement les faux signaux

    L'exigence de ruptures simultanées sur deux délais différents réduit considérablement les faux signaux des fluctuations aléatoires, améliorant la qualité du signal.

  3. Filtres tels que les scalps inversés et les chandeliers colorés

    L'ajout de scalping inverse et de filtres à bougies de couleur peut éliminer certains signaux de rupture de mauvaise qualité et prévenir d'énormes pertes.

  4. Paramètres simples

    La stratégie n'a besoin que de deux paramètres de calendrier pour fonctionner, elle offre un réglage flexible pour différents produits.

  5. Facile à comprendre et à optimiser

    La structure claire facilite la compréhension de la logique et les paramètres peuvent être ajustés en fonction des conditions du marché pour l'optimisation.

Analyse des risques

  1. Entrée retardée en raison d'une double fuite

    Comparé à une rupture simple, une rupture double peut entraîner un certain retard d'entrée, en manquant les premiers bénéfices de forte tendance.

  2. Sélection du niveau clé

    Il est très important de sélectionner des niveaux clés appropriés pour différents produits et cycles de marché, sinon cela pourrait générer de faux signaux.

  3. Échec de la rupture

    Même avec une évasion double, il y a toujours une chance d'échec de l'évasion et de retrait rapide, causant des pertes.

  4. Perte résultant d'un renversement de tendance

    Les entrées de tendance tardives peuvent faire l'objet d'un renversement soudain, ne pouvant pas sortir à temps grâce à un stop loss et entraîner de grosses pertes.

  5. Optimisation des paramètres difficile

    Bien que simple, trouver l'ensemble de paramètres optimal nécessite encore des tests approfondis, avec une grande difficulté d'optimisation.

Directions d'optimisation

  1. Ajouter des stratégies de stop loss

    Peut mettre un arrêt de retard ou un arrêt de temps pour arrêter la perte avant que la perte ne devienne trop grande.

  2. Optimiser les filtres

    Peut tester différents paramètres d'amplitude inverse du cuir chevelu ou d'autres méthodes de filtrage.

  3. Niveaux de clé dynamiques

    Faire en sorte que les niveaux clés changent dynamiquement avec les changements du marché plutôt que des niveaux statiques.

  4. Optimisation des paramètres multiproduits

    Utilisez l'apprentissage automatique pour optimiser les meilleurs ensembles de paramètres pour différents produits.

  5. Ajouter une confirmation de volume

    Incorporer une confirmation de volume pour éviter de faux signaux de rupture sans volume.

Résumé

Dans l'ensemble, il s'agit d'une stratégie de suivi de tendance simple et pratique. En analysant deux délais, il entre dans la conformité de direction à moyen et long terme pour filtrer efficacement le bruit. Les signaux sont clairs et faciles à interpréter, avec des paramètres intuitifs. Mais il présente également des problèmes tels qu'une entrée mal planifiée, des difficultés à sélectionner les niveaux clés. En résumé, cette stratégie fonctionne mieux comme un outil de validation de tendance à combiner avec d'autres facteurs, mais a encore beaucoup de marge d'optimisation en tant que système de trading autonome.


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

//Noro
//2018

//@version=2
strategy(title = "Noro's Levels Strategy v1.0", shorttitle = "Levels str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W',  title = "timeframe 1")
tf2 = input('D',  title = "timeframe 2")
src = input(ohlc4, "Source")
ap = input(true, defval = true, title = "antipila")
cf = input(true, defval = true, title = "color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Signals
level = request.security(syminfo.tickerid, tf, src[1])
level2 = request.security(syminfo.tickerid, tf2, src[1])
plot(level, linewidth = 3, color = silver)
plot(level2, linewidth = 3, color = gray)
up1 = close > level and ap == false ? true : low > level ? true : false
dn1 = close < level and ap == false ? true : high < level ? true : false
up2 = close > level2 and ap == false ? true : low > level2 ? true : false
dn2 = close < level2 and ap == false ? true : high < level2 ? true : false

//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]

if up1 and up2 and (close < open or cf == false)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if dn1 and dn2 and (close > open or cf == false)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

Plus de