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

Автор:Чао Чжан, Дата: 2023-12-08 12:20:42
Тэги:

img

Обзор

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

Логика стратегии

Стратегия основана на преимуществах скользящих средних - они устраняют случайность в последовательности цен и извлекают основную тенденцию.

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

В частности, стратегия рассчитывает 7-дневную простую скользящую среднюю (SMA) и 20-дневную простую скользящую среднюю. Когда две средние пересекаются, она определяет обратный тренд и запускает торговый сигнал. Чтобы различить между типами кроссоверов, мы определяем краткосрочную линию, находящуюся выше долгосрочной линии, как восходящую ценовую тенденцию, и наоборот для нисходящей тенденции. Когда краткосрочная линия пересекает выше долгосрочной линии, то есть начало восходящей тенденции, вводится длинная позиция. Когда краткосрочная линия пересекается ниже, то есть начало нисходящей тенденции, вводится короткая позиция.

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

(1) Логика стратегии проста и легко понятна и реализована.

(2) Движущиеся средние в качестве индикаторов отслеживания тренда могут эффективно фильтровать некоторое количество шума в ценах.

(3) Гибкие конфигурации параметров для удовлетворения различных рыночных условий и требований торговли.

(4) Использование двух часто используемых скользящих средних периодов позволяет легко определить четкие торговые сигналы.

(5) Мощная визуализация для интуитивного определения тренда, ключевых уровней и т.д.

(6) Параметры могут быть оптимизированы с помощью обратного тестирования для улучшения доходности стратегии.

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

(1) Стратегия достаточно чувствительна к колебаниям рынка.

(2) Кроссоверы могут не точно определить уровни обратного тренда и могут вызвать неправильные сигналы.

3) Строгие правила не могут адаптироваться к резким событиям, влияющим на рынки, что может привести к огромным потерям.

(4) Неправильные параметры также могут привести к неточным сигналам и пропущенным сделкам.

Для смягчения этих рисков параметры могут быть соответствующим образом скорректированы. Другие показатели могут быть добавлены для подтверждения. Стратегии стоп-лосса могут контролировать потери. Параметры или стратегии могут быть скорректированы в соответствии с рыночными режимами.

Руководство по улучшению

(1) Включение других технических индикаторов для формирования комбинированной стратегии может повысить точность сигнала.

(2) Добавление стратегий стоп-лосса для эффективного контроля потери на одной сделке.

(3) Тестирование и оптимизация периодов скользящих средних. Испытание различных быстрых и медленных комбинаций для поиска лучших параметров. Другие скользящие средние, такие как EMA, WMA, также могут быть проверены.

(4) Настройка параметров на основе различных продуктов и рыночных условий.

Заключение

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


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

//@version=3
strategy("Ma stratégie", overlay=true)

// Multi-timeframe and price input
pricetype = input(close, title="Price Source For The Moving Averages")
useCurrentRes = input(true, title="Use Current Timeframe As Resolution?")
resCustom = input(title="Use Different Timeframe? Then Uncheck The Box Above",  defval="W")
res = useCurrentRes ? timeframe.period : resCustom
price = request.security(syminfo.tickerid, res, pricetype)

// MA period input
shortperiod = input(7, title="Short Period Moving Average")
longperiod = input(20, title="Long Period Moving Average")



short = ema(price, shortperiod) 
long = ema(price, longperiod) 
   
// MA trend direction color
shortcolor = short > short[1] ? lime : short < short[1] ? red : blue
longcolor = long > long[1] ? lime : long < long[1] ? red : blue

// MA output
MA1 = plot(short, title="Short Period Moving Average", style=linebr, linewidth=2, color=shortcolor)
MA2 = plot(long, title="Long Period Moving Average", style=linebr, linewidth=4, color=longcolor)
fill(MA1, MA2, color=silver, transp=50)

// MA trend bar color
TrendingUp() => short > long 
TrendingDown() => short < long 
barcolor(TrendingUp() ? green : TrendingDown() ? red : blue)

// MA cross alert
MAcrossing = cross(short, long) ? short : na
plot(MAcrossing, style = cross, linewidth = 4,color=black)

// MA cross background color alert
Uptrend() => TrendingUp() and TrendingDown()[1]
Downtrend() => TrendingDown() and TrendingUp()[1]
bgcolor(Uptrend() ? green : Downtrend() ? red : na,transp=50)

// Buy and sell alert
Buy = Uptrend() and close > close[1]
Sell = Downtrend() and close < close[1]
plotshape(Buy, color=black, style=shape.arrowup, text="Buy", location=location.bottom)
plotshape(Sell, color=black, style=shape.arrowdown, text="Sell", location=location.top)



if (Buy)
    strategy.entry("My Long Entry Id", strategy.long)


if (Sell)
    strategy.entry("My Short Entry Id", strategy.short)

Больше