Случайная трансформация Фишера Временная остановка Индикатор STOCH Количественная стратегия

Автор:Чао Чжан, Дата: 2024-01-02 11:14:12
Тэги:

img

Обзор

Основная идея этой стратегии заключается в сочетании Random Fisher Transform и индикатора Temporary Stop Reverse STOCH для принятия решений о покупке и продаже.

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

Эта стратегия сначала рассчитывает стандартный индикатор STOCH, а затем выполняет преобразование Фишера на нем, чтобы получить INVLine. Когда INVLine пересекает нижний порог dl, генерируется сигнал покупки. Когда INVLine пересекает верхний порог ul, генерируется сигнал продажи. В то же время эта стратегия также устанавливает механизм остановки для блокировки прибыли и снижения потерь.

В частности, основной логикой этой стратегии является:

  1. Расчет показателя STOCH: Используйте стандартную формулу для расчета быстрого значения STOCH запаса
  2. Преобразование Фишера: выполните преобразование Фишера на значении STOCH для получения INVLine
  3. Создать торговые сигналы: покупать, когда INVLine пересекается выше dl, продавать, когда пересекается ниже ul
  4. Задержка остановки: включить механизм временного отслеживания остановки для своевременной остановки потери

Анализ преимуществ

Основными преимуществами этой стратегии являются:

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

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

Эта стратегия также сопряжена с некоторыми рисками:

  1. Индикатор STOCH подвержен генерированию ложных сигналов, что может привести к ненужной торговле.
  2. Преобразование Фишера также усиливает шум индикатора STOCH, в результате чего больше ложных сигналов
  3. Легко остановить убытки на колеблющихся рынках и не добиться устойчивой прибыли
  4. Относительно короткие периоды хранения требуются для получения Альфы.

Для смягчения этих рисков следует рассмотреть возможность оптимизации следующих аспектов:

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

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

К основным направлениям оптимизации этой стратегии относятся:

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

Заключение

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


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

//@version=3
strategy("IFT Stochastic + Trailing Stop", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//INPUTS
stochlength=input(19, "STOCH Length")
wmalength=input(4, title="Smooth")
ul = input(0.64,step=0.01, title="UP line")
dl = input(-0.62,step=0.01, title="DOWN line")
uts = input(true, title="Use trailing stop")
tsi = input(title="trailing stop actiation pips",defval=245)                                                                       
tso = input(title="trailing stop offset pips",defval=20)

//CALCULATIONS
v1=0.1*(stoch(close, high, low, stochlength)-50)
v2=wma(v1, wmalength)
INVLine=(exp(2*v2)-1)/(exp(2*v2)+1)

//CONDITIONS
sell = crossunder(INVLine,ul)? 1 : 0
buy = crossover(INVLine,dl)? 1 : 0

//PLOTS
plot(INVLine, color=aqua, linewidth=1, title="STOCH")
hline(ul, color=red)
hline(dl, color=green)
bgcolor(sell==1? red : na, transp=30, title = "sell signal")
bgcolor(buy==1? lime : na, transp=30, title = "buy signal")
plotchar(buy==1, title="Buy Signal", char='B', location=location.bottom, color=white, transp=0, offset=0)
plotchar(sell==1, title="Sell Signal", char='S', location=location.top, color=white, transp=0, offset=0)

//STRATEGY
strategy.entry("BUY", strategy.long, when = buy==1)
strategy.entry("SELL", strategy.short, when = sell==1)

if  (uts)
    strategy.entry("BUY", strategy.long, when = buy)
    strategy.entry("SELL", strategy.short, when = sell)
    strategy.exit("Close BUY with TS","BUY", trail_points = tsi, trail_offset = tso)
    strategy.exit("Close SELL with TS","SELL", trail_points = tsi, trail_offset = tso)


Больше