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

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

Автор:Чао Чжан, Дата: 2024-11-29 14:47:54
Тэги:

img

Обзор

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

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

Основная логика включает в себя несколько ключевых элементов:

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

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

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

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

  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)

Больше