ФИБОНАЧТИЧЕСКИЙ канал на основе стратегии перемены торгового курса свечей

Автор:Чао Чжан, Дата: 2023-11-21 17:24:17
Тэги:

img

Обзор

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

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

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

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

Чтобы повысить точность индикатора Fibonacci Bands, трейдеры часто используют несколько временных рамок. Выравнивая краткосрочные сигналы с более крупным сценарием временных рамок, трейдеры могут лучше понять общую тенденцию рынка.

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

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

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

  1. Способен выявлять ключевые области поддержки и сопротивления, чтобы помочь предсказать точки переворота цен.

  2. Улучшает точность торговых сигналов в сочетании с многочасовым анализом.

  3. Может четко идентифицировать точки входа и выхода.

  4. Может оценить силу и направление рыночного тренда, анализируя наклон средней линии.

  5. Использует естественные коэффициенты, основанные на теории Фибоначчи, для определения ключевых уровней цен.

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

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

  1. Как и все индикаторы технического анализа, стратегия не может предсказывать ценовое движение и реверсии с точностью до 100%.

  2. Неправильные или субъективные настройки уровней расширения Фибоначчи и параметров канала Келтнера могут повлиять на надежность сигнала.

  3. Цены могут пробиться через диапазоны Фибоначчи и продолжать работать, что приводит к потерям.

  4. Анализ в несколько временных рамок не всегда применим.

  5. Сигналы могут быть менее надежными на рынках с высокой волатильностью или низкой ликвидностью.

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

Руководство по оптимизации

Эта стратегия может быть оптимизирована несколькими способами:

  1. Испытать различные типы и длины параметров для оптимизации скользящей средней и каналов Келтнера, чтобы лучше соответствовать статистическим свойствам различных рынков.

  2. Проверьте другие ключевые области Фибоначчи, такие как 0,5 или 0,786 в качестве зон расширения для полос Фибоначчи.

  3. Комбинировать сигналы входа с ценовыми моделями, объемом или другими индикаторами для подтверждения.

  4. Оптимизируйте стратегии стоп-лосса, чтобы выйти раньше, когда тренд изменится.

  5. Оптимизация правил входа и выхода.

Заключение

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


/*backtest
start: 2023-10-21 00:00:00
end: 2023-11-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

    // ____  __    ___   ________ ___________  ___________ __  ____ ___ 
   // / __ )/ /   /   | / ____/ //_/ ____/   |/_  __<  / // / / __ |__ \
  // / __  / /   / /| |/ /   / ,< / /   / /| | / /  / / // /_/ / / __/ /
 // / /_/ / /___/ ___ / /___/ /| / /___/ ___ |/ /  / /__  __/ /_/ / __/ 
// /_____/_____/_/  |_\____/_/ |_\____/_/  |_/_/  /_/  /_/  \____/____/                                              

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © blackcat1402
//@version=5
strategy('[blackcat] L2 Fibonacci Bands', overlay=true)

// Define the moving average type and length
maType = input.string(title='MA Type', defval='WMA', options=['SMA', 'EMA', 'WMA', 'HMA'])
maLength = input.int(title='MA Length', defval=233, minval=1)
src = input(title='Data Source', defval=hl2)

// Define the Fibonacci expansion levels
fib1 = input.float(title='Fibonacci Level 1', defval=1.618, minval=0)
fib2 = input.float(title='Fibonacci Level 2', defval=2.618, minval=0)
fib3 = input.float(title='Fibonacci Level 3', defval=4.236, minval=0)

// Calculate the moving average
ma = maType == 'SMA' ? ta.sma(src, maLength) : maType == 'EMA' ? ta.ema(src, maLength) : maType == 'WMA' ? ta.wma(src, maLength) : maType == 'HMA' ? ta.hma(src, maLength) : na

// Calculate the Keltner Channels
kcMultiplier = input.int(title='Keltner Channel Multiplier', defval=2, minval=0)
kcLength = input.int(title='Keltner Channel Length', defval=89, minval=1)
kcTrueRange = ta.tr
kcAverageTrueRange = ta.sma(kcTrueRange, kcLength)
kcUpper = ma + kcMultiplier * kcAverageTrueRange
kcLower = ma - kcMultiplier * kcAverageTrueRange

// Calculate the Fibonacci Bands
fbUpper1 = ma + fib1 * (kcUpper - ma)
fbUpper2 = ma + fib2 * (kcUpper - ma)
fbUpper3 = ma + fib3 * (kcUpper - ma)
fbLower1 = ma - fib1 * (ma - kcLower)
fbLower2 = ma - fib2 * (ma - kcLower)
fbLower3 = ma - fib3 * (ma - kcLower)

// Plot the Fibonacci Bands
plot(ma, title='Midband', color=color.new(color.blue, 0), linewidth=2)
plot(fbUpper1, title='Upper Band 1', color=color.new(color.green, 0), linewidth=1)
plot(fbUpper2, title='Upper Band 2', color=color.new(color.green, 0), linewidth=1)
plot(fbUpper3, title='Upper Band 3', color=color.new(color.green, 0), linewidth=1)
plot(fbLower1, title='Lower Band 1', color=color.new(color.red, 0), linewidth=1)
plot(fbLower2, title='Lower Band 2', color=color.new(color.red, 0), linewidth=1)
plot(fbLower3, title='Lower Band 3', color=color.new(color.red, 0), linewidth=1)

// Define the entry and exit conditions
longCondition = ta.crossover(src, fbUpper3) and ta.rsi(src, 14) > 60
shortCondition = ta.crossunder(src, fbLower3) and ta.rsi(src, 14) < 40
exitCondition = ta.crossover(src, ma) or ta.crossunder(src, ma)

// Execute the trades
if longCondition
    strategy.entry('Long', strategy.long)
if shortCondition
    strategy.entry('Short', strategy.short)
if exitCondition
    strategy.close_all()



Больше