Количественная торговая стратегия, основанная на паттернах и свечах


Дата создания: 2024-02-19 14:32:45 Последнее изменение: 2024-02-19 14:32:45
Копировать: 0 Количество просмотров: 747
1
Подписаться
1617
Подписчики

Количественная торговая стратегия, основанная на паттернах и свечах

Обзор

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

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

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

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

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

В конкретной реализации стратегия написана с использованием скрипта pine. Логика реализации ее диагностического типирования заключается в том, что наивысшая цена текущей K-линии равна наивысшей цене предыдущих 3 K-линий, то есть она является вершиной. Принцип суждения о нижнем типе аналогичен.

Стратегические преимущества

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

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

Стратегический риск

Однако есть некоторые риски, о которых следует помнить:

  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)