Backtesting Introduction

On this page, the backtesting approaches and results are presented. All backtesting results start from January 1st, 2018, if available; otherwise, the earliest possible date is used. The backtesting is conducted in a fully mechanical manner, based solely on the signals generated by the trading strategy. Therefore, there is no room for emotional trading decisions.

Results Summary

The backtesting results are summarized in this section.

Buy & Hold Approach:
\begin{tabular}{|l|r|r|r|r|r|}\hline\textbf{Asset} & \textbf{Invested} & \textbf{Gain in \%} & \textbf{Gain in \$} & \textbf{End Balance} & \textbf{Max. Drawdown} \\ \hline\textbf{BTC} & \$10,000 & 706\% & \$70,590 & \$80,590 & -74.46\% \\ \hline\textbf{ETH} & \$10,000 & 401\% & \$40,142 & \$50,142 & -89.62\% \\ \hline\textbf{SOL} & \$10,000 & 25474\% & \$2,574,376 & \$2,557,376 & -95.66\% \\ \hline\end{tabular}

DCA Approach:
\begin{tabular}{|l|r|r|r|r|r|}\hline\textbf{Asset} & \textbf{Invested} & \textbf{Gain in \%} & \textbf{Gain in \$} & \textbf{End Balance} & \textbf{Max. Drawdown} \\ \hline\textbf{BTC} & \$10,000 & 691\% & \$69,124 & \$79,124 & -69.91\% \\ \hline\textbf{ETH} & \$10,000 & 744\% & \$74,374 & \$84,374 & -76.46\% \\ \hline\textbf{SOL} & \$10,000 & 2948\% & \$294,848 & \$304,848 & -95.44\% \\ \hline\end{tabular}

Strategy Approach:
\begin{tabular}{|l|r|r|r|r|r|}\hline\textbf{Asset} & \textbf{Invested} & \textbf{Gain in \%} & \textbf{Gain in \$} & \textbf{End Balance} & \textbf{Max. Drawdown} \\ \hline\textbf{BTC} & \$10,000 & 30208\% & \$3,020,821 & \$3,030,821 & -47.19\% \\ \hline\textbf{ETH} & \$10,000 & 53758\% & \$5,375,840 & \$5,385,840 & -43.23\% \\ \hline\textbf{SOL} & \$10,000 & 14311\% & \$1,431,176 & \$1,441,176 & -38.98\% \\ \hline\end{tabular}

Trading Fees

For realistic backtesting results, it is essential to consider trading fees. Since the strategy uses Spot-trading as well as Futures-trading, Maker-, Taker-, and Funding-fees apply. Additionally, worst case taxes need to be assumed.

\begin{tabular}{|l|r|}\hline\textbf{Taker Fee} & 0.05 \% \\ \hline\textbf{Maker Fee} & 0.05 \% \\ \hline\textbf{Funding Fee (per 8h-Interval)} & 0.01 \% \\ \hline\textbf{Taxes} & 45.00 \% \\ \hline\end{tabular}

For the backtesting, all fees are applied, also to Spot-trades. Hence, the total fees provide a potential upper bound. The resulting gains show a potential lower bound, respectively.

To provide an example, consider a Futures long-trade with a position size of $3,000 comprised out of a 3x leverage and a $1,000 balance. The trade runs for 60 days.

Maker- and Taker-fees:
 F_{Maker} = F_{Taker} = 0.05 \% \cdot \$3,000 = \$1.50

Funding Fees:
 60 \; days \cdot 24 \; h = 1440 \; h
 \frac{1440 \; h}{\left(\frac{8 \; h}{Interval}\right)} = 180 \; Intervals
 F_{Funding} = 180 \; Intervals \cdot 0.01 \frac{\%}{Interval} \cdot \$3,000 = \$54.00

Total Fees:
F_{Total} = F_{Maker} + F_{Taker} + F_{Funding} = \$1.50 + \$1.50 + \$54.00 = \$57.00

For this example, the total fees amount to $57.00. It is seen that the Funding-fees contribute significantly to the total fees. Hence, it is inevitable to consider all fees for the backtesting. Taxes are assumed once a year, if the PnL exceeded $1000 for that year. If the PnL is smaller than $1000 or if the PnL is negative for a certain year, no taxes are subtracted.

Backtested Approaches

In this section, the different approaches used for backtesting are presented.

Buy & Hold Backtest

The simplest approach is just lump sum at the beginning and hold. This approach is applied to the three assets BTC, ETH and SOL. It assumes an investment of $10,000 in the beginning, that is January 1st, 2018 for BTC and ETH and May 1st, 2020 for SOL. The results for this approach are shown in the table below.

