Стратегия отслеживания трендов на балансовом графике

Автор:Чао Чжан, Дата: 2024-02-27 16:41:02
Тэги:

一目均衡图趋势追踪策略

Обзор

Стратегия Ichimoku Cloud Trend Following - это стратегия технического анализа. Она использует пять линий индикатора, расположенных на балансовом графике, чтобы определить направление тренда, поддержку, сопротивление и время входа.

Принцип

Ключевые показатели стратегии включают:

  1. Линия преобразования: среднее значение последних 9-дневных максимумов и минимумов, отражающее краткосрочные тенденции.
  2. Базовые линии: средние значения последних 26-дневных максимумов и минимумов, отражающие среднесрочные и долгосрочные тенденции.
  3. Предыдущая линия А: среднее значение линии конверсии и базовой линии, смещение 26 дней, определение среднесрочной поддержки и сопротивления.
  4. Предыдущая линия B: среднее значение последних 52 дней высоких и низких значений, перемещение 26 дней, определение долгосрочной поддержки и сопротивления.
  5. В результате, в течение 26 дней цена движется по случайной линии, что отражает движение тренда.

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

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

Стоп-лосс или стоп-дюйм устанавливается на предыдущей линии А или на базовой линии. Если выбран базовый, то стоп-лосс, когда цена падает через базовую линию.

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

В частности, в частности:

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

Риски и оптимизация

Основной риск этой стратегии заключается в том, что она может создавать ложные сигналы.

  1. Настройка параметров среднего цикла, оптимизация чувствительности показателя.
  2. Добавить другие показатели или графические фильтры, такие как MACD, Blink-Band.
  3. Снижение частоты торговли и отслеживание длинных и средних трендов.

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

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


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

//@version=5
strategy(title="Ichimoku Cloud - BitBell", shorttitle="Ichimoku Cloud - BitBell", overlay=true)
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(26, minval=1, title="Lagging Span")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine1bbbbb = math.avg(conversionLine, baseLine)[displacement - 1]
plot(leadLine1bbbbb)
leadLine2 = donchian(laggingSpan2Periods)
leadLine2bbbbbb = donchian(laggingSpan2Periods)[displacement - 1]
plot(leadLine2bbbbbb)

support = leadLine1bbbbb > leadLine2bbbbbb
Resistance = leadLine1bbbbb < leadLine2bbbbbb


TrailStop = input.string(title='Choose Trail Line', options=["ConversionLine", "BaseLine"], defval="ConversionLine")





var stopLong = 0.0
var stopShort = 0.0
var TagetLong = 0.0
var TargetShort = 0.0


if close > leadLine1bbbbb and close > leadLine2bbbbbb and conversionLine[1] <= baseLine[1] and conversionLine > baseLine and close > conversionLine and support
	strategy.entry("Long",strategy.long)
	stopLong := conversionLine
// if close < stopLong and strategy.position_size > 0 
// 	strategy.close("Long")
// 	stopLong := 0.0
if (close < conversionLine and strategy.position_size > 0) and (TrailStop == 'ConversionLine')
	strategy.close("Long")
	stopLong := 0.0
if (close < baseLine and strategy.position_size > 0) and (TrailStop == 'BaseLine')
	strategy.close("Long")
	stopLong := 0.0

if close < leadLine1bbbbb and close < leadLine2bbbbbb and conversionLine[1] >= baseLine[1] and conversionLine < baseLine and close < conversionLine and Resistance
	strategy.entry("Short",strategy.short)
	stopShort := conversionLine
// if close > stopShort and strategy.position_size < 0 
// 	strategy.close("Short")
// 	stopShort := 0.0
if (close > conversionLine and strategy.position_size < 0) and (TrailStop == 'ConversionLine')
	strategy.close("Short")
	stopShort := 0.0
if (close > baseLine and strategy.position_size < 0) and (TrailStop == 'BaseLine')
	strategy.close("Short")
	stopShort := 0.0
// if close >= 1.0006 * strategy.position_avg_price and strategy.position_size > 0 
// 	strategy.close("Long")
// 	stopLong := 0.0
plot(conversionLine, color=#2962FF, title="Conversion Line")
plot(baseLine, color=#B71C1C, title="Base Line")
plot(close, offset = -displacement + 1, color=#43A047, title="Lagging Span")
p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
	 title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Upper Line", display = display.none) 
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Lower Line", display = display.none) 
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

Больше информации