Стратегия торговли с выбытием волатильности

Автор:Чао Чжан, Дата: 2023-12-11 14:20:48
Тэги:

img

Обзор

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

Логика стратегии

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

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

Кроме того, эта стратегия отслеживает максимальный объем за определенный период. Если текущий объем свечей превышает максимальное значение за последний период, это предполагает рост объема торговли и сильные силы, входящие на рынок.

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

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

Это простая, но эффективная стратегия, использующая сигналы ценового действия и объема.

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

Анализ рисков

Существуют также некоторые потенциальные риски:

  1. Нет прогноза цен, существует некоторая слепота
  2. Склонны к ложным сигналам от случайного прикосновения
  3. Может генерировать неправильные сигналы на рынках с ограниченным диапазоном
  4. Нет механизма остановки потерь, риски увеличения потерь

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

Руководство по оптимизации

В качестве основной стратегии, есть еще большое пространство для оптимизации:

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

Заключение

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


/*backtest
start: 2022-12-04 00:00:00
end: 2023-03-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SPAS", overlay=true, pyramiding=5, calc_on_order_fills=true)

int signal_hh = 0
int signal_ll = 0

if close[1] >= open[1] and close[2] >= open[2] and close[3] >= open[3]
    signal_hh := 1

if close[1] <= open[1] and close[2] <= open[2] and close[3] <= open[3]
    signal_ll := 1

plotchar(signal_hh, char='H', size=size.tiny, location=location.abovebar)
plotchar(signal_ll, char='L', size=size.tiny, location=location.abovebar)

int signal_vol = 0
float max_volume = 0.0
int vol_length = input(title="Volume length", type=input.integer, defval=3)

for i = vol_length to 1
    if volume[i] > max_volume
        max_volume := volume[i]

if volume[0] > max_volume
    signal_vol := 1

plotchar(signal_vol, char='V', size=size.tiny, location=location.bottom)

int signal_buy = 0
int signal_sell = 0

if signal_hh and signal_vol
    signal_buy := 1
    label.new(bar_index, high, "B", color=color.green)
    strategy.entry("buy", strategy.long, 5)//, when=strategy.position_size <= 0)

if signal_ll and signal_vol
    signal_sell := 1
    label.new(bar_index, low, "S", color=color.red)
    strategy.entry("sell", strategy.short, 5)//, when=strategy.position_size > 0)

//plotchar(signal_buy, char='B', color=color.green, size=size.tiny, location=location.abovebar)
plotarrow(signal_buy, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)

//plotchar(signal_sell, char='S', color=color.red, size=size.tiny, location=location.abovebar)
plotarrow(signal_sell * -1, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)



Больше