Эйлерс Фишер преобразует торговую стратегию

Автор:Чао Чжан, Дата: 2024-01-08 16:51:10
Тэги:

img

Обзор

Эта стратегия основана на индикаторе Fisher Transform, разработанном мастером технического анализа Джоном Элерсом для автоматического выявления точек переворота ценовой тенденции для длинной/короткой торговли.

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

Эта стратегия использует формулу преобразования Фишера для стандартизации цен и генерации порядка цен почти гауссианского распределения. Формула преобразования Фишера: y = 0.5 * ln ((((1+x) /(1-x)). Благодаря этой трансформации крайности цен преобразуются в относительно более редкие события. Когда последнее преобразованное значение Фишера выше/ниже предыдущего периода, это указывает на возможное изменение цены. Стратегия генерирует торговые сигналы на основе поворотных точек этого индикатора.

В частности, этапы стратегии следующие:

  1. Вычислить среднюю цену HL2;
  2. Вычислить самую высокую цену xMaxH и самую низкую цену xMinL за период длины;
  3. Вычислить стандартизированную цену nValue1=(xHL2 - xMinL) / (xMaxH - xMinL) - 0,5;
  4. Гладкое nValue1 для получения nValue2, предотвращение крайности;
  5. Применить формулу преобразования Фишера на nValue2 для получения индикатора Фишера nFish;
  6. Сравните nFish с предыдущим значением, чтобы определить, произошел ли поворот, и установите направление торговли pos;
  7. Установка длинной/короткой позиции на основе POS для генерации торговых сигналов.

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

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

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

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

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

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

Эта стратегия может быть оптимизирована в следующих аспектах:

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

Заключение

Эта стратегия использует индикатор Ehlers Fisher Transform для быстрого и точного выявления точек переворота цены для своевременных торговых входов. Его самая большая сила заключается в точности и своевременности торговых сигналов.


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

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/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. 
//
// 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")
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 > nz(nFish[1]), 1,
	   iff(nFish < nz(nFish[1]), -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")

Больше