Количественная стратегия торговли на основе облака Ичимоку и скользящей средней

Автор:Чао Чжан, Дата: 2024-02-20 17:12:35
Тэги:

img

Обзор

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

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

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

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

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

Преимущества

Основными преимуществами этой стратегии являются:

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

Риски

Основными рисками этой стратегии являются:

  1. Нужно установить стоп-лосс, чтобы контролировать потери на торговле.
  2. Риск переворота цены. Цена может перевернуться после запуска сигнала. Может ослабить условия хранения, чтобы уменьшить этот риск.
  3. Результаты чувствительны к параметрам, требуются исчерпывающие комбинаторные испытания, чтобы найти оптимальный результат.
  4. Превышение риска. может хорошо работать исторически, но не в фактической торговле. нужно ограничить комбинации параметров.

Возможности для расширения

Некоторые способы, которыми эта стратегия может быть улучшена:

  1. Испытывайте комбинации большего количества индикаторов, таких как KDJ, BOLL, MACD, чтобы найти лучшие параметры.
  2. Включить механизмы стоп-лосса, такие как перемещение стоп-лосса или x раз atr.
  3. Оптимизировать фильтры входа с объемом, волатильностью и т. д.
  4. Ужесточить правила хранения путем сокращения периода хранения или увеличения целевой прибыли.
  5. Внедрить машинное обучение для поиска оптимальных комбинаций параметров с помощью нейронных сетей.

Заключение

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


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

//@version=5
strategy("Ichimoku Cloud + ema 50 Strategy", overlay=true)

len = input.int(50, minval=1, title="Length")
src = input(close, title="Source")
out = ta.ema(src, len)

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(1, 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)
leadLine2 = donchian(laggingSpan2Periods)

p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
     title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

plot(out, title="EMA", color=color.white)

// Condition for Buy Signal
buy_signal = close > out and leadLine1 > leadLine2

// Condition for Sell Signal
sell_signal = close < out and leadLine2 > leadLine1

// Strategy entry and exit conditions
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Exit long position if candle closes below EMA 50
if (strategy.opentrades > 0)
    if (close < out)
        strategy.close("Buy")

// Exit short position if candle closes above EMA 50
if (strategy.opentrades < 0)
    if (close > out)
        strategy.close("Sell")


Больше