В процессе загрузки ресурсов... загрузка...

Стратегия продвинутого входа на основе скользящей средней, поддержки/сопротивления и объема

Автор:Чао Чжан, Дата: 2024-06-14 15:40:46
Тэги:

img

Обзор

Эта стратегия сочетает в себе три технических показателя: простую скользящую среднюю (SMA), уровни поддержки и сопротивления и увеличение объема торговли для построения всеобъемлющей торговой стратегии.

Принцип стратегии

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

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

  1. Объединение нескольких технических показателей повышает надежность и стабильность стратегии.
  2. Учитывая как ценовые прорывы SMA, так и уровни поддержки/сопротивления, можно лучше использовать трендовые возможности.
  3. Введение показателя объема торговли гарантирует, что расхождения цен сопровождаются достаточным участием на рынке, что повышает эффективность сигналов.
  4. Установление условий стоп-лосса эффективно контролирует торговый риск.

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

  1. Расчет уровней поддержки и сопротивления основывается на исторических данных и может потерять свою эффективность при значительных колебаниях рынка.
  2. Индикатор объема торговли может испытывать ненормальные колебания, приводящие к ложным сигналам.
  3. Условия стоп-лосса могут не полностью избежать потерь в экстремальных рыночных ситуациях.

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

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

Резюме

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


/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Advanced Entry Conditions with Support/Resistance, SMA, and Volume", overlay=true)

// Inputs
length = input(20, title="SMA Length")
stopLossPerc = input(1, title="Stop Loss Percentage", type=input.float) / 100
leftBars = input(15, title="Left Bars")
rightBars = input(15, title="Right Bars")
distanceThresh = input(1, title="Distance Threshold from Support/Resistance", type=input.float) / 100

// Calculations
smaValue = sma(close, length)
highUsePivot = fixnan(pivothigh(leftBars, rightBars)[1])
lowUsePivot = fixnan(pivotlow(leftBars, rightBars)[1])

// Volume Calculation
volumeIncrease = volume > volume[1]

// Entry Conditions
longEntryCondition = close[0] > close[1] and close[1] > smaValue and close[0] > smaValue and close[0] > lowUsePivot and close[1] > lowUsePivot and abs(close[0] - highUsePivot) > distanceThresh and volumeIncrease
shortEntryCondition = close[0] < close[1] and close[1] < smaValue and close[0] < smaValue and close[0] < lowUsePivot and close[1] < lowUsePivot and abs(close[0] - highUsePivot) > distanceThresh and volumeIncrease

// Calculate stop loss levels
longStopLoss = close * (1 - stopLossPerc)
shortStopLoss = close * (1 + stopLossPerc)

// Strategy Logic
strategy.entry("Long", strategy.long, when=longEntryCondition)
strategy.exit("Exit Long", "Long", stop=longStopLoss)

strategy.entry("Short", strategy.short, when=shortEntryCondition)
strategy.exit("Exit Short", "Short", stop=shortStopLoss)

// Plotting
plot(smaValue, color=color.blue, title="SMA")
plot(highUsePivot, color=color.red, linewidth=2, title="Resistance")
plot(lowUsePivot, color=color.green, linewidth=2, title="Support")

plotshape(series=longEntryCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Long Entry")
plotshape(series=shortEntryCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Short Entry")

// Background Color
bgcolor(longEntryCondition ? color.new(color.green, 90) : shortEntryCondition ? color.new(color.red, 90) : na)


Больше