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

Автор:Чао Чжан, Дата: 2023-11-02 15:17:22
Тэги:

img

Обзор

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

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

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

  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)

Больше