
Стратегия многовременного прорыва создает более надежный торговый сигнал, используя в комбинации сигналы ценового прорыва на двух разных временных рамках. Эта стратегия одновременно рассчитывает сигналы ценового прорыва на более коротких временных рамках, таких как 1 час, 2 часа, 3 часа, и на более длинных временных рамках, таких как 4 часа и солнечная линия.
Центральная логика этой стратегии заключается в том, чтобы рассчитывать ценовые сигналы о прорыве на двух разных временных рамках, а затем проводить соответствующие фильтры. В частности, стратегия рассчитывает, не превышает ли цена установленный уровень на более коротком временном периоде (например, 1-часовой линии), а также на более длинном временном периоде (например, 4-часовой линии).
Сигналы о покупке создаются при условии, что закрытие или наименьшая цена на коротких и длинных временных рамках превышают соответствующие ценовые уровни. Сигналы о продаже создаются при условии, что закрытие или наибольшая цена на коротких и длинных временных рамках превышают соответствующие ценовые уровни.
Наибольшее преимущество этой стратегии заключается в высокой надежности ее торговых сигналов. Некоторые из шумов могут быть эффективно устранены, чтобы избежать ошибочных сделок, требуя, чтобы цена превзошла соответствующий уровень на обоих временных рамках. Кроме того, прорывные сигналы на разных временных рамках могут быть проверены друг другом, что делает торговые возможности более эффективными. Кроме того, стратегия предоставляет некоторую гибкость, позволяя выбирать две комбинации используемых временных рамок, а также источники данных, которые пользователь может корректировать в соответствии со своими потребностями.
Основным риском этой стратегии является то, что в период Zeit, когда рынок спокоен, легко возникают ситуации, когда цены на обоих временных рамках не будут иметь прорыва. В этом случае стратегия не будет генерировать никаких торговых сигналов и может пропустить торговые возможности. Кроме того, между двумя временными рамками также существует определенная задержка, которая может привести к невысокой эффективности сигнала. Кроме того, стратегия не имеет установленной логики остановки убытков, существует большой риск.
Эта стратегия может быть оптимизирована в следующих аспектах: 1) увеличение логики остановки убытков для контроля риска; 2) оптимизация комбинации временных рамок для повышения эффективности торговли; 3) увеличение количества временных рамок для комбинации, что делает торговые сигналы более строгими; 4) фильтрация в сочетании с другими показателями, улучшающая качество сигналов; 5) разработка механизма Exiting для лучшего контроля прибыли и т. д.
Стратегия многовременного прорыва является более надежной стратегией для отслеживания тенденций, но также имеет определенные недостатки, которые могут быть постоянно оптимизированы, чтобы сделать ее стабильной и надежной стратегией количественной торговли.
/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's Levels Strategy v1.1", shorttitle = "Levels str 1.1", 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, %")
tf1 = input('W', title = "timeframe 1")
tf2 = input('D', title = "timeframe 2")
src = input(ohlc4, "Source")
ap = input(true, defval = true, title = "use saw filter")
cf = input(true, defval = true, title = "гыу color filter")
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")
//Levels
level1 = request.security(syminfo.tickerid, tf1, src)
level2 = request.security(syminfo.tickerid, tf2, src)
col = showlines ? silver : na
p1 = plot(level1, linewidth = 3, color = col, title = "Level 1")
p2 = plot(level2, linewidth = 3, color = col, title = "Level 2")
//Signals
up1 = close > level1 and ap == false ? true : low > level1 ? true : false
dn1 = close < level1 and ap == false ? true : high < level1 ? 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
size = strategy.position_size
lot = 0.0
lot := size != 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()