
Это стратегия, которая использует ключевые цены на разных временных линиях для двойного прорыва, чтобы сформировать торговый сигнал. Она может быть введена в позиции лизинга или лизинга, чтобы захватить тенденцию средней и длинной линии, когда цена в тренде прорывает ключевые точки поддержки или сопротивления.
Стратегия одновременно анализирует ценовые тенденции на двух различных временных волнах (tf и tf2), тf более длинный, отражающий средне-длинные тенденции; tf2 более короткий, отражающий краткосрочные движения. Стратегия отслеживает следующие торговые сигналы:
Условия формирования торгового сигнала следующие: up1 и up2 одновременно истинны, что означает, что средне-длинная линия и краткосрочная линия являются положительными, что означает, что они делают больше; dn1 и dn2 одновременно истинны, что означает, что средне-длинная линия и краткосрочная линия являются отрицательными, что означает, что они делают больше.
В стратегию также добавлены некоторые фильтрующие условия, такие как фильтрация реверсивных и цветовых K-линий, чтобы предотвратить появление ложных сигналов в результате прорыва неистинных тенденций.
В целом, эта стратегия использует преимущества анализа в течение нескольких временных периодов, чтобы обеспечить высокое качество торговых сигналов, избегая помех от шума краткосрочных рынков, и при этом обеспечивает соответствие средне- и долгосрочных тенденций ожиданиям.
Стратегия отслеживает ключевые ценовые прорывы на двух временных волнах, чтобы зафиксировать четкие входные моменты в начале тренда.
Одновременное прорыв на двух разных временных волнах позволяет значительно снизить ошибочный сигнал, вызванный случайными колебаниями, и повысить качество сигнала.
Добавление реверсивного соединения и цветовой K-линии позволяет отфильтровать некачественные прорывные сигналы и предотвратить серьезные потери.
Эта стратегия работает только с двумя параметрами временной оси, а выбор параметров является гибким и подходит для разных сортов.
Структура стратегии ясна, принципы понятны; параметры могут быть скорректированы в зависимости от специфики ситуации для оптимизации стратегии.
По сравнению с однократным прорывом, двойной прорыв может привести к некоторой задержке входа и упущению прибыли от ранней сильной торговли.
Для различных сортов и рыночных циклов очень важно выбрать подходящий ключевой уровень, иначе можно получить ошибочный сигнал.
Даже в случае двойного прорыва, возможны случаи, когда прорыв проваливается, а затем быстро отклоняется, что приводит к убыткам.
В конце тренда может произойти резкий поворот, который может привести к большим убыткам из-за неспособности вовремя остановить выход.
Несмотря на простоту, для поиска оптимального параметрового сочетания требуется много повторных тестов, и оптимизация является более сложной задачей.
Можно установить движущийся стоп или временный стоп, чтобы остановить потери до их увеличения.
Можно проверить различные параметры размера обратной насадки или попробовать другие способы фильтрации.
Ключевые цены могут изменяться в зависимости от изменения рынка, а не статически.
Оптимизация оптимальных комбинаций параметров различных сортов с помощью машинного обучения.
В этом случае можно добавить подтверждение количества транзакций, чтобы избежать многочисленных ложных сигналов прорыва.
В целом, эта стратегия является простой и практичной стратегией отслеживания тенденций. Она использует анализ двух временных осей одновременно, вступает в рынок, когда средняя и длинная линии соответствуют ожиданиям, и может эффективно отфильтровывать часть шума. Сигналы стратегии четки, легко читаются, параметры настроек также относительно просты.
/*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()