Стратегия ценового прорыва Leapfrog, количественная торговая система, основанная на многопериодных ключевых уровнях цен

HOD LOD PMH PML PDH PDL MA RSI ATR ADX
Дата создания: 2025-01-06 16:06:30 Последнее изменение: 2025-01-06 16:06:30
Копировать: 1 Количество просмотров: 328
1
Подписаться
1617
Подписчики

Стратегия ценового прорыва Leapfrog, количественная торговая система, основанная на многопериодных ключевых уровнях цен

Обзор

Стратегия представляет собой систему торговли на прорывах, основанную на нескольких ключевых ценовых уровнях. В основном он отслеживает шесть ключевых точек: внутридневной максимум (HOD), внутридневной минимум (LOD), предрыночный максимум (PMH), предрыночный минимум (PML), предыдущий дневной максимум (PDH) и предыдущий дневной минимум (PDL). Цена уровни, торговые сигналы генерируются при пробитии ценой этих уровней. Стратегия использует автоматическую торговлю для совершения операций купли-продажи на основе пересечения ценами ключевых уровней.

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

Основная логика стратегии включает в себя следующие ключевые части:

  1. Расчет ключевых уровней цен: используйте функцию request.security для получения данных о ценах за различные периоды времени и расчета шести ключевых уровней цен.
  2. Установка условий открытия: открываем длинную позицию, когда цена пробивает PMH или PDH снизу вверх; открываем короткую позицию, когда цена пробивает PML или PDL сверху вниз.
  3. Установка условий закрытия: при удержании длинной позиции, если цена достигает HOD, позиция закрывается; при удержании короткой позиции, если цена достигает LOD, позиция закрывается.
  4. Графическая визуализация: используйте горизонтальные линии разного цвета для обозначения каждого уровня цен: белый для HOD, фиолетовый для LOD, оранжевый для PDH, синий для PDL, зеленый для PMH и красный для PML.

Стратегические преимущества

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

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

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

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

  1. Добавить фильтрацию технических индикаторов:
  • Представляем индикатор RSI для фильтрации перекупленности и перепроданности
  • Использование ATR для установки динамического стоп-лосса
  • Объедините ADX для определения силы тренда
  1. Улучшить управление рисками:
  • Настройте динамический механизм стоп-лосса
  • Добавлена ​​функция трейлинг-стопа
  • Установить механизм получения прибыли партиями
  1. Подтверждение сигнала оптимизации:
  • Подтверждение увеличения громкости
  • Добавлено подтверждение многопериодного тренда
  • Настроить механизм подтверждения задержки сигнала

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

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

Исходный код стратегии
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus

//@version=6
strategy("HOD/LOD/PMH/PML/PDH/PDL Strategy by tradingbauhaus ", shorttitle="HOD/LOD Strategy", overlay=true)

// Daily high and low
dailyhigh = request.security(syminfo.tickerid, 'D', high)
dailylow = request.security(syminfo.tickerid, 'D', low)

// Previous day high and low
var float previousdayhigh = na
var float previousdaylow = na
high1 = request.security(syminfo.tickerid, 'D', high[1])
low1 = request.security(syminfo.tickerid, 'D', low[1])
high0 = request.security(syminfo.tickerid, 'D', high[0])
low0 = request.security(syminfo.tickerid, 'D', low[0])

// Yesterday high and low
if (hour == 9 and minute > 30) or hour > 10
    previousdayhigh := high1
    previousdaylow := low1
else
    previousdayhigh := high0
    previousdaylow := low0

// Premarket high and low
t = time("1440", "0000-0930") // 1440 is the number of minutes in a whole day.
is_first = na(t[1]) and not na(t) or t[1] < t
ending_hour = 9
ending_minute = 30

var float pm_high = na
var float pm_low = na

if is_first and barstate.isnew and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    pm_low := low
else 
    pm_high := pm_high[1]
    pm_low := pm_low[1]

if high > pm_high and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    
if low < pm_low and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_low := low

// Plotting levels
plot(dailyhigh, style=plot.style_line, title="Daily high", color=color.white, linewidth=1, trackprice=true)
plot(dailylow, style=plot.style_line, title="Daily low", color=color.purple, linewidth=1, trackprice=true)
plot(previousdayhigh, style=plot.style_line, title="Previous Day high", color=color.orange, linewidth=1, trackprice=true)
plot(previousdaylow, style=plot.style_line, title="Previous Day low", color=color.blue, linewidth=1, trackprice=true)
plot(pm_high, style=plot.style_line, title="Premarket high", color=color.green, linewidth=1, trackprice=true)
plot(pm_low, style=plot.style_line, title="Premarket low", color=color.red, linewidth=1, trackprice=true)

// Strategy logic
// Long entry: Price crosses above PMH or PDH
if (ta.crossover(close, pm_high) or ta.crossover(close, previousdayhigh)) and strategy.opentrades == 0
    strategy.entry("Long", strategy.long)

// Short entry: Price crosses below PML or PDL
if (ta.crossunder(close, pm_low) or ta.crossunder(close, previousdaylow)) and strategy.opentrades == 0
    strategy.entry("Short", strategy.short)

// Exit long: Price reaches HOD
if strategy.position_size > 0 and ta.crossover(close, dailyhigh)
    strategy.close("Long")

// Exit short: Price reaches LOD
if strategy.position_size < 0 and ta.crossunder(close, dailylow)
    strategy.close("Short")