\begin{tabular}{|l|r|r|r|r|r|}\hline\textbf{Asset} & \textbf{Invested} & \textbf{Gain in \%} & \textbf{Gain in \$} & \textbf{End Balance} & \textbf{Max. Drawdown} \\ \hline\textbf{BTC} & \$10,000 & 706\% & \$70,590 & \$80,590 & -74.46\% \\ \hline\textbf{ETH} & \$10,000 & 401\% & \$40,142 & \$50,142 & -89.62\% \\ \hline\textbf{SOL} & \$10,000 & 25474\% & \$2,574,376 & \$2,557,376 & -95.66\% \\ \hline\end{tabular}

A comment on the DCA approach: The results for SOL look very good in terms of total return. Nevertheless, it is highly unlikely to catch an asset at such an early stage. Therefore, these results should be interpreted with caution. Additionally, the maximum drawdown is unacceptably high.

DCA Backtest

One common investing approach is Dollar-Cost Averaging (DCA). At defined time intervals, a fixed amount of an asset is purchased — for example, investing $1,000 each month into an ETF. This strategy helps reduce the risk of buying at a local top, as might happen with a lump-sum investment. Nevertheless, the analysis in this and the following sections will show that, for single-asset investments, the potential reward can be significantly higher when timing the market compared to using DCA.

Assuming a time-span from January 1st, 2018 until November 1st, 2025, the BTC price for each first day of a new month were:
\begin{tabular}{|l|r|r|r|r|r|r|r|r|}\hline\textbf{~} & \textbf{2018} & \textbf{2019} & \textbf{2020} & \textbf{2021} & \textbf{2022} & \textbf{2023} & \textbf{2024} & \textbf{2025} \\ \hline\textbf{Jan.} & \$13,657 & \$3,844 & \$7,200 & \$29,374 & \$47,687 & \$16,625 & \$44,167 & \$94,420 \\ \hline\textbf{Feb.} & \$9,171 & \$3,488 & \$9,393 & \$33,537 & \$38,743 & \$23,724 & \$43,076 & \$100,656 \\ \hline\textbf{Mar.} & \$10,951 & \$3,860 & \$8,562 & \$49,631 & \$44,355 & \$23,647 & \$62,441 & \$86,032 \\ \hline\textbf{Apr.} & \$6,844 & \$4,158 & \$6,607 & \$59,096 & \$46,282 & \$28,411 & \$69,702 & \$85,169 \\ \hline\textbf{May} & \$9,119 & \$5,403 & \$8,865 & \$57,828 & \$38,469 & \$28,092 & \$58,254 & \$96,492 \\ \hline\textbf{Jun.} & \$7,541 & \$8,564 & \$10,167 & \$36,685 & \$29,799 & \$26,820 & \$67,707 & \$105,652 \\ \hline\textbf{Jul.} & \$6,386 & \$10,583 & \$9,228 & \$33,572 & \$19,269 & \$30,590 & \$62,852 & \$105,698 \\ \hline\textbf{Aug.} & \$7,625 & \$10,400 & \$11,760 & \$39,975 & \$23,314 & \$29,676 & \$65,358 & \$113,320 \\ \hline\textbf{Sep.} & \$7,193 & \$9,758 & \$11,970 & \$48,847 & \$20,127 & \$25,801 & \$57,325 & \$109,251 \\ \hline\textbf{Oct.} & \$6,590 & \$8,343 & \$10,619 & \$48,117 & \$19,312 & \$27,984 & \$60,837 & \$118,649 \\ \hline\textbf{Nov.} & \$6,378 & \$9,261 & \$13,737 & \$61,004 & \$20,485 & \$35,437 & \$69,482 & \$110,064 \\ \hline\textbf{Dec.} & \$4,215 & \$7,424 & \$18,803 & \$57,230 & \$16,967 & \$38,689 & \$97,280 & --- \\ \hline\end{tabular}
There were 95 investments.

For all backtests a total investment of \$10,000 is assumed. Hence, in the DCA approach,  \frac{\$10,000}{95 \; months} = \$105.26 per month in case of BTC. For each month, one can calculate the amount of BTC purchased:

 BTC_{month\_n} = \frac{AmountInvested_{month\_n}}{PriceBtc_{month\_n}}

From this the accumulated amount of BTC is calculated. In the end, the total accumulated amount is multiplied with the current BTC price which results in the total account balance. Considering the BTC price as of November 1st, 2025 of $110,064, this results in an overall gain of 691%. In conclusion, having invested $105 per month since January 1st, 2018 resulted in a gain of 691%. The total investment of $10,000 would have become approx. $79,000. Since the DCA approach is traded without leverage, only Taker-fees would apply. Note that fees are not considered in the DCA approach which is in favor of the DCA approach.

The same concept is applied to the assets ETH and SOL.

