Cette stratégie est basée sur les écarts de prix au-delà des extrêmes récents.
Calculer le plus haut maximum et le plus bas dnex sur N périodes.
Allez long quand le prix dépasse le sommet.
Faites du short quand le prix tombe en dessous de Dnex.
Configurable uniquement pour une longue, une courte ou les deux directions.
Taux d'utilisation du capital configurable.
Plage de temps de négociation configurable.
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()