Stratégie de percée de Noro V1.0


Date de création: 2023-09-21 15:09:43 Dernière modification: 2023-09-21 15:09:43
Copier: 0 Nombre de clics: 649
1
Suivre
1617
Abonnés

Aperçu

La stratégie est basée sur la rupture des prix pour effectuer des opérations de négociation. Elle calcule les prix les plus élevés et les plus bas d’une période donnée et génère un signal de négociation lorsque les prix franchissent ces limites.

Principe de stratégie

  1. Calculer le prix le plus élevé upex et le prix le plus bas dnex des N périodes les plus récentes.

  2. Quand le prix est supérieur à l’upex, faites plus.

  3. Lorsque le prix est en dessous de dnex, laissez un espace libre.

  4. Il peut être configuré pour une transaction en plus, en moins ou dans les deux sens.

  5. Utilisation des fonds disponibles

  6. Une période de transaction configurable.

Avantages stratégiques

  • Capturez les signaux de rupture pour le trading de tendance
  • Les règles sont simples, intuitives et faciles à mettre en œuvre
  • Il peut être configuré pour effectuer des prises de position dans plusieurs directions et s’adapter à différents marchés.
  • Limitation de la période de transaction
  • Taux de dépense contrôlable

Risque stratégique

  • Les dommages causés par l’incapacité de filtrer efficacement les fausses intrusions
  • Les transactions bidirectionnelles augmentent les frais de traitement et les coûts de points de glissement
  • Risques liés à l’utilisation de capitaux importants

Direction d’optimisation

  • Augmenter la vérification de la validité des percées et éviter les fausses percées
  • Taille de la valeur N du paramètre d’optimisation
  • Combinaison avec d’autres indicateurs pour filtrer le signal
  • Test de différentes utilisations des fonds
  • Limiter le nombre de transactions par jour

Résumer

Cette stratégie permet de suivre la tendance en capturant les signaux de rupture des prix. L’optimisation des mécanismes de vérification des ruptures et la définition des paramètres peuvent améliorer l’efficacité. Cependant, il faut veiller à la prévention des fausses ruptures et au contrôle des risques.

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