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

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

Автор:Чао Чжан, Дата: 2024-07-29 13:57:12
Тэги:ЕМАSMAОБ

img

Обзор

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

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

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

  2. Выявление изменений тренда: использует перекрестки простой скользящей средней (SMA) для выявления потенциальных изменений тренда.

  3. Многочасовой анализ: рассчитывает 50-периодные и 200-периодные экспоненциальные скользящие средние значения (EMA) на 1-часовом временном отрезке для определения более широкой тенденции рынка.

  4. Условия въезда:

    • Длинный: когда на 5-минутном графике появляется сигнал восходящего тренда, цена превышает блок ордера, а 50 EMA выше 200 EMA на 1-часовом графике.
    • Короткий: когда на 5-минутном графике появляется сигнал нисходящего тренда, цена прорывается ниже блока ордеров, а 50 EMA находится ниже 200 EMA на 1-часовом графике.
  5. Стратегия выхода: использует фиксированные процентные уровни получения прибыли и стоп-лосса для управления рисками и закрепления прибыли.

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

  1. Многомерный анализ: объединяет несколько временных рамок и технических индикаторов, обеспечивая более полную перспективу рынка.

  2. Следование тенденции: торгуя в направлении более широкой тенденции, он увеличивает вероятность прибыльных сделок.

  3. Точные записи: использует блоки заказов и краткосрочные изменения тренда для оптимизации времени входа.

  4. Управление рисками: использует заранее установленные проценты прибыли и стоп-лосса, эффективно контролируя риск для каждой сделки.

  5. Приспособимость: параметры стратегии могут быть адаптированы к различным рыночным условиям.

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

  1. Переоценка: может генерировать частые торговые сигналы на сильно волатильных рынках, увеличивая затраты на транзакции.

  2. Риск скольжения: на менее ликвидных рынках фактические цены исполнения могут значительно отклоняться от идеальных цен.

  3. Риск переворота тренда: стратегия может понести последовательные убытки вблизи поворотных моментов тренда.

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

  5. Зависимость от рыночной среды: стратегия может плохо работать на рынках с колебаниями или быстро колеблющимися.

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

  1. Динамическая корректировка параметров: рассмотреть возможность автоматической корректировки процентов прибыли и стоп-лосса на основе волатильности рынка.

  2. Дополнительные фильтры: ввести дополнительные технические или рыночные индикаторы настроения, чтобы уменьшить ложные сигналы.

  3. Временное фильтрация: Добавить ограничения торгового окна времени, чтобы избежать периодов низкой ликвидности.

  4. Управление позициями: внедрять более сложные стратегии управления позициями, такие как размещение позиций на основе волатильности.

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

  6. Признание рыночной среды: Разработка алгоритмов для выявления различных состояний рынка и соответствующей корректировки стратегии.

Резюме

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


/*backtest
start: 2024-06-28 00:00:00
end: 2024-07-28 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("S&P 500", overlay=true)
// Parámetros
length = input(14, "Longitud")
src = input(close, "Fuente")
profit_percent = input.float(0.08955, "Porcentaje de ganancia", step=0.00001, minval=0)
stop_loss_percent = input.float(0.04477, "Porcentaje de stop loss", step=0.00001, minval=0)
// Función para calcular el Order Block
order_block(src, len) =>
    highest = ta.highest(high, len)
    lowest = ta.lowest(low, len)
    mid = (highest + lowest) / 2
    ob = src > mid ? highest : lowest
    ob
// Cálculo del Order Block
ob = order_block(src, length)
// Función para detectar cambios de tendencia
trend_change(src, len) =>
    up = ta.crossover(src, ta.sma(src, len))
    down = ta.crossunder(src, ta.sma(src, len))
    [up, down]
// Detectar cambios de tendencia
[trend_up, trend_down] = trend_change(src, length)
// Calcular EMA 50 y EMA 200 en timeframe de 1 hora
ema50_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 50))
ema200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))
// Condiciones de EMA
ema_buy_condition = ema50_1h > ema200_1h
ema_sell_condition = ema50_1h < ema200_1h
// Señales de compra y venta
buy_signal = trend_up and close > ob and ema_buy_condition
sell_signal = trend_down and close < ob and ema_sell_condition
// Ejecutar la estrategia
if (buy_signal)
    strategy.entry("Compra", strategy.long)
if (sell_signal)
    strategy.entry("Venta", strategy.short)
// Calcular precios de toma de ganancias y stop loss
if (strategy.position_size != 0)
    entry_price = strategy.position_avg_price
    is_long = strategy.position_size > 0
    take_profit = entry_price * (1 + (is_long ? 1 : -1) * profit_percent / 100)
    stop_loss = entry_price * (1 + (is_long ? -1 : 1) * stop_loss_percent / 100)
    strategy.exit(is_long ? "Long TP/SL" : "Short TP/SL", limit=take_profit, stop=stop_loss)
// Visualización
plot(ob, "Order Block", color.purple, 2)
plot(ta.sma(src, length), "SMA", color.blue)
plot(ema50_1h, "EMA 50 1h", color.yellow)
plot(ema200_1h, "EMA 200 1h", color.white)
bgcolor(buy_signal ? color.new(color.green, 90) : sell_signal ? color.new(color.red, 90) : na)

Связанные

Больше