Стратегия двойного прорыва цены по оси времени


Дата создания: 2023-11-15 17:27:36 Последнее изменение: 2023-11-15 17:27:36
Копировать: 0 Количество просмотров: 667
1
Подписаться
1617
Подписчики

Стратегия двойного прорыва цены по оси времени

Обзор

Это стратегия, которая использует ключевые цены на разных временных линиях для двойного прорыва, чтобы сформировать торговый сигнал. Она может быть введена в позиции лизинга или лизинга, чтобы захватить тенденцию средней и длинной линии, когда цена в тренде прорывает ключевые точки поддержки или сопротивления.

Стратегический принцип

Стратегия одновременно анализирует ценовые тенденции на двух различных временных волнах (tf и tf2), тf более длинный, отражающий средне-длинные тенденции; tf2 более короткий, отражающий краткосрочные движения. Стратегия отслеживает следующие торговые сигналы:

  1. Когда цена прорывает уровень (level) вверх на временной оси tf, записывается up1=true
  2. Когда цена пробивает уровень вниз на временной оси tf, записывается dn1 = true
  3. Когда цена пробивает уровень 2 вверх на временной оси tf2, записывается up2=true
  4. Когда цена пробивает уровень вниз на временной оси tf2, записывается dn2=true

Условия формирования торгового сигнала следующие: up1 и up2 одновременно истинны, что означает, что средне-длинная линия и краткосрочная линия являются положительными, что означает, что они делают больше; dn1 и dn2 одновременно истинны, что означает, что средне-длинная линия и краткосрочная линия являются отрицательными, что означает, что они делают больше.

В стратегию также добавлены некоторые фильтрующие условия, такие как фильтрация реверсивных и цветовых K-линий, чтобы предотвратить появление ложных сигналов в результате прорыва неистинных тенденций.

В целом, эта стратегия использует преимущества анализа в течение нескольких временных периодов, чтобы обеспечить высокое качество торговых сигналов, избегая помех от шума краткосрочных рынков, и при этом обеспечивает соответствие средне- и долгосрочных тенденций ожиданиям.

Анализ преимуществ стратегии

  1. Прорыв ключевых уровней поддержки или сопротивления, захват средне-длиннолинейных тенденций

Стратегия отслеживает ключевые ценовые прорывы на двух временных волнах, чтобы зафиксировать четкие входные моменты в начале тренда.

  1. Двойное подтверждение снижает ошибочный сигнал

Одновременное прорыв на двух разных временных волнах позволяет значительно снизить ошибочный сигнал, вызванный случайными колебаниями, и повысить качество сигнала.

  1. Фильтрация реверсивных и цветовых К-проводов

Добавление реверсивного соединения и цветовой K-линии позволяет отфильтровать некачественные прорывные сигналы и предотвратить серьезные потери.

  1. Простые параметры

Эта стратегия работает только с двумя параметрами временной оси, а выбор параметров является гибким и подходит для разных сортов.

  1. Легко понять и оптимизировать

Структура стратегии ясна, принципы понятны; параметры могут быть скорректированы в зависимости от специфики ситуации для оптимизации стратегии.

Анализ стратегических рисков

  1. Двойной прорыв привел к задержке входа

По сравнению с однократным прорывом, двойной прорыв может привести к некоторой задержке входа и упущению прибыли от ранней сильной торговли.

  1. Выбор ключевой поддерживающей устойчивости

Для различных сортов и рыночных циклов очень важно выбрать подходящий ключевой уровень, иначе можно получить ошибочный сигнал.

  1. Прорыв провалился

Даже в случае двойного прорыва, возможны случаи, когда прорыв проваливается, а затем быстро отклоняется, что приводит к убыткам.

  1. Потеря по сравнению с предыдущим периодом

В конце тренда может произойти резкий поворот, который может привести к большим убыткам из-за неспособности вовремя остановить выход.

  1. Трудности оптимизации параметров

Несмотря на простоту, для поиска оптимального параметрового сочетания требуется много повторных тестов, и оптимизация является более сложной задачей.

Направление оптимизации стратегии

  1. Увеличение стратегии по удержанию

Можно установить движущийся стоп или временный стоп, чтобы остановить потери до их увеличения.

  1. Оптимизация фильтрации

Можно проверить различные параметры размера обратной насадки или попробовать другие способы фильтрации.

  1. Динамика ключевых цен

Ключевые цены могут изменяться в зависимости от изменения рынка, а не статически.

  1. Оптимизация параметров множества сортов

Оптимизация оптимальных комбинаций параметров различных сортов с помощью машинного обучения.

  1. Подтверждение повышения цены

В этом случае можно добавить подтверждение количества транзакций, чтобы избежать многочисленных ложных сигналов прорыва.

Подвести итог

В целом, эта стратегия является простой и практичной стратегией отслеживания тенденций. Она использует анализ двух временных осей одновременно, вступает в рынок, когда средняя и длинная линии соответствуют ожиданиям, и может эффективно отфильтровывать часть шума. Сигналы стратегии четки, легко читаются, параметры настроек также относительно просты.

Исходный код стратегии
/*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()