Кама и движущийся средний основанный на тренде после стратегии

Автор:Чао Чжан, Дата: 2024-02-06 09:53:22
Тэги:

img

Обзор

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

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

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

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

  3. Когда быстрая линия проходит через медленную линию снизу, идите длинной. когда быстрая линия проходит через медленную линию сверху, идите короткой. так что суждение о тренде и отслеживание завершено.

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

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

  1. Стратегия объединяет в себе индикаторы движущейся средней и движущейся средней Kama, чтобы сделать относительно точные суждения о тенденциях на рынке и достичь тенденции с сильной способностью контроля снижения.

  2. Движущаяся средняя Kama более чувствительна к шуму рынка и может заранее обнаружить точки обратного движения тренда.

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

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

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

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

  2. Не установление стоп-лосса может привести к большим потерям в экстремальных рыночных условиях.

  3. Неправильные настройки параметров также могут привести к ошибкам в оценке.

Советы по оптимизации

  1. Подумайте о добавлении индикатора ATR для установки стоп-потери.

  2. Испытать влияние различных значений параметров на стратегию возврата, чтобы найти оптимальные параметры.

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

  4. Построить систему самоадаптивной и динамической оптимизации параметров для автоматической оптимизации параметров

Резюме

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


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//synapticex.com
kamaPeriod = input(8, minval=1) 
ROCLength=input(4, minval=1) 

kama(length)=>
    volatility = sum(abs(close-close[1]), length)
    change = abs(close-close[length-1])
    er = iff(volatility != 0, change/volatility, 0)
    sc = pow((er*(0.666666-0.064516))+0.064516, 2)
    k = nz(k[1])+(sc*(hl2-nz(k[1])))
    

n=input(title="period",defval=7)

n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?lime:red
ma=plot(n1,color=c, linewidth = 3)
plot(cross(nma, nma1) ? nma : na, style = cross, color = c, linewidth = 5)
    
kamaEntry = request.security(syminfo.tickerid,timeframe.period,kama(kamaPeriod))

plot(kamaEntry, color=gray, title="Kama",transp=0, trackprice=false, style=line)


strategy("Kama VS HeikinAshi", overlay=true, pyramiding=0, calc_on_every_tick=true, calc_on_order_fills=true)

buyEntry =  n1 > n2
sellEntry = close < kamaEntry and n1 < n2 

buyExit = close < kamaEntry and n1 < n2
sellExit = n1 > n2 
if (buyEntry)
    strategy.entry("KAMAL", strategy.long, comment="KAMAL")
else
    strategy.close("KAMAL", when=buyExit)

if (sellEntry)
    strategy.entry("KAMAS", strategy.short, comment="KAMAS")
else
    strategy.close("KAMAS", when = sellExit)



Больше