ETH:
\begin{tabular}{|l|r|r|r|r|r|r|r|r|}\hline\textbf{~} & \textbf{2018} & \textbf{2019} & \textbf{2020} & \textbf{2021} & \textbf{2022} & \textbf{2023} & \textbf{2024} & \textbf{2025} \\ \hline\textbf{Jan.} & \$773 & \$141 & \$131 & \$730 & \$3770 & \$1201 & \$2352 & \$3354 \\ \hline\textbf{Feb.} & \$1037 & \$108 & \$184 & \$1369 & \$2792 & \$1642 & \$2304 & \$3118 \\ \hline\textbf{Mar.} & \$872 & \$136 & \$219 & \$1565 & \$2972 & \$1663 & \$3435 & \$2217 \\ \hline\textbf{Apr.} & \$380 & \$142 & \$136 & \$1977 & \$3450 & \$1814 & \$3505 & \$1905 \\ \hline\textbf{May} & \$674 & \$161 & \$214 & \$2946 & \$2828 & \$1832 & \$2970 & \$1839 \\ \hline\textbf{Jun.} & \$580 & \$265 & \$247 & \$2634 & \$1824 & \$1862 & \$3813 & \$2536 \\ \hline\textbf{Jul.} & \$454 & \$294 & \$231 & \$2114 & \$1060 & \$1925 & \$3440 & \$2406 \\ \hline\textbf{Aug.} & \$421 & \$218 & \$385 & \$2562 & \$1635 & \$1872 & \$3202 & \$3488 \\ \hline\textbf{Sep.} & \$295 & \$172 & \$477 & \$3835 & \$1586 & \$1628 & \$2428 & \$4314 \\ \hline\textbf{Oct.} & \$231 & \$177 & \$353 & \$3308 & \$1312 & \$1734 & \$2449 & \$4351 \\ \hline\textbf{Nov.} & \$199 & \$184 & \$396 & \$4325 & \$1580 & \$1847 & \$2512 & \$3874 \\ \hline\textbf{Dec.} & \$119 & \$151 & \$587 & \$4587 & \$1276 & \$2087 & \$3711 & --- \\ \hline\end{tabular}
There were 95 investments.

SOL:
\begin{tabular}{|l|r|r|r|r|r|r|r|r|}\hline\textbf{~} & \textbf{2018} & \textbf{2019} & \textbf{2020} & \textbf{2021} & \textbf{2022} & \textbf{2023} & \textbf{2024} & \textbf{2025} \\ \hline\textbf{Jan.} & --- & --- & --- & \$1.84 & \$178.52 & \$9.98 & \$109.51 & \$193.87 \\ \hline\textbf{Feb.} & --- & --- & --- & \$4.61 & \$109.98 & \$24.99 & \$97.85 & \$213.79 \\ \hline\textbf{Mar.} & --- & --- & --- & \$14.96 & \$98.65 & \$22.51 & \$129.99 & \$143.68 \\ \hline\textbf{Apr.} & --- & --- & --- & \$19.08 & \$134.43 & \$20.98 & \$192.57 & \$126.68 \\ \hline\textbf{May} & --- & --- & \$0.73 & \$49.51 & \$89.67 & \$21.99 & \$134.63 & \$150.85 \\ \hline\textbf{Jun.} & --- & --- & \$0.58 & \$30.99 & \$40.27 & \$20.50 & \$166.03 & \$157.78 \\ \hline\textbf{Jul.} & --- & --- & \$0.83 & \$33.40 & \$32.80 & \$18.68 & \$146.60 & \$146.93 \\ \hline\textbf{Aug.} & --- & --- & \$1.53 & \$34.25 & \$41.79 & \$24.00 & \$167.67 & \$162.88 \\ \hline\textbf{Sep.} & --- & --- & \$4.34 & \$111.03 & \$31.59 & \$19.33 & \$128.69 & \$197.11 \\ \hline\textbf{Oct.} & --- & --- & \$2.86 & \$161.68 & \$32.47 & \$23.84 & \$145.29 & \$221.68 \\ \hline\textbf{Nov.} & --- & --- & \$1.60 & \$203.55 & \$32.25 & \$41.46 & \$166.26 & \$186.38 \\ \hline\textbf{Dec.} & --- & --- & \$1.98 & \$229.80 & \$13.48 & \$59.80 & \$237.07 & --- \\ \hline\end{tabular}
There were 67 investments.

