(function(){
var CN = 'menthorq_utm_params';
var LK = 'menthorq_utm_params';
var UK = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content','utm_id'];
var CK = ['gclid','fbclid','msclkid','ttclid','twclid'];
var CD = 30;
var AK = UK.concat(CK);function sC(n,v,d){var e=new Date(Date.now()+d*864e5).toUTCString();var c=n+'='+encodeURIComponent(v)+';expires='+e+';path=/;SameSite=Lax';if(location.protocol==='https:')c+=';Secure';document.cookie=c;}
function gC(n){var m=document.cookie.match(new RegExp('(?:^|; )'+n+'=([^;]*)'));return m?decodeURIComponent(m[1]):'';}
function sv(d){var j=JSON.stringify(d);sC(CN,j,CD);try{localStorage.setItem(LK,j);}catch(e){}}
function hk(o){if(!o)return false;for(var i=0;i<AK.length;i++)if(o[AK[i]])return true;return false;}
function nm(d){if(!d)return null;if(d.first)return d;if(hk(d))return{first:d,last:d};return null;}
function ld(){var r=gC(CN);if(r){try{var n=nm(JSON.parse(r));if(n)return n;}catch(e){}}try{var s=localStorage.getItem(LK);if(s){var n=nm(JSON.parse(s));if(n)return n;}}catch(e){}return null;}
function mg(p,n){var o={};if(p)for(var k in p)o[k]=p[k];for(var k in n)o[k]=n[k];return o;}var ps = new URLSearchParams(window.location.search);
var fd = {}, has = false;
for (var i = 0; i < AK.length; i++) {
var v = ps.get(AK[i]);
if (v) { fd[AK[i]] = v; has = true; }
}// Click-ID synthesis: when only a click-id is present (no utm_source), derive
// utm_source/utm_medium so downstream analytics groups under the right channel.
var SY = {
gclid: ['google', 'cpc'],
fbclid: ['facebook', 'cpc'],
msclkid: ['bing', 'cpc'],
ttclid: ['tiktok', 'cpc'],
twclid: ['twitter', 'cpc']
};
if (has && !fd.utm_source) {
for (var sk in SY) {
if (fd[sk]) { fd.utm_source = SY[sk][0]; fd.utm_medium = SY[sk][1]; break; }
}
}if (has) {
fd.captured_at = new Date().toISOString();
var ex = ld();
// Last-touch: merge new fields ON TOP of previous last (preserva campi pregressi)
var newLast = ex && ex.last ? mg(ex.last, fd) : fd;
// First-touch: se ex.first ha almeno un UTM, e' completo e sticky.
// Se ex.first esiste ma e' click-id-only (orphan), completa con i campi nuovi.
// Se ex.first non esiste, usa fd come first.
var newFirst;
if (ex && ex.first) {
var firstHasUtm = false;
for (var i = 0; i < UK.length; i++) if (ex.first[UK[i]]) { firstHasUtm = true; break; }
newFirst = firstHasUtm ? ex.first : mg(ex.first, fd);
} else {
newFirst = fd;
}
sv({first: newFirst, last: newLast});
return;
}var raw = gC(CN);
if (raw) {
try {
var p = JSON.parse(raw);
if (!p.first && hk(p)) sv({first: p, last: p});
} catch(e) {}
return;
}try {
var s = localStorage.getItem(LK);
if (s) { var n = nm(JSON.parse(s)); if (n) sv(n); }
} catch(e) {}
})();
var breeze_prefetch = {"local_url":"https://menthorq.com","ignore_remote_prefetch":"1","ignore_list":["/account/","/login/","/thank-you/","/wp-json/openid-connect/userinfo","wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
The Momentum Strategy is a systematic trading approach designed to select and trade sector ETFs based on momentum shifts. The strategy aims to capture short-term market trends by selecting ETFs with the strongest increasing momentum.
Q-Score Momentum Model
The Q-Score Momentum Model reflects the underlying trend strength of an asset. Our proprietary quant models analyze price action and technical indicators to determine whether an asset exhibits bullish or bearish momentum.
A higher momentum score suggests strong positive price action, while a lower score indicates weakness or potential downside pressure. Traders can use this score to align their positions with prevailing market trends. Our model assigns a score ranging from 0 to 5:
Identify the ETF with the highest difference between today’s momentum score and the momentum score 5 days ago.
Only consider ETFs with a positive difference (i.e., increasing momentum).
If multiple ETFs have the same momentum difference, select the one with the lowest standard deviation of returns over the past 3 months.
Buy at the market open.
Exit Conditions:
Sell at the market open the next day unless the same ETF remains the top pick.
If no ETFs meet the conditions, no position is taken.
Trading Costs:
A commission of $2 per trade is applied (total of $4 per round trip).
Backtesting Period:
January 1, 2014 – January 31, 2025
Initial Capital:
$100,000
Performance Summary
Now let’s look at the historical backtest of this strategy and look at the performance versus the Benchmark (S&P 500 Index).
Momentum Strategy for ETF Trading 21
Now let’s look at some Key Metrics.
Momentum Strategy for ETF Trading 22
We can also look at the return distribution across years comparing this with the SPX.
The Momentum Strategy outperforms the SPX in cumulative return and CAGR, showing strong long-term performance.
It has a higher Sharpe and Sortino ratio, indicating better risk-adjusted returns.
The strategy exhibits stability with lower drawdowns compared to SPX.
Momentum Strategy for ETF Trading 23
And finally let’s look at the distribution of returns by month historically.
Momentum Strategy for ETF Trading 24
Sensitivity to Initial Capital
The strategy was tested with varying capital levels to evaluate its robustness. Larger capital allocations help mitigate the negative effects of commission costs, leading to more stable and consistent performance over time. Performance across different capital allocations is detailed below.
Momentum Strategy for ETF Trading 25
Join us today
Access daily Market Research and our interactive Dashboard. Make better trading decisions.