Эта стратегия является количественной торговой системой, основанной на прорывах ценового диапазона. Она работает путем динамического установления верхних и нижних ценовых лимитов и выполнения сделок, когда цены проходят через эти ключевые уровни. Основная концепция заключается в том, чтобы поймать трендовые возможности, когда рынок выходит из установленных ценовых диапазонов, при этом адаптируясь к изменениям рынка посредством динамической корректировки ценовых зон. Стратегия использует гибкое управление позициями, позволяя дополнительным сделкам в том же направлении максимизировать прибыль от основных тенденций.
Стратегия работает на основе следующих основных механизмов: во-первых, она устанавливает соответствующие размеры шагов для различных торговых инструментов, обычно около 1,5% от цены инструмента. Система устанавливает ценовые зоны выше и ниже текущей цены, запуская длинные сигналы, когда цены превышают верхний предел, и короткие сигналы, когда цены превышают нижний предел. После каждого прорыва ценовые зоны корректируются, чтобы адаптироваться к новой рыночной среде. Стратегия поддерживает добавление позиций в одном направлении, позволяя до 200 позиций, позволяя максимизировать прибыль во время сильных тенденций. Обработка ордеров включает в себя несколько гарантий, включая обработку при закрытии бар, перерасчет после выполнения торгов и вычисление при каждом ценовом тике.
Это хорошо продуманный тренд, следующий за стратегией с четкой логикой. Благодаря динамическим настройкам ценовых зон и корректировкам, в сочетании с гибким управлением позициями, стратегия может эффективно захватывать возможности рыночных трендов. Хотя есть возможности для оптимизации, в целом стратегия обеспечивает надежную количественную торговую основу. Благодаря постоянной оптимизации и улучшению, производительность стратегии может быть еще больше повышена.
/*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")