Многочастотная система количественной стратегии разворота импульса


Дата создания: 2024-11-29 14:47:54 Последнее изменение: 2024-11-29 14:47:54
Копировать: 0 Количество просмотров: 377
1
Подписаться
1617
Подписчики

Многочастотная система количественной стратегии разворота импульса

Обзор

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

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

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

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

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

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

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Streak-Based Trading Strategy", overlay=true)

// User Inputs
trade_direction = input.string(title="Trade Direction", defval="Long", options=["Long", "Short"]) // Option to choose Long or Short
streak_threshold = input.int(title="Streak Threshold", defval=8, minval=1) // Input for number of streaks before trade
hold_duration = input.int(title="Hold Duration (in periods)", defval=7, minval=1) // Input for holding the position
doji_threshold = input.float(0.01, title="Doji Threshold (%)", minval=0.001) / 100 // Doji sensitivity

// Calculate win or loss streak
is_doji = math.abs(close - open) / (high - low) < doji_threshold
win = close > close[1] and not is_doji
loss = close < close[1] and not is_doji

// Initialize variables for streak counting
var int win_streak = 0
var int loss_streak = 0
var bool in_position = false
var int hold_counter = 0

// Track streaks (only when not in a position)
if not in_position
    if win
        win_streak += 1
        loss_streak := 0
    else if loss
        loss_streak += 1
        win_streak := 0
    else
        win_streak := 0
        loss_streak := 0

// Logic for closing the position after the holding duration
if in_position
    hold_counter -= 1
    if hold_counter <= 0
        strategy.close_all() // Close all positions
        in_position := false // Reset position flag
        win_streak := 0 // Reset streaks after position is closed
        loss_streak := 0

// Trade condition (only when no position is open and streak is reached)
if not in_position
    if trade_direction == "Long" and loss_streak >= streak_threshold
        strategy.entry("Long", strategy.long) // Open a long position
        in_position := true
        hold_counter := hold_duration // Set holding period

    if trade_direction == "Short" and win_streak >= streak_threshold
        strategy.entry("Short", strategy.short) // Open a short position
        in_position := true
        hold_counter := hold_duration // Set holding period

// Plotting streaks for visualization
plot(win_streak, color=color.green, title="Winning Streak", style=plot.style_histogram, linewidth=2)
plot(loss_streak, color=color.red, title="Losing Streak", style=plot.style_histogram, linewidth=2)