Тенденционная стратегия торговли на основе ценового экстрема

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

img

Обзор

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

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

Основным показателем этой стратегии является расчет максимальных и минимальных ценовых точек за определенный период.

Верхняя полоса: сканируйте K-линию в периоде слева направо, чтобы найти максимальную высокую точку, а затем определите, являются ли первая K-линия слева в крайнюю левую сторону и первая K-линия справа в крайнюю правую сторону ниже этой максимальной высокой точки. Если да, эта точка подтверждается как верхняя часть диапазона.

Нижняя полоса: сканируйте K-линию в периоде слева направо, чтобы найти минимальную низкую точку, а затем определите, являются ли 1 K-линия слева в крайнюю левую сторону и 1 K-линия справа в крайнюю правую сторону выше этой минимальной низкой точки.

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

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

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

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

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

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

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

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

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

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

Заключение

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


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/02/2018
//  Stock market moves in a highly chaotic way, but at a larger scale, the movements 
// follow a certain pattern that can be applied to shorter or longer periods of time 
// and we can use Fractal Chaos Bands Indicator to identify those patterns. Basically, 
// the Fractal Chaos Bands Indicator helps us to identify whether the stock market is 
// trending or not. When a market is trending, the bands will have a slope and if market 
// is not trending the bands will flatten out. As the slope of the bands decreases, it 
// signifies that the market is choppy, insecure and variable. As the graph becomes more 
// and more abrupt, be it going up or down, the significance is that the market becomes 
// trendy, or stable. Fractal Chaos Bands Indicator is used similarly to other bands-indicator 
// (Bollinger bands for instance), offering trading opportunities when price moves above or 
// under the fractal lines.
//
// The FCB indicator looks back in time depending on the number of time periods trader selected 
// to plot the indicator. The upper fractal line is made by plotting stock price highs and the 
// lower fractal line is made by plotting stock price lows. Essentially, the Fractal Chaos Bands 
// show an overall panorama of the price movement, as they filter out the insignificant fluctuations 
// of the stock price.
//
// 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 Bands", overlay = true)
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
xUpper = fractalUp(Pattern)
xLower = fractalDn(Pattern)
pos = iff(close > xUpper, 1,
       iff(close < xLower, -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(xUpper, color=red, title="FCBUp")
plot(xLower, color=green, title="FCBDn")

Больше