Стратегия определения локальных шоковых тенденций в одной статье


Дата создания: 2024-03-19 15:10:59 Последнее изменение: 2024-03-19 15:10:59
Копировать: 0 Количество просмотров: 664
1
Подписаться
1617
Подписчики

Стратегия определения локальных шоковых тенденций в одной статье

Обзор

Стратегия использует линию конверсии (Conversion Line), базовую линию (Base Line), облако (Kumo Cloud) и линию задержки (Lagging Span) для определения текущей тенденции рынка и объединяет две золотые разбивки 1.618 и 0.618 для установления стоп-лосса и идентификации рыночных потрясений. Кроме того, стратегия также вводит две дополнительные средние линии для фильтрации ложных сигналов.

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

Облачный индикатор состоит из четырёх частей: линии перевода, основной линии, облака и линии задержки. Из них линии перевода и основной линии рассчитываются как средние значения наивысшей и наименьшей цены в разные периоды. Облака образуются из 26 циклов продвижения базовой линии вперед, а линия задержки - 26 циклов продвижения цены закрытия назад.

При этом в стратегии используются следующие условия для открытия позиции:

  1. Линия задержки над облаками
  2. Переводная линия выше базовой
  3. Закрытие цены выше остановки 1.618
  4. Линия 0.618 выше остановки 1.618
  5. Цена закрытия выше облаков

Условия для открытия позиции с пустой головой противоположны условиям для открытия позиции с многоголовой головой.

Строка стоп-позиции использует два золотых сечения: 1,618 и 0,618; стоп-позиция с многоглазым - это верхний слой облака, минус верхний слой в 1,618 раз, а стоп-позиция с пустым слоем - наоборот; линия 0,618 используется для идентификации рынка в колебании. Когда облака зеленые, а линия 0,618 ниже стоп-позиции 1,618 - рынок считается в колебании.

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

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

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

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

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

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

  1. Можно рассмотреть возможность внедрения большего количества показателей подтверждения тенденций, таких как система равнолинейной оценки, MACD и т. д., для дальнейшего улучшения качества сигнала.
  2. Установка стоп-пакета может учитывать дополнительные факторы, такие как ATR, волатильность и т. д., что делает его более динамичным и персонализированным.
  3. Для оценки рыночных колебаний можно попробовать другие методы, такие как индикатор интенсивности тренда ADX и т.д.
  4. Параметры могут быть оптимизированы с использованием методов машинного обучения, таких как генетические алгоритмы, и с помощью внештатной проверки, чтобы избежать переизмеримости.
  5. Для повышения устойчивости и надежности стратегии могут быть добавлены модули управления позициями и контроля риска, такие как правила Келли, фиксированный риск и т. д.

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

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

Исходный код стратегии
/*backtest
start: 2023-03-13 00:00:00
end: 2024-03-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © manoharbauskar

//@version=5
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © manoharbauskar

//@version=5
strategy("Advanced_Ichimoku_Cloud_Strategy", overlay=true, margin_long=100, margin_short=100)
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpanPeriods = input.int(52, minval=1, title="Leading Span B Length")
pivotPeriods1 = input.int(17,minval = 1,title = "PPL1")
pivotPeriods2 = input.int(39,minval = 1,title = "PPL2")
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)
midLine1 = donchian(pivotPeriods1)
midLine2 = donchian(pivotPeriods2)
midLine3 = donchian(laggingSpanPeriods)
leadLine1 = math.avg(conversionLine, baseLine, midLine1)
leadLine2 = math.avg(midLine2 , midLine3)


plot(conversionLine, color=#2962FF, title="Conversion Line")
plot(baseLine, color=#B71C1C, title="Base Line")

plot(close, offset = -displacement + 1, color=color.yellow, 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))

//stoploss calculating
mult1 = input.float(1.618, "Mult1")
mult2 = input.float(0.618, "Mult2")
stoploss1 = leadLine1 - (leadLine1 - leadLine2)*mult1
stoploss2 = leadLine1 - (leadLine1 - leadLine2)*mult2
plot(stoploss1,"Sl", color = color.fuchsia, linewidth = 2, style = plot.style_line, offset = displacement - 1)
plot(stoploss2,"S2", color = color.lime, linewidth = 2, style = plot.style_line, offset = displacement - 1)

longCondition = leadLine1 > leadLine2 
if (longCondition)
    strategy.entry("Buy", strategy.long)

shortCondition = leadLine1 < leadLine2
if (shortCondition)
    strategy.entry("Sell", strategy.short)