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

Автор:Чао Чжан, Дата: 2023-12-27 17:04:33
Тэги:

img

Обзор

Стратегия перекрестного использования индикатора импульса - это торговый подход, основанный на сочетании сигналов экспоненциальной скользящей средней (EMA) и индекса относительной силы (RSI).

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

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

Для фильтрации ложных сигналов стратегия также определяет два дополнительных условия:bodybar1 > bodybar2иclose > entrybar(для сигнала покупки) илиclose < entrybarЭто гарантирует, что последние две свечи соответствуют направлению сигнала, и цена проходит через точку входа, чтобы избежать избыточного входа.

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

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

Преимущества этой стратегии включают:

  1. Просты и удобны в использовании, пользователям не нужно понимать сложные показатели.
  2. Гибкий размер позиций на основе процента инвестированного капитала.
  3. Скрещивание EMA в сочетании с фильтром RSI улучшает надежность сигнала.
  4. Ясная логика торговли, легко понять и адаптировать.

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

Риски этой стратегии включают:

  1. Кроссоверы EMA не могут полностью фильтровать шум рынка и могут легко генерировать ложные сигналы.
  2. Фиксированные линии EMA не могут адаптироваться к изменениям рынка в режиме реального времени.
  3. Никакая логика стоп-лосса не может контролировать одиночные потери.
  4. Условия фильтра RSI слишком просты, возможно, упускают возможности.

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

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

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

Заключение

Стратегия пересечения индикатора импульса объединяет сильные стороны EMA и RSI и формирует торговые сигналы на основе пересечения индикаторов. Стратегия проста и практична, подходит для новичков, а также может быть расширена и оптимизирована в соответствии с реальными потребностями для улучшения эффективности стратегии. При строгом управлении рисками стратегия обещает стабильные избыточные доходы.


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('EMA Crossover Strategy', shorttitle='EMA Crossover', overlay=true)


// Define input for position size as a percentage of equity
position_size_pct = input(1, title='Position Size (%)') / 100

//Input EMA
len1 = input.int(25, minval=1, title='EMA 1')
src1 = input(close, title='Source')
ema1 = ta.ema(src1, len1)
len2 = input.int(100, minval=1, title='EMA 2')
src2 = input(close, title='Source')
ema2 = ta.ema(src2, len2)
len3 = input.int(200, minval=1, title='EMA 3')
src3 = input(close, title='Source')
ema3 = ta.ema(src3, len3)
//End of format

//Format RSI
lenrsi = input(14, title='RSI length')
outrsi = ta.rsi(close,lenrsi)
//plot(outrsi, title='RSI', color=color.new(color.blue, 0), linewidth=1)

//hline(70, 'Overbought', color=color.red)
//hline(30, 'Oversold', color=color.green)
//End of format


bodybar1 = math.abs(close - open)
bodybar2 = math.abs(close[1] - open[1])
// Plot the EMAs
plot(ema1, color=color.new(color.blue, 0), title='EMA 1')
plot(ema2, color=color.new(color.red, 0), title='EMA 2')
//plot(ema3, color=color.new(#ffffff, 0), title='EMA 3')

// EMA Crossover conditions
emaCrossoverUp = ta.crossover(ema1, ema2)
emaCrossoverDown = ta.crossunder(ema1, ema2)

var entrybar = close  // Initialize entrybar with the current close


// Calculate crossovers outside of the if statements
emaCrossoverUpOccured = ta.crossover(close, ema1) and ema1 > ema2 and bodybar1 > bodybar2 and close > entrybar
emaCrossoverDownOccured = ta.crossunder(close, ema1) and ema1 < ema2 and bodybar1 > bodybar2 and close < entrybar

plotshape(series=emaCrossoverUpOccured, location=location.abovebar, color=color.new(color.green, 0), style=shape.triangleup, title='New Buy Order', size=size.tiny)
plotshape(series=emaCrossoverDownOccured, location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, title='New Sell Order', size=size.tiny)

// Define trading logic with custom position size and RSI conditions
if emaCrossoverUp or emaCrossoverUpOccured
    strategy.entry('Buy', strategy.long)
    entrybar := close  // Update entrybar when entering a new buy position
    entrybar

if emaCrossoverDown or emaCrossoverDownOccured
    strategy.entry('Sell', strategy.short)
    entrybar := close  // Update entrybar when entering a new sell position
    entrybar



Больше