Стратегия двойного фрактального прорыва

Автор:Чао Чжан, Дата: 2024-01-30 15:53:27
Тэги:

img

Обзор

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

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

Основная идея этой стратегии заключается в теории фракталов. Появление краткосрочных поворотных точек в форме М или W предполагает возможный обрат преобладающей тенденции. В частности, нижние или верхние фракталы образуются, когда 5 последовательных баров создают определенные комбинации относительно больших/меньших максимумов/низких. Например, верхний фрактал образуется, когда самые высокие цены первых 2 баров выше цен последних 3 баров.

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

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

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

Риски

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

Улучшение

Возможные способы улучшения этой стратегии включают:

  1. Добавление фильтров, таких как громкость, чтобы избежать ложных переворотов.

  2. Настройка параметров для обнаружения двойных фракталов большей степени и захвата больших поворотов тренда.

  3. Включение перемещения стоп-лосса для уменьшения потерь от плохих сделок.

Заключение

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


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

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ceyhun

strategy("Fractal Breakout Strategy", overlay=true)

FUp = high[4] < high[2] and high[3] < high[2] and high[1] < high[2] and high < high[2] or 
   high[5] < high[2] and high[4] < high[2] and high[3] <= high[2] and 
   high[1] < high[2] and high < high[2] or 
   high[6] < high[2] and high[5] < high[2] and high[4] <= high[2] and 
   high[3] <= high[2] and high[1] < high[2] and high < high[2] or 
   high[7] < high[2] and high[6] < high[2] and high[5] <= high[2] and 
   high[4] <= high[2] and high[3] <= high[2] and high[1] < high[2] and 
   high < high[2] or 
   high[8] < high[2] and high[7] < high[2] and high[6] <= high[2] and 
   high[5] <= high[2] and high[4] <= high[2] and high[3] <= high[2] and 
   high[1] < high[2] and high < high[2]
FractalUp = valuewhen(FUp, high[2], 1)
plot(FractalUp, color=#0000FF,title="FractalUp")

FDown = low[4] > low[2] and low[3] > low[2] and low[1] > low[2] and low > low[2] or 
   low[5] > low[2] and low[4] > low[2] and low[3] >= low[2] and low[1] > low[2] and 
   low > low[2] or 
   low[6] > low[2] and low[5] > low[2] and low[4] >= low[2] and low[3] >= low[2] and 
   low[1] > low[2] and low > low[2] or 
   low[7] > low[2] and low[6] > low[2] and low[5] >= low[2] and low[4] >= low[2] and 
   low[3] >= low[2] and low[1] > low[2] and low > low[2] or 
   low[8] > low[2] and low[7] > low[2] and low[6] >= low[2] and low[5] >= low[2] and 
   low[4] >= low[2] and low[3] >= low[2] and low[1] > low[2] and low > low[2]
FractalDown = valuewhen(FDown, low[2], 1)
plot(FractalDown, color=#FF0000,title="FractalDown")

if crossover(close, FractalUp)
    strategy.entry("Long", strategy.long, comment="Long")

if crossunder(close, FractalDown)
    strategy.entry("Short", strategy.short, comment="Short")


Больше