Количественная стратегия торговли, основанная на фракталах и моделях

Автор:Чао Чжан, Дата: 2024-02-19 14:32:45
Тэги:

img

Обзор

Эта статья представляет количественную торговую стратегию, которая сочетает в себе фрактальный анализ и шаблоны свечей.

Принцип стратегии

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

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

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

Фрактальное высокое/низкое определяется, когда цена делает 3-барный новый высокий/низкий, и строгие правила открытия/закрытия цен используются для поглощения моделей.

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

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

  1. Точный сигнал, сочетающий фракталы и рисунки
  2. Ясная логика входа и остановки потерь
  3. Зрелые теории предотвращают перегрузку
  4. Сосновый скрипт позволяет проверять обратную связь

Риски

Однако есть риски:

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

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

Усовершенствования

Области для дальнейшего совершенствования:

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

Эти улучшения еще больше укрепят стабильность и рентабельность стратегии.

Заключение

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


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

//@version=4
strategy("Fractal & Pattern Entry/Exit Strategy", overlay=true)

// Fractal calculation
fractalHigh = high == highest(3)
fractalLow = low == lowest(3)

// Pattern detection
bullishEngulfing = open < close[1] and close > open[1] and close > open + (open[1] - close[1]) * 2 and low < min(open, close) and high > max(open, close) and open[1] > close[1]
bearishEngulfing = open > close[1] and close < open[1] and open > close + (close[1] - open[1]) * 2 and high > max(open, close) and low < min(open, close) and open[1] < close[1]
hammer = open < close and close > (high + low + open * 2) / 4 and close - open > (high - low) * 0.6 and high - close < (high - low) * 0.1 and open - low < (high - low) * 0.1
hangingMan = open > close and open < (high + low + close * 2) / 4 and open - close > (high - low) * 0.6 and high - open < (high - low) * 0.1 and close - low < (high - low) * 0.1

// Entry condition
longCondition = crossover(close, highest(2)[1]) and (fractalHigh or bullishEngulfing or hammer)
shortCondition = crossunder(close, lowest(2)[1]) and (fractalLow or bearishEngulfing or hangingMan)

// Exit condition
exitLongCondition = crossunder(close, lowest(2)[1])
exitShortCondition = crossover(close, highest(2)[1])

// Entry and exit orders
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)
if (exitLongCondition)
    strategy.close("Long")
if (exitShortCondition)
    strategy.close("Short")

// Plot fractals
plotshape(fractalHigh, title="Fractal High", style=shape.triangledown, location=location.abovebar, color=color.green, size=size.small)
plotshape(fractalLow, title="Fractal Low", style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small)

// Plot patterns
plotshape(bullishEngulfing, title="Bullish Engulfing", style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small)
plotshape(bearishEngulfing, title="Bearish Engulfing", style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)
plotshape(hammer, title="Hammer", style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small)
plotshape(hangingMan, title="Hanging Man", style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)


Больше