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


Дата создания: 2023-12-12 17:09:24 Последнее изменение: 2023-12-12 17:09:24
Копировать: 0 Количество просмотров: 705
1
Подписаться
1621
Подписчики

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

Обзор

Мобильная среднелинейная кросс-стратегия является простой и эффективной количественной торговой стратегией. Эта стратегия использует индикатор движущейся средней (EMA) и сигналы среднелинейной кросс-стратегии для идентификации движения цены, определения времени покупки и продажи. По сравнению с другими более сложными стратегиями, она более проста, легка в использовании, легка в понимании и реализации.

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

Ключом к этой стратегии является использование двух различных параметров EMA. EMA1 устанавливается на 25 дней, EMA2 - на 100 дней. Когда краткосрочная EMA пересекает длинную EMA снизу, это сигнал к покупке; когда краткосрочная EMA пересекает длинную EMA снизу, это сигнал к продаже. Таким образом, краткосрочная EMA отражает краткосрочные тенденции и динамику цен, а длинная EMA отражает длительные тенденции цен.

Для фильтрации ошибочных сигналов в стратегии также установлены некоторые дополнительные условия. Например, требуется, чтобы солнечный свет столба был отрицательным, требуется, чтобы пересечение происходило, когда RSI больше 50, и т. Д. Это позволяет избежать ошибочных сделок из-за кратковременного шума.

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

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

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

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

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

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

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

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

Рекомендации по оптимизации

Эта стратегия может быть оптимизирована в сочетании с другими показателями, такими как KDJ, MACD и т. Д., Используя больше факторов для определения времени покупки и продажи, чтобы уменьшить ошибочные сигналы.

Кроме того, можно тестировать различные параметры, чтобы найти оптимальную комбинацию циклов EMA. Можно также скорректировать параметры фильтрации, чтобы учитывать частоту и стабильность торгов.

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

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

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

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

//@version=5
strategy('EMA Crossover Signal', shorttitle='EMA Crossover Signal', 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)
//End of format

//Format RSI
lenrsi = input(14, title='RSI length')
outrsi = ta.rsi(close,lenrsi)

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')

// 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)

if emaCrossoverUpOccured
    strategy.entry("Enter Long", strategy.long)
else if emaCrossoverDownOccured
    strategy.entry("Enter Short", strategy.short)