Стратегия торговли по тренду на основе CCI и EMA


Дата создания: 2023-11-02 15:17:22 Последнее изменение: 2023-11-02 15:17:22
Копировать: 0 Количество просмотров: 963
1
Подписаться
1617
Подписчики

Стратегия торговли по тренду на основе CCI и EMA

Обзор

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

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

  1. Расчет показателя CCI. Показатель CCI определяет, насколько цена акции в настоящее время перекуплена или перепродана, исходя из отклонения цены закрытия от средней за последние 20 дней. Формула: ((типическая цена - 20-дневная SMA) / (0.015 * стандартная разница между типичной ценой и 20-дневным средним значением).

  2. Показатель CCI обрабатывается сглаживанием EMA, получается CCI-EMA кривая, чтобы уменьшить колебания показателя CCI и сделать сигнал более четким.

  3. Установите точки купли и продажи CCI. Когда CCI-EMA пересекает точки купли, делайте больше; когда CCI-EMA пересекает точки продажи, делайте пустое.

  4. Держите позицию до тех пор, пока CCI-EMA не коснется точки купли или продажи.

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

  1. Используя CCI для определения направления рыночных тенденций, в сочетании с EMA-фильтрацией ложных сигналов, можно эффективно отслеживать рыночные тенденции.

  2. Индекс CCI чрезвычайно чувствителен к ценам и может быстро улавливать обратный тренд. Индекс EMA снижает уровень ложных сообщений. Используя их вместе, можно использовать возможности на начальном этапе тренда.

  3. Применение стратегии трендового отслеживания позволяет максимально сократить количество сделок, снизить их стоимость и снизить потери.

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

Анализ стратегических рисков

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

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

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

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

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

  1. Оптимизация параметров CCI, проверка эффективности параметров различных длинных циклов.

  2. Оптимизация параметров EMA для поиска оптимальной длины цикла EMA.

  3. Испытание различных комбинаций параметров точек купли-продажи, чтобы найти оптимальные параметры.

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

  5. Добавлена функция автоматической оптимизации параметров для автоматического поиска оптимальных комбинаций параметров в зависимости от разных сортов.

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

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

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

//@version=4
strategy("CCI with EMA Strategy", overlay=false, pyramiding=1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.07)

length = input(20, minval=1)
src = input(close, title="Source")
cciSellPoint = input(0, title = 'CCI Sell Point', type = input.integer) 
cciBuyPoint = input(0, title = 'CCI Buy Buy Point', type = input.integer) 
lengthcci = input(12,"length cci ema", minval=1)

ma = sma(src, length)
cci = (src - ma) / (0.015 * dev(src, length))
cciema=ema(cci,lengthcci)
plot(cci, "CCI", color=#996A15)
plot(cciSellPoint, title = 'CCI  Sell Point', color = color.red, linewidth = 1, style = plot.style_cross, transp = 35)
plot(cciBuyPoint, title = 'CCI Buy Point', color = color.green, linewidth = 1, style = plot.style_cross, transp = 35)
plot(cciema, title = 'CCI EMA', color = color.green, linewidth = 1, transp = 35)
band1 = hline(100, "Upper Band", color=#C0C0C0, linestyle=hline.style_dashed)
band0 = hline(-100, "Lower Band", color=#C0C0C0, linestyle=hline.style_dashed)
fill(band1, band0, color=#9C6E1B, title="Background")

startLongTrade=  cciema >cciBuyPoint 
startShortTrade= cciema <cciSellPoint

//exitLong = cciema <cciSellPoint
//exitShort = cciema >cciBuyPoint 

strategy.entry("long",strategy.long, when = startLongTrade )
//strategy.close( "long", when=exitLong)
strategy.entry("short",strategy.short,when=startShortTrade )
//strategy.close("short", when=exitShort)