For the three assets shown above, the DCA approach leads to a gain as shown in the table below.
\begin{tabular}{|l|r|r|r|r|r|}\hline\textbf{Asset} & \textbf{Invested} & \textbf{Gain in \%} & \textbf{Gain in \$} & \textbf{End Balance} & \textbf{Max. Drawdown} \\ \hline\textbf{BTC} & \$10,000 & 691\% & \$69,124 & \$79,124 & -69.91\% \\ \hline\textbf{ETH} & \$10,000 & 744\% & \$74,374 & \$84,374 & -76.46\% \\ \hline\textbf{SOL} & \$10,000 & 2948\% & \$294,848 & \$304,848 & -95.44\% \\ \hline\end{tabular}

Strategy Backtest

The backtesting results derived from the applied trading strategy are presented in this section. As all trades were held for less than one year, the resulting profits are subject to taxation. The tax assumptions are based on the German taxation framework, applying an approximate upper tax rate of 45%, as outlined previously. In principle, taxes become relevant only when annual gains exceed a defined exemption threshold. However, for the sake of simplification — and to provide a conservative lower bound for net performance—taxes are applied as soon as any profits are realized.

In contrast to the DCA approach, funding fees are applicable and have been incorporated into the overall performance calculations. The total return and maximum drawdown are highly sensitive to the assumed loss threshold per trade. In the baseline configuration, a 7.5% loss limit per trade is employed, which can be regarded as relatively aggressive. Given that the three assets (BTC, ETH, and SOL) are each allocated 33% of the total account balance, a single trade corresponds to a potential maximum loss of approximately 2.5% relative to the total balance. Nevertheless, if three trades are executed simultaneously, the cumulative loss in the worst-case scenario could amount to 7.5% of the total account balance.

To compute the account balance and gains/losses over time, the following calculations are made.

Leverage:
 Leverage = \frac{7.5\%}{\%\_to\_StopLoss}

Total Gain in %:
 Gain\_in\_\%_{total} = Leverage \cdot Gain\_in\_\%_{no\_leverage}

Amount used for Trade:
 TradeAmount = AccountBalance \cdot 33\%

Position Size:
 PositionSize = TradeAmount \cdot Leverage

Net Gain:
 NewAccountBalance = AccountBalance + TradeAmount \cdot Gain\_in\_\%_{total} - PositionSize \cdot \left( TakerFee + MakerFee + FundingFee \cdot TradeDuration_{days} \cdot 3 \right)

Again, an example is used to demonstrade the calculations. Let’s assume an account balance of $10,000 of which 33% are used for the trade. A winning trade with a gain of 15 % is assumed. The %-to-Stop-Loss value is 3 %. The trade was opened for 50 days.

First, the leverage is calculated as follows:
 Leverage = \frac{7.5\%}{\%\_to\_StopLoss} = \frac{7.5\%}{3\%} = 2.5

The amount used for the trade is:
 TradeAmount = AccountBalance \cdot 33\% = \$10,000 \cdot 33 \% = \$3,333

The total gain in % considering the previously calculated leverage is:
 Gain\_in\_\%_{total} = Leverage \cdot Gain\_in\_\%_{no\_leverage} = 2.5 \cdot 15\% = 37.5\%

The position size amounts to:
 PositionSize = TradeAmount \cdot Leverage = \$3,333 \cdot 2.5 = \$8,333

The resulting new account balance is:
 NewAccountBalance = AccountBalance + TradeAmount \cdot Gain\_in\_\%_{total} - PositionSize \cdot \left( TakerFee + MakerFee + FundingFee \cdot TradeDuration_{days} \cdot 3 \right) = \$10,000 + \$3,333 \cdot 37.5\% - \$8,333 \cdot \left( 0.05 \% + 0.05 \% + 0.01 \% \cdot 50 \; days \cdot 3 \right) = \$10,000 + \$1,250 - $133 = \$11,117

From the calculations shown above, the trade resulted in a gross gain of $1,250. $133 in fees had to be paid which leads to a net gain of $1,117. Since compounding is used for the backtests, the new account balance of $11,117 would be considered for the next trade.

The complete backtesting results and the formulas applied in the tables can be found at https://tradingbuysignal.com/backtesting-results/. Based on the backtesting results, the strategy approach leads to a gain as shown in the table below. The initial balance is set to $10,000. Other than in the example, the full account is used for the trades, to be able to compare them to the DCA-approach.
\begin{tabular}{|l|r|r|r|r|r|}\hline\textbf{Asset} & \textbf{Invested} & \textbf{Gain in \%} & \textbf{Gain in \$} & \textbf{End Balance} & \textbf{Max. Drawdown} \\ \hline\textbf{BTC} & \$10,000 & 30208\% & \$3,020,821 & \$3,030,821 & -47.19\% \\ \hline\textbf{ETH} & \$10,000 & 53758\% & \$5,375,840 & \$5,385,840 & -43.23\% \\ \hline\textbf{SOL} & \$10,000 & 14311\% & \$1,431,176 & \$1,441,176 & -38.98\% \\ \hline\end{tabular}