Основная идея этой стратегии заключается в том, чтобы определить рыночные тенденции путем объединения движущейся средней и движущейся средней индикаторов Камы для достижения следующего тренда. Когда движущаяся средняя и движущаяся средняя Камы имеют золотой крест, считается, что начался восходящий тренд и занята длинная позиция. Когда движущаяся средняя и движущаяся средняя Камы имеют смертельный крест, считается, что начался нисходящий тренд и занята короткая позиция.
Вычислите скользящую среднюю Kama. Кользящая средняя Kama - это индикатор, следующий за трендом, который более чувствителен к шуму рынка и может быть использован для определения тенденций цен.
Вычислите скользящие средние. Здесь вычисляются две скользящие средние, одна из которых является более быстрой двойной экспоненциальной скользящей средней, а другая - нормальной взвешенной скользящей средней.
Когда быстрая линия проходит через медленную линию снизу, идите длинной. когда быстрая линия проходит через медленную линию сверху, идите короткой. так что суждение о тренде и отслеживание завершено.
После занятия позиций, выйдите, когда цена прорвется через линию Камы, чтобы достичь тренда после выхода.
Стратегия объединяет в себе индикаторы движущейся средней и движущейся средней Kama, чтобы сделать относительно точные суждения о тенденциях на рынке и достичь тенденции с сильной способностью контроля снижения.
Движущаяся средняя Kama более чувствительна к шуму рынка и может заранее обнаружить точки обратного движения тренда.
Суждение о сочетании скользящих средних ясно и легко понятно.
Стратегия имеет большое пространство для оптимизации параметров, и параметры могут быть скорректированы и оптимизированы для различных сортов и торговых инструментов.
Существует еще возможность ошибочного суждения, когда комбинация движущейся средней и движущейся средней Kama оценивает тенденцию рынка.
Не установление стоп-лосса может привести к большим потерям в экстремальных рыночных условиях.
Неправильные настройки параметров также могут привести к ошибкам в оценке.
Подумайте о добавлении индикатора ATR для установки стоп-потери.
Испытать влияние различных значений параметров на стратегию возврата, чтобы найти оптимальные параметры.
Подумайте о добавлении других показателей для проверки, таких как индикатор осциллятора, для улучшения точности суждения.
Построить систему самоадаптивной и динамической оптимизации параметров для автоматической оптимизации параметров
Общая идея этой стратегии ясна, используя движущийся средний 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)