Стратегия перекрестной торговли EMA

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

img

Обзор

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

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

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

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

Преимущества

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

Кроме того, он фиксирует изменения тренда как в краткосрочных, так и в долгосрочных сроках, используя классический технический индикатор пересечения 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)

Больше