Торговая стратегия Fractal Chaos Oscillator


Дата создания: 2023-09-18 15:10:09 Последнее изменение: 2023-09-18 15:10:09
Копировать: 1 Количество просмотров: 1280
1
Подписаться
1617
Подписчики

Обзор

Эта стратегия используется для определения направления рыночных тенденций путем вычисления показателя Fractal Chaos Oscillator (FCO), который позволяет отслеживать тенденции. FCO определяет ценовое движение, сравнивая изменения локальных максимальных и минимальных значений. Цифровой диапазон между -1 и 1, чем выше число, тем более очевидна тенденция.

Стратегический принцип

Поиск конкретной K-линейной формы для определения локальных максимумов и минимумов. Сравнение изменений в пределах двух соседних групп, вычисление показателя FCO. Например, когда новейшая группа максимальных минимумов не совпадает с предыдущей группой, FCO равен 1, что означает, что тенденция к росту цен становится сильной.

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

  • Индекс FCO прост и эффективен в определении направления тенденции
  • Удобство использования без сложных параметров
  • Доходность на коротких линиях, подходящая для торговли в течение дня
  • Вы можете сделать больше или меньше, в зависимости от потребности

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

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

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

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

  • Тестирование различных параметров типового цикла
  • Оптимизируйте лишние и свободные пороги FCO
  • Показатели, такие как движущаяся средняя, определяют обратный тренд
  • Параметры для тестирования выносливости у разных сортов

Подвести итог

Стратегия FCO определяет направление тренда с помощью простых показателей и подходит для торговли на коротких линиях. Ее эффективность может быть повышена методами, такими как оптимизация параметров.

Исходный код стратегии
/*backtest
start: 2023-09-10 00:00:00
end: 2023-09-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/02/2018
//   The value of Fractal Chaos Oscillator is calculated as the difference between 
// the most subtle movements of the market. In general, its value moves between 
// -1.000 and 1.000. The higher the value of the Fractal Chaos Oscillator, the 
// more one can say that it follows a certain trend – an increase in prices trend, 
// or a decrease in prices trend.
//
//   Being an indicator expressed in a numeric value, traders say that this is an 
// indicator that puts a value on the trendiness of the markets. When the FCO reaches 
// a high value, they initiate the “buy” operation, contrarily when the FCO reaches a 
// low value, they signal the “sell” action. This is an excellent indicator to use in 
// intra-day trading.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
fractalUp(pattern) =>
    p = high[pattern+1]
    okl = 1
    okr = 1
	for i = pattern to 1
		okl := iff(high[i] < high[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(high[i] < high[i-1] and okr == 1, 1, 0)
	res = iff(okl == 1 and okr == 1, p, res[1])
    res

fractalDn(pattern) =>
    p = low[pattern+1]
    okl = 1
    okr = 1
	for i = pattern to 1
		okl := iff(low[i] > low[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(low[i] > low[i-1] and okr == 1, 1, 0)
	res = iff(okl == 1 and okr == 1, p, res[1])
    res

strategy(title="Fractal Chaos Oscillator", overlay = false)
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
xUpper = fractalUp(Pattern)
xLower = fractalDn(Pattern)
xRes = iff(xUpper != xUpper[1], 1, 
         iff(xLower != xLower[1], -1, 0))
pos = iff(xRes == 1, 1,
       iff(xRes == -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(xRes, color=blue, title="FCO")