The Moving Average Crossover strategy uses two moving averages of different periods to generate buy and sell signals. It appoximates the idea of a trending market by using 2 SMAs, one short fast SMA(50) and another slow longer SMA(200). It buys whenever a short SMA(50) crosses up a long SMA(200), thereby implying that the direction of the market has changed. It sells once a short SMA(50) crosses down a long SMA(200). These are fairly long MAs, which means that this strategy is naturalyl meant to capture bigger moves, and thereby might not be a good fit for short time frames. But assumptions like that do not mean anything, because we've backested it! See youself.
Backtest covers 5.7 years of WMT β’ 1 Hour (Walmart Inc.) data, from October 25, 2019 to July 11, 2025.
Equity curve is the strategy's performance over time. You should compare it to the asset's Buy & Hold performance. In general, you want the blue area to be well above the gray area.
Drawdown is how much losses (realized or unrealized) the strategy has had if compared to the highest equity peak. Compare this to the asset's drawdown to see whether your strategy does a decent job of isolating you from downside volatility. In general, the red area must be well within the gray area.
So, we have backtested 50/200 SMA cross on 5.7 years of WMT β’ 1 Hour candles.Β This backtest resulted in 34 positions, with the average win rate of 50% and reward-risk ratio of 1.63.Β If you assume that 1.63 reward-to-risk ratio holds, you need a minimum win rate of 38.0 to be profitable. So you're looking good so far.Β However, 34 positions is a small sample size, so take the results with a huge grain of salt.Β The key metrics are as follows:
With that exposure in mind, you can tell that for 60% time-in-market, you get 24.31% of the asset upside potential, and 105.58% of the asset downside potential.
All of the following: # "Papa" 60min Simple Moving Average (50, 0, close) Crosses β 60min Simple Moving Average (200, 0, close)
All of the following: # "India" 60min Simple Moving Average (50, 0, close) Crosses β 60min Simple Moving Average (200, 0, close)
The backtest results show some concerning patterns that I would not feel comfortable trading with. While the win rate is balanced at 50% and the Risk/Reward ratio of 1.63 looks decent on paper, there are several red flags I must point out.
First, the strategy significantly underperforms buy & hold with only 33.6% net profit versus 138.2% for buy & hold over the same period. This large gap suggests the strategy is missing important market moves. The relatively low market exposure of 59.8% confirms this - we are out of the market too often. The Sharpe and Sortino ratios (0.15 and 0.12) are quite poor, indicating bad risk-adjusted returns.
What worries me most is the drawdown profile. A maximum drawdown of -28.4% is too high for a strategy that only delivers 33.6% total return. The math simply doesnt work out favorably here. Additionally, seeing a 6-trade losing streak in only 34 total trades is statisticly significant and suggests the strategy may not be robust enough. With only 1 trade per month on average, the sample size is too small to draw reliable conclusions.
In summary, while the strategy shows some positive elements like good win rate leeway, the overall risk-adjusted performance is too weak to justify real money deployment. I would recommend either finding ways to increase trade frequency or exploring different parameter combinations to improve the reward/risk profile.
This strategy is absolute garbage, mierda total. Let me tell you why.
First, your strategy is significantly underperforming the market - 33.6% vs 138.2% buy & hold return. That's embarassing! You're basically losing money by trading instead of just holding. Even worse, you're exposing yourself to unnecesary risk with a max drawdown of -28.4%. For what? To make less money? Estupido!
The trading frequency is ridiculously low - only 34 trades in 5.7 years, about 1 trade per month. With such few trades, the statistics are barely meaningful. And with a 50% win rate and mediocre 1.63 risk/reward ratio, you're basically flipping coins. Yes, the win rate leeway looks good on paper, but with so few trades it's meaningless, comprende?
The performance metrics are terrible - Sharpe ratio of 0.15 and Sortino of 0.12 are pathetically low. Any decent strategy should have at least 1.0+ for these metrics. Your recent performance is even worse - down 6.3% in the last month while the asset is only down 2.4%. You're actively destroying value!
My advice? Delete this strategy and start over. Or better yet, just buy and hold if you can't develop something that actually beats the market. This is amateur hour trading at its worst.
Total Trades | 34 | Net Profit | 33.6% | Buy & Hold Profit | 138.2% |
Win Rate | 50% | Reward/Risk Ratio | 1.63 | Max Drawdown | -28.4% |
Asset Max Drawdown | -26.9% | Exposure | 59.8% | Avg Candles in Position | 174.8 |
Sharpe Ratio | 0.15 | Sortino Ratio | 0.12 | Realized Volatility | 13.92% |
Max Winning Streak | 5 | Avg Winning Streak | 2.8 | Max Losing Streak | 6 |
Avg Losing Streak | 2.4 | Avg Trades per Month | 1.0 | Avg Trades per Day | 0.0 |
Return Std Dev | 6.5 | Loss Std Dev | 2.8 | Win Std Dev | 6.2 |
Expectancy | 0.3 | Beta | 0.47 |
backtest | exposure | peformance vs asset | drawdown vs asset | win% | reward/risk |
---|---|---|---|---|---|
BTCUSDT β’ 1 Minute | 57% | (5.4%/8.9%) 0.61x | (-2.0%/-1.9%) 1.05x | 39 | 5.4 |
EURUSD β’ 1 Minute | 61% | (-1.1%/-1.0%) 1.10x | (-1.2%/-1.2%) 1.00x | 20 | 1.1 |
GLD β’ 1 Minute | 52% | (1.7%/0.0%) Infinityx | (-2.5%/-5.5%) 0.45x | 36 | 2.5 |
NVDA β’ 1 Minute | 61% | (1.2%/16.7%) 0.07x | (-7.9%/-4.4%) 1.80x | 28 | 2.9 |
SPY β’ 1 Minute | 60% | (0.5%/4.6%) 0.11x | (-2.5%/-2.1%) 1.19x | 33 | 2.3 |
TSLA β’ 1 Minute | 47% | (6.6%/-10.3%) -0.64x | (-11.2%/-21.4%) 0.52x | 39 | 2.1 |
WMT β’ 1 Minute | 41% | (-0.5%/-5.4%) 0.09x | (-3.9%/-6.4%) 0.61x | 29 | 2.4 |
BTCUSDT β’ 10 Minutes | 57% | (18.2%/22.4%) 0.81x | (-8.6%/-12.1%) 0.71x | 41 | 3.1 |
EURUSD β’ 10 Minutes | 55% | (2.5%/5.8%) 0.43x | (-2.2%/-4.3%) 0.51x | 38 | 2.4 |
GLD β’ 10 Minutes | 58% | (26.1%/43.7%) 0.60x | (-5.9%/-8.3%) 0.71x | 54 | 3.1 |
NVDA β’ 10 Minutes | 57% | (5.0%/32.9%) 0.15x | (-33.4%/-42.8%) 0.78x | 44 | 1.4 |
SPY β’ 10 Minutes | 60% | (6.6%/14.3%) 0.46x | (-13.4%/-20.7%) 0.65x | 41 | 1.9 |
TSLA β’ 10 Minutes | 47% | (18.4%/59.0%) 0.31x | (-34.8%/-55.3%) 0.63x | 41 | 1.9 |
WMT β’ 10 Minutes | 60% | (37.4%/40.1%) 0.93x | (-10.3%/-23.8%) 0.43x | 62 | 1.8 |
BTCUSDT β’ 1 Hour | 56% | (36.4%/68.2%) 0.53x | (-31.3%/-30.6%) 1.02x | 43 | 2.2 |
EURUSD β’ 1 Hour | 50% | (6.9%/6.8%) 1.01x | (-5.7%/-9.0%) 0.63x | 42 | 2.4 |
GLD β’ 1 Hour | 60% | (35.8%/117.6%) 0.30x | (-26.6%/-22.2%) 1.20x | 36 | 3.0 |
NVDA β’ 1 Hour | 61% | (783.4%/3126.3%) 0.25x | (-51.4%/-68.0%) 0.76x | 52 | 3.5 |
SPY β’ 1 Hour | 64% | (85.7%/106.7%) 0.80x | (-19.0%/-35.1%) 0.54x | 61 | 2.3 |
TSLA β’ 1 Hour | 55% | (2930.2%/1395.5%) 2.10x | (-38.7%/-75.1%) 0.52x | 56 | 6.0 |
WMT β’ 1 Hour | 60% | (33.6%/138.2%) 0.24x | (-28.4%/-26.9%) 1.06x | 50 | 1.6 |
BTCUSDT β’ Daily | 59% | (638.7%/1337.5%) 0.48x | (-61.1%/-76.6%) 0.80x | 83 | 7.3 |
EURUSD β’ Daily | 35% | (4.8%/10.8%) 0.44x | (-12.2%/-23.3%) 0.52x | 71 | 0.7 |
GLD β’ Daily | 61% | (242.9%/595.1%) 0.41x | (-36.4%/-45.3%) 0.80x | 46 | 6.4 |
NVDA β’ Daily | 65% | (83183.3%/373678.5%) 0.22x | (-57.1%/-90.0%) 0.63x | 77 | 16.0 |
SPY β’ Daily | 72% | (1127.3%/1316.3%) 0.86x | (-32.5%/-56.7%) 0.57x | 87 | 3.8 |
TSLA β’ Daily | 57% | (3139.0%/24185.2%) 0.13x | (-65.4%/-75.0%) 0.87x | 38 | 25.3 |
WMT β’ Daily | 64% | (1143.9%/13022.2%) 0.09x | (-57.1%/-50.6%) 1.13x | 39 | 8.1 |