Стратегия торговли на основе прорыва высоты свечи с несколькими скользящими средними, RSI и выходами по стандартному отклонению


Дата создания: 2024-03-28 16:13:45 Последнее изменение: 2024-03-28 16:13:45
Копировать: 0 Количество просмотров: 671
1
Подписаться
1617
Подписчики

Стратегия торговли на основе прорыва высоты свечи с несколькими скользящими средними, RSI и выходами по стандартному отклонению

Обзор стратегии

Стратегия использует несколько индексов для определения потенциальных возможностей для покупки и продажи, включая скользящие средние (EMA), относительно сильные индексы (RSI) и выходные условия на основе стандартной разницы. Для анализа направления и силы рыночных тенденций используются краткосрочные (6, 8, 12 дней), среднесрочные (5, 55) и долгосрочные (150-200, 250 дней) EMA. RSI использует конфигурируемые пороги покупки (≥30) и продажи (≥70) для оценки динамики и выявления случаев перекупа или перепродажи.

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

  1. Вычислить EMA на несколько циклов (6, 8, 12, 55, 100, 150, 200) в качестве визуального ориентира для оценки рыночных тенденций.
  2. Вычислите самые высокие и самые низкие цены для последних N корневых нитей, в зависимости от количества нитей, введенных пользователем (((3-4).
  3. Условия покупки: текущая цена закрытия выше, чем самая высокая цена последней N-корневой линии, и выше, чем фильтр EMA ((если включен)).
  4. Условия продажи: текущая цена закрытия ниже минимальной цены последней N-корневой линии и ниже фильтра EMA ((если включено)).
  5. Условия выхода на длинную позицию: текущая цена закрытия ниже 12-дневной EMA + 0,5-кратная стандартная разница, или ниже 12-дневной EMA.
  6. Условия выхода на короткую позицию: текущая цена закрытия выше 12-дневной EMA - в 0,5 раза больше стандартной разницы, или выше 12-дневной EMA.
  7. Используя RSI в качестве вспомогательного индикатора, по умолчанию, цикл составляет 14, превышение отметки 30 и превышение отметки 70.

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

  1. Объединение двух измерений отслеживания тенденций (множественные EMA) и динамики (RSI) дает более полный взгляд на анализ рынка.
  2. Уникальный механизм выхода из игры, основанный на стандартной разнице, обеспечивает баланс между защитой прибыли и контролем риска.
  3. Высокий уровень модулизации кода, ключевые параметры могут быть настроены пользователем, высокая гибкость.
  4. Применяется для торговли акциями и биткоинами в различных видах и временных периодах, особенно на солнечной линии.

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

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

Направление оптимизации

  1. Оптимизация параметров EMA и RSI: поиск оптимального диапазона параметров для различных комбинаций параметров в зависимости от разновидности, цикла и рыночных особенностей.
  2. Присоединение к механизму остановки убытков: ссылка на показатели волатильности, такие как ATR, установка разумных остановок и остановок, контроль риска отдельной сделки.
  3. Введение управления позициями: можно регулировать размер позиции в зависимости от силы тренда (например, ADX) или от расстояния от ключевой поддержки и сопротивления.
  4. Использование в сочетании с другими техническими показателями, такими как ленты Брин, MACD, равнолинейный скрещивание, повышает надежность сигналов открытия позиций.
  5. Оптимизация состояния на рынке: комбинация параметров для оптимизации различных состояний рынка, таких как тенденции, колебания и повороты.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Candle Height Breakout with Configurable Exit and Signal Control", shorttitle="CHB Single Signal", overlay=true)

// Input parameters for EMA filter and its length
useEmaFilter = input.bool(true, "Use EMA Filter", group="Entry Conditions")
emaFilterLength = input.int(55, "EMA Filter Length", minval=1, group="Entry Conditions")
candleCount = input.int(4, "SamG Configurable Candle Count for Entry", minval=3, maxval=4, step=1, group="Entry Conditions")
exitEmaLength = input.int(12, "Exit EMA Length", minval=1, group="Exit Conditions", defval=12)
exitStdDevMultiplier = input.float(0.5, "Exit Std Dev Multiplier", minval=0.1, maxval=2.0, step=0.1, group="Exit Conditions")

// State variables to track if we are in a long or short position
var bool inLong = false
var bool inShort = false

// Calculating EMAs with fixed periods for visual reference
ema6 = ta.ema(close, 6)
ema8 = ta.ema(close, 8)
ema12 = ta.ema(close, 12)
ema55 = ta.ema(close, 55)
ema100 = ta.ema(close, 100)
ema150 = ta.ema(close, 150)
ema200 = ta.ema(close, 200)
emaFilter = ta.ema(close, emaFilterLength)
exitEma = ta.ema(close, exitEmaLength)

// Plotting EMAs
plot(ema6, "EMA 6", color=color.red)
plot(ema8, "EMA 8", color=color.orange)
plot(ema12, "EMA 12", color=color.yellow)
plot(ema55, "EMA 55", color=color.green)
plot(ema100, "EMA 100", color=color.blue)
plot(ema150, "EMA 150", color=color.purple)
plot(ema200, "EMA 200", color=color.fuchsia)
plot(emaFilter, "EMA Filter", color=color.black)
plot(exitEma, "Exit EMA", color=color.gray)

// Calculating the highest and lowest of the last N candles based on user input
highestOfN = ta.highest(high[1], candleCount)
lowestOfN = ta.lowest(low[1], candleCount)

// Entry Conditions with EMA Filter
longEntryCondition = not inLong and not inShort and (close > highestOfN) and (not useEmaFilter or (useEmaFilter and close > emaFilter))
shortEntryCondition = not inLong and not inShort and (close < lowestOfN) and (not useEmaFilter or (useEmaFilter and close < emaFilter))

// Update position state on entry
if (longEntryCondition)
    strategy.entry("Buy", strategy.long, comment="B")
    inLong := true
    inShort := false

if (shortEntryCondition)
    strategy.entry("Sell", strategy.short, comment="S")
    inLong := false
    inShort := true

// Exit Conditions based on configurable EMA and Std Dev Multiplier
smaForExit = ta.sma(close, exitEmaLength)
upperExitBand = smaForExit + exitStdDevMultiplier * ta.stdev(close, exitEmaLength)
lowerExitBand = smaForExit - exitStdDevMultiplier * ta.stdev(close, exitEmaLength)

exitConditionLong = inLong and (close < upperExitBand or close < exitEma)
exitConditionShort = inShort and (close > lowerExitBand or close > exitEma)

// Strategy exits
if (exitConditionLong)
    strategy.close("Buy", comment="Exit")
    inLong := false

if (exitConditionShort)
    strategy.close("Sell", comment="Exit")
    inShort := false

// Visualizing entry and exit points
plotshape(series=longEntryCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="Buy Signal", text="B")
plotshape(series=shortEntryCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="Sell Signal", text="S")