В процессе загрузки ресурсов... загрузка...

Динамическая ценовая зона Стратегия трейдинга на основе количественной системы поддержки и сопротивления

Автор:Чао Чжан, Дата: 2024-12-11 15:03:50
Тэги:

 Dynamic Price Zone Breakout Trading Strategy Based on Support and Resistance Quantitative System

Обзор

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

Принципы стратегии

Стратегия работает на основе следующих основных механизмов: во-первых, она устанавливает соответствующие размеры шагов для различных торговых инструментов, обычно около 1,5% от цены инструмента. Система устанавливает ценовые зоны выше и ниже текущей цены, запуская длинные сигналы, когда цены превышают верхний предел, и короткие сигналы, когда цены превышают нижний предел. После каждого прорыва ценовые зоны корректируются, чтобы адаптироваться к новой рыночной среде. Стратегия поддерживает добавление позиций в одном направлении, позволяя до 200 позиций, позволяя максимизировать прибыль во время сильных тенденций. Обработка ордеров включает в себя несколько гарантий, включая обработку при закрытии бар, перерасчет после выполнения торгов и вычисление при каждом ценовом тике.

Преимущества стратегии

  1. Сильная динамическая адаптация: ценовые зоны автоматически адаптируются к изменениям рынка, что позволяет стратегии адаптироваться к различным рыночным условиям.
  2. Отличная способность отслеживать тенденции: позволяя дополнительные позиции в том же направлении, стратегия может полностью использовать сильные тенденции.
  3. Всеобъемлющий контроль рисков: устанавливаются четкие условия остановки потерь, автоматически закрывая позиции, когда цены опускаются ниже зоны.
  4. Широкое применение: стратегия может быть применена на различных рынках с помощью соответствующих параметров размера шага для различных торговых инструментов.
  5. Высокая вычислительная эффективность: использует переменную стойкость и эффективные методы расчета, чтобы обеспечить плавную стратегию работы.

Стратегические риски

  1. Рыночный риск: частое ложное выбытие на рынках с ограниченным диапазоном может привести к последовательным остановкам.
  2. Управление рисками позиций: добавление позиций в одном направлении может привести к чрезмерной концентрации, что требует надлежащего контроля направленной рисковой экспозиции.
  3. Риск сдвига: значительный сдвиг в период волатильности может повлиять на результативность стратегии.
  4. Чувствительность параметров: эффективность стратегии напрямую зависит от соответствующих параметров размера шага, что требует тщательного тестирования.

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

  1. Включить индикаторы волатильности: динамически корректировать размеры шагов на основе волатильности рынка для улучшения адаптивности стратегии.
  2. Добавить фильтрующие механизмы: включить индикаторы подтверждения тренда для сокращения потерь от ложных прорывов.
  3. Улучшить управление позициями: разработать более подробные механизмы контроля позиций для сбалансирования доходности и рисков.
  4. Оптимизируйте исполнение заказов: Добавьте умное маршрутизация заказов для уменьшения влияния скольжения.
  5. Включите временное измерение: учитывайте характеристики времени рынка для корректировки параметров стратегии в разные периоды.

Резюме

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=5
// 每个图表上画对应间隔的横线,自己手画吧
// 同方向追加20单,订单成交后重新计算,每个tick重新计算,变量保存1000个周期,k线结束后再处理一次订单,按照代码顺序来绘制plot
strategy("Price Level Breakout Strategy", overlay=true, pyramiding=200, calc_on_order_fills=true, calc_on_every_tick=true, max_bars_back=1000, process_orders_on_close=true, explicit_plot_zorder=true)
// var创建持久性变量,:=是更新变量,不重新声明
// 这个是全局变量
// a = array.new<string>(200)
// array.push(a, "a")
// plot(close, color = array.get(a, close > open ? 1 : 0))
string ticker = syminfo.ticker
var float step_size = 1000
// label.new(x=bar_index, y=close, text="当前品种代码: " + ticker)
// 根据定值画1.5的平行线
if ticker == "000300"
    step_size := 4000 * 0.015
if ticker == "XAUUSD"
    step_size := 3000 * 0.016
if ticker == "BTCUSD"
    step_size := 60000 * 0.015
if ticker == "SILVER"
    step_size := 50 * 0.015
if ticker == "UKOIL"
    step_size := 150 * 0.015
if ticker == "GBPUSD"
    step_size := 1.6 * 0.015
if ticker == "EURUSD"
    step_size := 1.1 * 0.015
    // 从0开始画200条间隔线
if ticker == "USDJPY"
    step_size := 100 * 0.015
var float start_value = close
var float up_number = close + step_size
var float low_number = close - step_size
// hline(3.14, title='Pi', color=color.blue, linestyle=hline.style_dotted, linewidth=2)
// plot(1)
// 当价格突破上限,产生买入信号
if close > up_number
    // 生成买入信号
    strategy.entry(id = "Buy", direction = strategy.long)
    // 更新新的价格区间
    start_value := start_value + step_size
    up_number := start_value + step_size
    low_number := start_value - step_size
    strategy.close(id = "Sell")
// 当价格跌破下限,产生卖出信号
if close < low_number
    // 生成卖出信号
    strategy.entry("Sell", strategy.short)
    // 更新新的价格区间
    start_value := start_value - step_size
    up_number := start_value + step_size
    low_number := start_value - step_size
    strategy.close(id = "Buy")


Больше