Стратегия торговли с использованием динамической скользящей средней и кельтского канала


Дата создания: 2023-12-25 13:36:40 Последнее изменение: 2023-12-25 13:36:40
Копировать: 0 Количество просмотров: 701
1
Подписаться
1623
Подписчики

Стратегия торговли с использованием динамической скользящей средней и кельтского канала

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

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

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

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

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

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

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

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

  3. Супертенденционный индикатор может отслеживать долгосрочные тенденции и отслеживать тенденции в долгосрочной перспективе.

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

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

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

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

  2. Стоп-стоп в верхней и нижней полосе прорыва может быть слишком большим, риск одиночных потерь высок. Можно соответственно уменьшить диапазон стоп-стоп или использовать временные стоп-стоп.

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

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

Как оптимизировать стратегию: В зависимости от различных рыночных условий и торговых предпочтений данная стратегия может быть оптимизирована в следующих направлениях:

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

  2. Регулирование ATR-периодов и параметров коэффициентов для индикатора супертенденции, оптимизация роли индикатора супертенденции.

  3. Настройка стоп-стоп, балансировка пропорции потерь на одну ставку. Также можно использовать временные стоп-стопы для дальнейшего контроля риска потерь на одну ставку.

  4. Добавление других вспомогательных показателей, таких как ленты Брин, показатели KD и т. д., для дальнейшего определения возможности локальной корректировки и обращения.

  5. Для того, чтобы получить интуитивное представление о состоянии цены, используйте переменные open, close и другие.

  6. Оптимизация параметров, сравнивание эффективности различных комбинаций параметров.

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

Исходный код стратегии
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mahesh_linux1989

//@version=5
strategy("Intraday Trend Identifier with Dynamic Moving Averages, Super Trend, VWAP, and Keltner Signals", overlay=true, shorttitle="ITI Keltner")

// Input for Moving Average Type
maType = input("SMA", title="Moving Average Type")

// Input for SMA Length
smaLength = input.int(20, title="SMA Length", minval=1, maxval=200)

// Input for EMA Length
emaLength = input.int(20, title="EMA Length", minval=1, maxval=200)

// Selecting Moving Average
selectedMA = maType == "SMA" ? ta.sma(close, smaLength) : ta.ema(close, emaLength)

// Bullish conditions
bullish = high > high[1] and low > low[1] and close > high[1]

// Bearish conditions
bearish = high < high[1] and low < low[1] and close < low[1]

// Strategy logic
longCondition = bullish and not bearish and close > selectedMA
shortCondition = bearish and not bullish and close < selectedMA

if (longCondition)
    strategy.entry("Buy", strategy.long)

if (shortCondition)
    strategy.entry("Sell", strategy.short)

// Exit conditions
bullishExit = close < selectedMA
bearishExit = close > selectedMA

if (bullishExit)
    strategy.close("Buy")

if (bearishExit)
    strategy.close("Sell")

// Keltner Channels
basisKC = maType == "SMA" ? ta.sma(close, smaLength) : ta.ema(close, emaLength)
atrKC = ta.atr(14)
upperKC = basisKC + atrKC
lowerKC = basisKC - atrKC

// Super Trend
atrLengthST = input.int(7, title="ATR Length for Super Trend")
factorST = input.int(2, title="Factor for Super Trend")

atrValueST = ta.atr(atrLengthST)

var float upperST = na
var float lowerST = na

if (close[1] > upperST[1])
    upperST := close[1] - factorST * atrValueST
else
    upperST := close - factorST * atrValueST

if (close[1] < lowerST[1])
    lowerST := close[1] + factorST * atrValueST
else
    lowerST := close + factorST * atrValueST

// Potential Support and Resistance
potentialSupport = ta.lowest(low, smaLength)
potentialResistance = ta.highest(high, smaLength)

// VWAP
//vwapValue = ta.vwap(close, volume)

// Keltner Signals
buySignalKC = close > upperKC and close[1] <= upperKC[1]
sellSignalKC = close < lowerKC and close[1] >= lowerKC[1]

// Super Trend Signals
buySignalST = close > upperST and close[1] <= upperST[1]
sellSignalST = close < lowerST and close[1] >= lowerST[1]

// Plotting
plot(basisKC, color=color.gray, title="Keltner Channel Basis")
plot(upperKC, color=color.blue, title="Upper Keltner Channel")
plot(lowerKC, color=color.blue, title="Lower Keltner Channel")

plot(upperST, color=color.green, title="Super Trend Upper")
plot(lowerST, color=color.red, title="Super Trend Lower")

plot(potentialSupport, color=color.green, title="Potential Support")
plot(potentialResistance, color=color.red, title="Potential Resistance")

//plot(vwapValue, color=color.orange, title="VWAP")

// Plot Bullish and Bearish arrows
plotarrow(buySignalST ? 1 : na, colorup=color.green, offset=-1, title="Bullish Arrow ST")
plotarrow(sellSignalST ? -1 : na, colordown=color.red, offset=-1, title="Bearish Arrow ST")

plotarrow(buySignalKC ? 1 : na, colorup=color.blue, offset=-1, title="Bullish Arrow KC")
plotarrow(sellSignalKC ? -1 : na, colordown=color.orange, offset=-1, title="Bearish Arrow KC")

// Plot candlesticks
plot(open, color=color.gray)
plot(close, color=bullish ? color.green : bearish ? color.red : color.gray)
plot(high, color=bullish ? color.green : bearish ? color.red : color.gray)
plot(low, color=bullish ? color.green : bearish ? color.red : color.gray)