La stratégie Momentum Alpha juge si un actif sous-jacent a une dynamique positive en calculant son ratio Sharpe et sa valeur alpha.
Les indicateurs de base de cette stratégie sont le ratio Sharpe et l'alpha. Le ratio Sharpe reflète le rendement ajusté au risque d'un actif, tandis que l'alpha reflète son rendement excédentaire par rapport à l'indice de référence du marché. Lorsque les deux sont positifs, cela indique que l'actif a des rendements élevés ajustés au risque et surpasse l'indice de référence du marché. Par conséquent, une position longue est prise. Lorsque les deux deviennent négatifs, cela signifie que l'élan a disparu et que la position est aplatie.
Plus précisément, la stratégie calcule d'abord le ratio Sharpe au cours des 180 derniers jours. Le ratio Sharpe est calculé comme: (rendement quotidien moyen
En même temps, l'alpha au cours des 180 derniers jours est calculé. Alpha est calculé à travers le modèle de marché: Alpha = Retour d'actif réel
Par conséquent, lorsque le ratio de Sharpe et l'alpha sont positifs, une position longue est prise.
L'avantage majeur de cette stratégie est qu'en évaluant la dynamique, elle permet de saisir les opportunités de croissance du marché plus large et de certaines actions individuelles au cours de certaines périodes, tout en contrôlant les risques pour éviter des chutes de marché prolongées.
Le calcul du ratio Sharpe reflète les conditions de dynamique récentes et peut capturer les tendances à la hausse de certains marchés et actions.
En examinant de manière exhaustive les deux indicateurs à travers différents horizons temporels, la dynamique positive peut être déterminée avec plus de précision.
Lorsque l'élan disparaît, des arrêts de pertes opportuns permettent d'éviter des pertes majeures.
Comparée aux indicateurs de dynamique uniques, cette stratégie est plus stable tout en étant suffisamment flexible pour être utilisée sur les actions et les indices.
Malgré les avantages, la stratégie comporte toujours les risques suivants:
Les indicateurs de dynamique peuvent se rétracter. Lorsque le marché tourne, les stocks de dynamique peuvent chuter rapidement. Cela peut entraîner de grandes pertes. Les paramètres peuvent être ajustés ou combinés avec d'autres indicateurs.
Le ratio Alpha et Sharpe ont des délais. Lorsque les marchés évoluent rapidement, les valeurs des indicateurs peuvent être retardées et ne pas refléter les dernières tendances. La période de calcul pourrait être raccourcie.
Il n'y a pas de contrôle de la taille des positions, ce qui conduit à des risques concentrés.
Les données de rétro-test peuvent être insuffisantes et les performances en direct incertaines. Plus de temps et de rétro-tests d'instruments doivent être effectués. Les fenêtres d'optimisation des paramètres doivent être raccourcies pour éviter un surmonté.
La stratégie peut être optimisée dans les aspects suivants:
Ajoutez des mécanismes d'arrêt des pertes.
Contrôlez le capital par transaction en fonction de la volatilité du marché pour limiter les pertes par transaction.
Optimiser les paramètres. Tester différents délais pour s'adapter aux caractéristiques des différents actifs sous-jacents et aux conditions du marché. Différentes combinaisons de paramètres pourraient également être évaluées.
Ajoutez des conditions de filtrage: définissez des filtres tels que le volume des transactions ou la volatilité pour éviter de vous retrouver coincé dans des situations de liquidité variable ou faible.
Combiner avec d'autres stratégies. Considérer la combinaison avec d'autres stratégies de suivi de tendance. Cela pourrait à la fois améliorer la stabilité et diversifier les risques loin d'une seule stratégie.
La stratégie Momentum Alpha capture dynamiquement les opportunités d'élan en évaluant à la fois les rendements ajustés au risque et la performance relative du marché des actifs. Par rapport aux indicateurs de momentum uniques, elle présente les avantages d'un jugement plus précis, d'une plus grande applicabilité et d'une plus grande résilience au risque.
/*backtest start: 2023-11-15 00:00:00 end: 2023-11-16 04:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Alpha strategy - simple version", overlay=true) //by NIKLAUS //USE ON DAILY TIMEFRAME TO DETECT MOMO STOCKS & ETFs AND TRADE THEM //USE ON 5MIN CHART FOR INTRADAY USAGE //examples to try this on: GER30, NAS100, JPN225, AAPL, IBB, TSLA, FB, etc. //This Strategy goes long when Sharpe Ratio is > 1 and Alpha against the S&P500 is generated. It exits when conditions break away. //https://en.wikipedia.org/wiki/Alpha_(finance) //------------------------------------------------------------------------------------------------------------------------------------ //Alpha is a measure of the active return on an investment, the performance of that investment compared to a suitable market index. //An alpha of 1% means the investment's return on investment over a selected period of time was 1% better than the market during that same period, //an alpha of -1 means the investment underperformed the market. //Alpha is one of the five key measures in modern portfolio theory: alpha, beta, standard deviation, R-squared and the Sharpe ratio. //simplified sharpe src = ohlc4, len = input(180, title = "Sharpe/Alpha/Beta Period") pc = ((src - src[len])/src) std = stdev(src,len) stdaspercent = std/src sharpe = pc/stdaspercent //alpha sym = "BTC_USDT:swap", res=timeframe.period, src2 = close ovr = request.security(sym, res, src2) ret = ((close - close[1])/close) retb = ((ovr - ovr[1])/ovr) secd = stdev(ret, len), mktd = stdev(retb, len) Beta = correlation(ret, retb, len) * secd / mktd ret2 = ((close - close[len])/close) retb2 = ((ovr - ovr[len])/ovr) alpha = ret2 - retb2*Beta //plot(Beta, color=green, style=area, transp=40) smatrig = input(title="Sensitivity", defval=2, minval=1, maxval=3) bgcolor (sma(sharpe,len/smatrig) > 1 and sma(alpha,len/smatrig) > 0 ? green : red, transp=70) if (close > open) and (sma(sharpe,len/smatrig) > 1) and (sma(alpha,len/smatrig) > 0) strategy.entry("Alpha", strategy.long) strategy.close("Alpha", when = (sma(sharpe,len/smatrig) < 1) or (sma(alpha,len/smatrig) < 0))