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


Дата создания: 2024-01-22 17:34:05 Последнее изменение: 2024-01-22 17:34:05
Копировать: 0 Количество просмотров: 689
1
Подписаться
1617
Подписчики

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

Обзор

Эта стратегия использует комбинацию динамических индикаторов и средних линий для идентификации рыночных тенденций и поворотных точек, а также для торговли в момент изменения тенденции. Она относится к стратегии отслеживания тенденций и противоположного торговли. Основная часть стратегии состоит из модулей, таких как зоны спроса и предложения, средние линии EMA, различные маркировки HH, LL, LH и HL, а также ATR Stop Loss.

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

1. Определение зоны спроса и предложения

В зависимости от диапазона высоких и низких точек K-линии различаются отношения спроса и предложения. Красные зоны - зоны избыточного предложения, зеленые зоны - зоны спроса, превышающего предложение.

2. Тенденционное суждение EMA

Вычислить среднюю линию EMA длиной 200 и нарисовать ее, чтобы определить плюсовую тенденцию по отношению цены к величине EMA. Цены выше EMA рассматриваются как тенденция к росту, а цены ниже EMA - как тенденция к снижению.

3. Маркировка многопространственных зон

Обратная зона, основанная на двух последних высоких и низких точках на линии K:

  • HH (Higher High) 2 последовательных K-линейных высоты
  • LL (Lower Low) 2 последовательных K-линейных минимума
  • LH-область ((Lower High area) Последний 1 K-линейный пик - инновационный пик, второстепенный K-линейный пик - обратный, относится к отпадному пику
  • HL-область ((Higher Low-область) Последнее 1-ое низкое значение K-линии - инновационное низкое, второе низкое значение K-линии - обратное, относится к восходящему низкому значению

4. Прекращение слежения ATR

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

5. Вход и выход с убытком

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

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

  1. Использование различных показателей для выявления тенденций и ключевых реверсионных зон повышает вероятность получения прибыли.
  2. ATR эффективно контролирует риск одиночных потерь.
  3. Задержка входа определяет эффективные сигналы и уменьшает вероятность ошибочных сделок.

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

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

Решение риска:

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

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

  1. В сочетании с другими техническими показателями, такими как MACD, RSI и т. д., для определения времени вступления.
  2. Испытание комбинаций различных циклических и коэффициентных параметров для поиска оптимальных параметров.
  3. Можно рассмотреть возможность добавления фильтра для предотвращения блокировки сигнала.
  4. Динамическая оптимизация параметров методов, таких как машинное обучение.

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

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

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

//@version=5
strategy("Supply and Demand Zones with EMA and Trailing Stop", shorttitle="SD Zones", overlay=true)

showBuySignals = input(true, title="Show Buy Signals", group="Signals")
showSellSignals = input(true, title="Show Sell Signals", group="Signals")
showHLZone = input(true, title="Show HL Zone", group="Zones")
showLHZone = input(true, title="Show LH Zone", group="Zones")
showHHZone = input(true, title="Show HH Zone", group="Zones")
showLLZone = input(true, title="Show LL Zone", group="Zones")

emaLength = input(200, title="EMA Length", group="EMA Settings")
atrLength = input(14, title="ATR Length", group="Trailing Stop")
atrMultiplier = input(2, title="ATR Multiplier", group="Trailing Stop")

// Function to identify supply and demand zones
getZones(src, len, mult) =>
    base = request.security(syminfo.tickerid, "D", close)
    upper = request.security(syminfo.tickerid, "D", high)
    lower = request.security(syminfo.tickerid, "D", low)
    multiplier = request.security(syminfo.tickerid, "D", mult)
    zonetype = base + multiplier * len
    zone = src >= zonetype
    [zone, upper, lower]

// Identify supply and demand zones
[supplyZone, _, _] = getZones(close, high[1] - low[1], 1)
[demandZone, _, _] = getZones(close, high[1] - low[1], -1)

// Plot supply and demand zones
bgcolor(supplyZone ? color.new(color.red, 80) : na)
bgcolor(demandZone ? color.new(color.green, 80) : na)

// EMA with Linear Weighted method
ema = ta.ema(close, emaLength)

// Color code EMA based on its relation to candles
emaColor = close > ema ? color.new(color.green, 0) : close < ema ? color.new(color.red, 0) : color.new(color.yellow, 0)

// Plot EMA
plot(ema, color=emaColor, title="EMA")

// Entry Signal Conditions after the third candle
longCondition = ta.crossover(close, high[1]) and (bar_index >= 2)
shortCondition = ta.crossunder(close, low[1]) and (bar_index >= 2)

// Trailing Stop using ATR
atrValue = ta.atr(atrLength)
trailStop = close - atrMultiplier * atrValue

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("TrailStop", from_entry="Buy", loss=trailStop)

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("TrailStop", from_entry="Sell", loss=trailStop)

// Plot Entry Signals
plotshape(series=showBuySignals ? longCondition : na, title="Buy Signal", color=color.new(color.green, 0), style=shape.triangleup, location=location.belowbar)
plotshape(series=showSellSignals ? shortCondition : na, title="Sell Signal", color=color.new(color.red, 0), style=shape.triangledown, location=location.abovebar)

// Plot Trailing Stop
plot(trailStop, color=color.new(color.red, 0), title="Trailing Stop")

// Plot HH, LL, LH, and HL zones
plotshape(series=showHHZone and ta.highest(high, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HH Zone", color=color.new(color.blue, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showLLZone and ta.lowest(low, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LL Zone", color=color.new(color.blue, 80), style=shape.triangledown, location=location.belowbar)
plotshape(series=showLHZone and ta.highest(high, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LH Zone", color=color.new(color.orange, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showHLZone and ta.lowest(low, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HL Zone", color=color.new(color.orange, 80), style=shape.triangledown, location=location.belowbar)