La stratégie de rupture de Noro v1.0

Auteur:ChaoZhang est là., Date: 2021-09-21 15:09:43 Je vous en prie.
Les étiquettes:

Résumé

Cette stratégie est basée sur les écarts de prix au-delà des extrêmes récents.

Comment fonctionne- t- il?

  1. Calculer le plus haut maximum et le plus bas dnex sur N périodes.

  2. Allez long quand le prix dépasse le sommet.

  3. Faites du short quand le prix tombe en dessous de Dnex.

  4. Configurable uniquement pour une longue, une courte ou les deux directions.

  5. Taux d'utilisation du capital configurable.

  6. Plage de temps de négociation configurable.

Les avantages

  • Capture les signaux de rupture, bon pour le trading de tendance
  • Des règles simples et intuitives, faciles à mettre en œuvre
  • La configuration directionnelle s'adapte aux différents marchés
  • Peut limiter la période de négociation
  • Contrôle de l'utilisation du capital

Les risques

  • Impossible de filtrer efficacement les fausses éruptions
  • Les échanges bilatéraux augmentent les coûts
  • Une utilisation élevée du capital augmente le risque

Directions d'optimisation

  • Ajouter une validation pour éviter les fausses fuites
  • Optimiser la valeur de N pour une performance optimale
  • Filtres supplémentaires pour les signaux de l'écran
  • Tester les différents taux d'utilisation du capital
  • Nombre limité de transactions par jour

Conclusion

La stratégie suit les tendances en utilisant des signaux de rupture de prix. L'amélioration de la validité de la rupture et des paramètres de réglage peut améliorer les performances. Mais les fausses ruptures et les contrôles des risques doivent être traités.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Brakeout Strategy v1.0", shorttitle = "Brakeout 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, %")
len = input(4, defval = 4, minval = 1, maxval = 1000, title = "Length")
showlines = input(true, defval = true, title = "Show Lines?")
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")

//Extremums
upex = highest(high, len)
dnex = lowest(low, len)
col = showlines ? blue : na
plot(upex, color = col, linewidth = 2)
plot(dnex, color = col, linewidth = 2)

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

if (not na(close[len]))
    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)), stop = upex + syminfo.mintick)
    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)), stop = dnex - syminfo.mintick)

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

Plus de