Стратегия обратного тестирования, основанная на индикаторе трансформации Фишера

Автор:Чао Чжан, Дата: 2024-01-25 14:22:36
Тэги:

img

Обзор

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

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

  1. Расчет показателя HL2
  2. Вычислить максимальный xMaxH и минимальный xMinL HL2 в последние периоды длины
  3. Вычислить индикатор трансформации Фишера:
    • nValue1 = 0,33×(стандартизированный HL2) + 0,67×nValue1 предыдущего периода
    • nValue2 ограничивает nValue1 от -0,99 до 0,99
    • nFish - это логарифмическое преобразование nValue2
  4. Определить, является ли nFish положительным или отрицательным, чтобы определить направление положения
  5. Сигнал позиции после, если обратная торговля установлена, занять противоположную позицию
  6. Сигнал входа: possig=1 для длинного, possig=-1 для короткого

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

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

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

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

Решения рисков:

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

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

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

Вышеуказанные оптимизации могут еще больше улучшить показатель выигрыша стратегии, закрепить прибыль, контролировать риски и получить более стабильные и эффективные результаты торговли.

Резюме

Стратегия обратного тестирования индикатора преобразования Фишера интегрирует индикатор преобразования Фишера для определения точек переворота цен и направлений тренда. Эта стратегия имеет точные суждения и высокую степень автоматизации. Благодаря оптимизации параметров можно получить стабильные и эффективные торговые результаты.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v2.0 22/12/2016
// 	Market prices do not have a Gaussian probability density function
// 	as many traders think. Their probability curve is not bell-shaped.
// 	But trader can create a nearly Gaussian PDF for prices by normalizing
// 	them or creating a normalized indicator such as the relative strength
// 	index and applying the Fisher transform. Such a transformed output 
// 	creates the peak swings as relatively rare events.
// 	Fisher transform formula is: y = 0.5 * ln ((1+x)/(1-x))
// 	The sharp turning points of these peak swings clearly and unambiguously
// 	identify price reversals in a timely manner. 
//
//  For signal used zero. 
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Fisher Transform Indicator by Ehlers Backtest", shorttitle="Fisher Transform Indicator by Ehlers")
Length = input(10, minval=1)
reverse = input(false, title="Trade reverse")
hline(1, color=white)
xHL2 = hl2
xMaxH = highest(xHL2, Length)
xMinL = lowest(xHL2,Length)
nValue1 = 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
nValue2 =   iff(nValue1 > .99,  .999,
	         iff(nValue1 < -.99, -.999, nValue1))
nFish = 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
pos = iff(nFish > 0, 1,
	   iff(nFish < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
// barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nFish, color=green, title="Fisher")
plot(nz(nFish[1]), color=red, title="Trigger")

Больше