Strategy vault / Trend following
Kama and Moving Average Based Trend Following Strategy
The core idea of this strategy is to identify market trends by combining Kama moving average and moving average indicators to achieve trend following. When the Kama moving average and moving average have a golden…

Overview
The core idea of this strategy is to identify market trends by combining Kama moving average and moving average indicators to achieve trend following. When the Kama moving average and moving average have a golden cross, it is judged that an uptrend has begun and long position is taken. When the Kama moving average and moving average have a death cross, it is judged that a downtrend has begun and short position is taken.
Strategy Logic
Calculate Kama moving average. Kama moving average is a trend-following indicator that is more sensitive to market noise and can be used to determine price trends.
Calculate moving averages. Two moving averages are computed here, one is a faster double exponential moving average, the other is a normal weighted moving average.
When the fast line breaks through the slow line from below, go long. When the fast line breaks down through the slow line from above, go short. So the trend judgment and tracking is completed.
After taking positions, exit when price breaks through the Kama line to achieve trend following exit.
Advantages
The strategy combines Kama moving average and moving average indicators to make relatively accurate judgments on market trends and achieve trend following with strong drawdown control capability.
Kama moving average is more sensitive to market noise and can detect trend reversal points in advance.
The moving average combination judgment is clear and easy to understand.
The strategy has large parameter optimization space and the parameters can be adjusted and optimized for different varieties and trading instruments.
Risk Analysis
There is still possibility of misjudgment when Kama moving average and moving average combination judges market trend. Other indicators are needed to verify.
No stop loss setting may lead to larger losses in extreme market conditions.
Inappropriate parameter settings can also cause judgment errors. Parameters need to be adjusted according to different varieties.
Optimization Suggestions
Consider adding ATR indicator for stop loss setting.
Test the impact of different parameter values on strategy return to find the optimal parameters.
Consider adding other indicators for verification, such as the oscillator indicator, to improve judgment accuracy.
Build parameter self-adaptive and dynamic optimization framework for automatic parameter optimization.
Summary
The overall idea of this strategy is clear, using Kama moving average and moving average golden cross and death cross to determine and follow trends with strong drawdown control capability. Through parameter tuning and optimization, good results can be obtained. But there is still room for improvement. By adding more verification indicators and stop loss modules, the stability and profitability of the strategy can be further enhanced.
Parameters
| Name | Default | What it controls |
|---|---|---|
| v_input_1 | 8 | kamaPeriod |
| v_input_2 | 4 | ROCLength |
| v_input_3 | 7 | period |
Source Pine Script
/*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)
Published by ChaoZhang on the FMZ strategy square · last modified 2024-02-06. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.
Build this with AgenKit
A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Kama-and-Moving-Average-Based-Trend-Following-Strategy.md- npx agenkit install engineering-kit in your project
- Paste the command into your agent and approve each phase
- Get tests, backtest, risk controls and a paper-trading switch
Understand it first
Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.
Related specs
- ATR Dynamic Trend Following and EMA Crossover Trading StrategyPine Script · Trend following · 1d
- Dual EMA Filtered ATR Adaptive Trend Following StrategyPine Script · Trend following · 1h
- ATR RSI Enhanced Trend Following Trading SystemPine Script · Trend following
- DPO EMA Trend Crossover Quantitative Strategy ResearchPine Script · Trend following · 1d
- Dynamic ATR Trailing Stop with EMA Cross Combination StrategyPine Script · Trend following · 2h
- Dynamic Moving Average Tracking Strategy 433137Pine Script · Trend following · 1d