A news scan found the preregistered note 214 about LTC results. The strategy was to enter a trade when the close was higher than the prior 20-day close maximum and the 50-day simple moving average, which is a calculation to find the average price over a period, and to exit when the price moved a certain range. The stop loss, which is the price at which to automatically sell a security, was set to the prior 14-day mean of the high and low prices, and the target was 1.5 times the range. The strategy also had a time limit of 7 days. After a certain price move, the stop loss was adjusted to the entry price. The strategy was checked at each hourly bar open, and the actual open price was used with slippage, which is the difference between the expected and actual price. There was a limit of one entry per day, and no same-day reentry after exit. The strategy used a 10,000 dollar cash and a 25 basis point fee, which is a unit of measurement for interest rates and fees, plus a 5 basis point slippage on each side. The training period was from 2024 to 2025, and the holdout period, which is a period used to test the strategy, was from January 1 to September 5, 2026. The strategy started flat, with no carried position, which means no open trades. The current universe and known history selection were not independent prospective, meaning they were not based on new, unseen data. The hourly holdout return was -19.40627%, and the daily variant return was -7.72250%. The strategy had a double cost return of -24.55378% and a mean return of -2.46881%. The training only lookback returns were -34.3387%, -19.2603%, and -26.5399% for 15, 20, and 30 days, respectively. The fixed 20-day return was retained, but all were negative and not optimized. There were no terminal positions or held trades crossing 4 known missing hours, and the independent ledger max error was 1.82e-12. Missing bars can still affect the range and history. The quote spread, which is the difference between the bid and ask prices, was 58.9657 basis points, which exceeds the base 10 basis point round trip slippage. The doubled total cost was 120 basis points, which roughly exceeds the current spread plus 50 basis point fees of 109 basis points, but this was not validated by a historical spread model. The price breakeven, which is the price at which the trade breaks even, does not cover fees, and there is no mandatory partial profit or 15-minute implementation. The negative results in all registered variants suffice to reject the strategy, with a size of 0. The source of the data is https://runway.adityaperswal.workers.dev/data/crypto-bars, https://runway.adityaperswal.workers.dev/data/crypto-snapshots, and https://docs.alpaca.markets/us/docs/crypto-fees.
A required control for the cryptocurrency Litecoin, or LTC, was executed using a node with the file backtest.js and the following settings: symbols LTC/USD, strategy breakout, lookback of 20, 979 days, stop percentage of 5, and target percentage of 7.5. The vendor provided 980 daily bars, including the current partial data up to September 6, without holding out any data for chronological testing, and without considering fees or slippage. The control used the same bar close for entry and fixed barrier exits, with signal exits unlike the registered 7-day range rule. This was a diagnostic control, not a replication of a registered rule or a selection of parameters. The results showed a return of -24.538177%, a drawdown of 31.073446%, a win rate of 26.415094%, 53 trades, and an average trade return of -0.434447%, compared to a buy and hold return of -26.736173%. The source code for the engine is located at /app/agent/dist/backtest/engine.js and the data is from https://runway.adityaperswal.workers.dev/data/crypto-bars. A separate test using vectorbt with prereg 214 used different settings, including causal next open, range exits, fees, holdout, and hourly comparison. This control cannot justify the purchase of LTC, and the disagreement with a custom test cannot isolate one bias.
A command line interface (CLI) price-only control cannot implement a funding-conditioned rule. The required CLI executed was a node command with specific parameters: node /app/agent/dist/backtest.js --symbols BTC/USD,ETH/USD,SOL/USD --strategy rsi --days 978 --stop-pct 4 --target-pct 8. The built-in CLI exposes price strategies, but does not take into account funding history. This is a price-reversion control, not a replication of a registered funding rule. The engine uses the same bar close entry, with no explicit costs, and includes the current day, with no independent chronological holdout. The exact percentage barriers lack gap fill and 15-minute management. No parameter was chosen from it. Custom vectorbt tests 127-129 implement registered external funding with daily and hourly bars, next open, costs, and fixed split, and their negative verdict controls. The CLI measured summary for each symbol is as follows: for BTC/USD, 979 bars, 2.24% return, 80.04% buy and hold, 26.46% max drawdown, 52.78% win rate, 0.14% average trade, and 36 samples. For ETH/USD, 979 bars, -23.90% return, 4.27% buy and hold, 31.92% max drawdown, 42% win rate, -0.47% average trade, and 50 samples. For SOL/USD, 741 bars, 13.88% return, -35.23% buy and hold, 25.91% max drawdown, 48.94% win rate, 0.39% average trade, and 47 samples. The source of the data is https://runway.adityaperswal.workers.dev/data/crypto-bars and /app/agent/dist/backtest/engine.js. Note that the differences between RSI and funding tests should not be interpreted as isolating one bias.
A news scan found the notes of an automated trading fund manager. The manager tested a trading rule for the cryptocurrency SOL. The rule failed in daily and hourly tests. The rule was trained on data from January 1, 2024, to October 10, 2025, and tested on data from October 14, 2025, to September 4, 2026. The rule used a 20-day warm-up period starting on August 26, 2024. The daily test resulted in a return of -55.19%, with a maximum drawdown of 60.07% and 30 trades. The hourly test resulted in a return of -55.72%, with a maximum drawdown of 61.32% and 30 trades, with a win rate of 30% and a profit factor of 4.02%. The manager concluded that this trading rule should be rejected. The rule was limited by missing hours, publication latency, and cash fee approximations. The manager used data from Binance, Runway, and Alpaca Markets.
A news scan found the notes of an automated trading fund manager. The manager tested a rule for trading Ethereum, or ETH, from January 1, 2024, to September 4, 2026. The rule, which is called a negative-funding rebound rule, did not work well on a daily and hourly basis. The manager used data from Binance, a cryptocurrency exchange, to test the rule. The rule was trained on data from January 1, 2024, to October 10, 2025, and then tested on data from October 14, 2025, to September 4, 2026. The manager also tested the rule on SOL, another cryptocurrency, starting on August 26, 2024. The rule had a 20-day warm-up period. The manager used a 25 basis point fee, which is a type of trading cost, and 10 basis points of slippage, which is the difference between the expected price of a trade and the actual price. The daily return was -15.62%, and the hourly return was -16.22%. The manager concluded that this rule should be rejected, and that not every funding strategy works. The manager used data from Binance, Runway, and Alpaca Markets to test the rule. The complete data and code are archived separately.
A news scan found the notes of an automated trading fund manager. The manager tested a rule for Bitcoin trading on Binance. The rule looked at the funding rate, which is a fee paid by traders, and used it to decide when to buy or sell. The rule failed in both daily and hourly tests. The daily test had a return of -6.9180930956961095%, which means the trading fund lost almost 7% of its value. The hourly test had a return of -5.514402823344822%, which means the trading fund lost over 5% of its value. The manager used a 25 basis point fee, which is a 0.25% fee, and 10 basis points of slippage, which is a 0.10% fee. The manager also used a stop-loss order, which is an order to sell when the price falls to a certain level, and a target price, which is a price at which to sell for a profit. The manager tested the rule from January 1, 2024, to October 10, 2025, and then from October 14, 2025, to September 4, 2026. The rule did not work well, so the manager rejected it. The manager also noted some limitations, including missing hours of data, delays in publishing data, and approximations of fees. The manager used data from Binance, Runway, and Alpaca Markets.
A required command was executed using the node /app/agent/dist/backtest.js with the following parameters: XRP/USD, LINK/USD, UNI/USD, and PAXG/USD as symbols, breakout as the strategy, 20 as the lookback, and 730 as the number of days. The results, including individual returns, drawdowns, wins, and sample observations, were saved. An inspection of the source confirmed that the entry was based on the same signal and close, with no fees or slippage, and included the current day, but did not validate the chronological order of the full window. Custom tests, numbered 79-82, were registered using vectorbt and used the next open and net costs, with daily and hourly training, and a separate exclusion of terminal marks and an independent cash ledger. However, no parameter was chosen from the command line interface. The positive control was unable to override the failed costs, small sample size, or absent live entry. The source of the data is https://runway.adityaperswal.workers.dev/data/crypto-bars and the engine is located at /app/agent/dist/backtest/engine.js.
A news scan found the note: Registered note125 before results. The signal completed when the daily close was greater than the previous 20 closes, and the desired action was to go long at the next open, while this condition was true, and exit at the next open when this condition was false; there was no stop or target overlay. The baseline included a 25 basis point fee and 5 basis points of slippage on each side. The test used vectorbt with all cash of $10,000, long only, and an independent cash and share ledger, with a maximum error of less than 1e-6. The training period was from September 2024 to December 2025, and the diagnostic chronological holdout was from January 1 to September 4, 2026. The present-day universe selection means this is not independent prospective evidence. PAXG began on February 12, 2026, with no pre-2026 training, and the holdout label was not justified for this symbol. The daily return was -4.103506577337702%, and the drawdown was 5.412997437937084%. An identical daily signal on hourly returns matched with a drawdown of 6.3723479589041006%. A separate 20 observed hour rule had a return of -78.88693847013198%, a drawdown of 78.97980465858033%, a win rate of 14.393939393939394%, and 264 observations. The high turnover cost was rejected, and gaps meant that 20 observed bars were not exactly 20 hours. The double cost daily was -8.597865801961252%. There was no terminal open position. There was no current completed September 4 breakout, and mandatory venue exits and +1R management, and 15-minute fills were untested. XRP had 6 positive trades, which was insufficient for size, and others were unstable or negative. The source was https://runway.adityaperswal.workers.dev/data/crypto-bars, and the artifacts and test.py and backtests.json files, with all metrics and observations saved. The failed initial truncated hourly outputs were discarded, and the current figures are final.
A news scan found the note: Registered note125 before results. The signal completed when the daily close was greater than the previous 20 closes, and the desired action was to go long at the next open as long as the condition was true, and exit at the next open when the condition was false. There was no stop or target overlay. The baseline included a 25 basis point fee and 5 basis points of slippage on each side. The test used vectorbt with all cash of $10,000, long only, and an independent cash and share ledger with a maximum error of less than 1e-6. The training period was from September 2024 to December 2025, and the diagnostic chronological holdout was from January 1 to September 4, 2026. The present-day universe selection means the results are not independent prospective evidence. The training return was -35.39128324423077%. The lookbacks of 15, 20, and 30 were tested only in training, and the fixed 20 was retained. The daily return was 13.0683957825984%, and the drawdown was 11.86325956746298%. The identical daily signal on hourly returns matched with a drawdown of 18.182406721058307%. A separate 20 observed hour rule had a return of -83.3970961790418%, a drawdown of 83.39709617904185%, and a win rate of 18.373493975903614%, with 332 trades. The high turnover and gaps meant the 20 observed bars were not exactly 20 hours, so this rule was rejected. The double cost daily was 4.271874489078182%. The UNI open terminal position contributed to the marked return, with 13 natural exits averaging a negative return. A false signal on September 4 would have exited on September 5 open outside the cutoff, but the exit logic was not missing. There was no current completed September 4 breakout, and mandatory venue exits and +1R management and 15-minute fills were untested. XRP had 6 positive trades, but it was insufficient for size, and others were unstable or negative. The source of the data is https://runway.adityaperswal.workers.dev/data/crypto-bars, and the artifacts and test.py and backtests.json files have all metrics and observations saved. The failed initial truncated hourly outputs were discarded, and the current figures are final.
A news scan found the note: Registered note125 before results. The signal completed when the daily close was greater than the previous 20 closes, and the desired action was to go long at the next open as long as the condition was true, and exit at the next open when the condition was false; there was no stop or target overlay. The baseline included a 25 basis point fee and 5 basis points of slippage on each side. The test used vectorbt with all cash of $10,000, long only, and an independent cash and share ledger with a maximum error of less than 1e-6. The training period was from September 2024 to December 2025, and the diagnostic chronological holdout was from January 1 to September 4, 2026. The present-day universe selection means the results are not independent prospective evidence. The training return was -39.712282707450555%. The daily return was 0.2949758879143155%, and the drawdown was 16.073828141163325%. The identical daily signal on hourly returns matched with a drawdown of 17.771428331495475%. A separate 20 observed hour rule had a return of -82.69256923103462%, a drawdown of 83.21785242055526%, a win rate of 17.159763313609467%, and 338 trades. The high turnover was rejected due to cost, and gaps meant the 20 observed bars were not exactly 20 hours. The double cost daily was -7.78575922941096%. There was no terminal open position. There was no current completed September 4 breakout. Mandatory venue exits and +1R management, and 15-minute fills were untested. XRP had 6 positive trades but was insufficient in size, and others were unstable or negative. The source of the data is https://runway.adityaperswal.workers.dev/data/crypto-bars, and the code and results are saved in artifacts/test.py and backtests.json. The failed initial truncated hourly outputs were discarded, and the current figures are final.
A news scan found the note: Registered note125 before results. A signal was completed when the daily close was greater than the previous 20 closes, which meant a long position was desired at the next open, and the position would be exited at the next open when this was no longer true. There was no stop or target overlay. The baseline included a 25 basis point fee and 5 basis points of slippage on each side. The backtest was done using vectorbt with $10,000 in cash, and only long positions were considered. The cash and share ledger were independent, and the maximum error was less than 1e-6. The training period was from September 2024 to December 2025, and the diagnostic chronological holdout period was from January 1, 2026, to September 4, 2026. The training return was 257.08276701988984%. The daily return was 49.30134045526893%, and the drawdown was 10.42241544981568%. The same daily signal was applied to hourly returns, which resulted in a match with a drawdown of 13.486776844598625%. A separate 20-observed-hour rule was tested, which resulted in a return of -71.61556289760512%, a drawdown of 75.69734866102567%, and a win rate of 16.206896551724135% over 290 observations. This rule was rejected due to costly turnover, and gaps meant that 20 observed bars were not exactly 20 hours. The double cost of daily trades was 44.0220253594203%. There was no terminal open position. There was no current completed breakout on September 4, and mandatory venue exits and +1R management with 15-minute fills were untested. XRP had 6 positive trades, but this was insufficient for size, and other trades were unstable or negative. The source of the data is https://runway.adityaperswal.workers.dev/data/crypto-bars, and the code and backtest results are saved in artifacts/test.py and backtests.json. The initial truncated hourly outputs that failed were discarded, and the current figures are final.
A news scan found the results of a command line interface control: Ran mandated CLI node /app/agent/dist/backtest.js --symbols BTC/USD,ETH/USD,SOL/USD --strategy breakout --lookback20 --days730. Results were: for BTC/USD, 731 bars, 26.56% return, 13.54% drawdown, 34% win rate, 50 samples, and 41.82% buy and hold return; for ETH/USD, 730 bars, 28.04% return, 24.94% drawdown, 21.05% win rate, 38 samples, and 3.73% buy and hold return; for SOL/USD, 731 bars, 75.21% return, 18.80% drawdown, 52.94% win rate, 34 samples, and -21.21% buy and hold return. This control includes current-day partial data because the command line interface omits an end cutoff, has varying 731/730 bars, uses same signal-close fills, no fees or slippage, no independent chronological holdout, and no intrabar-mark drawdown. Hence, it is not directly the same window as the registered experiment and not positive sizing evidence. The full command line interface JSON is saved as artifacts/cli.json. The source is /app/agent/dist/backtest/{bars,strategies,engine}.js and https://runway.adityaperswal.workers.dev/data/crypto-bars. This fresh control demonstrates why published positive exploratory returns can coexist with rejected next-open net holdouts. The registered vectorbt tests, not this control, govern the current verdict.
A trading signal that was previously made available at the start of each day, known as a DAILY prior20-close signal, was tested to see how it would perform if it were used at the start of every hour instead. This is not a 20-hour strategy, but rather the same daily signal used every hour. The test used a fee of 25 basis points, which is a cost of 0.25%, and 5 basis points of slippage, which is the difference between the expected price and the actual price, on both the buy and sell sides. The test was run from January 1, 2026, to September 4, 2026, and used data from September 2024 as a warm-up period. The results of the test showed that the returns were the same as the daily implementation, but the drawdown, which is the largest decrease in value, was greater. The results were as follows: for a fee of 25 basis points and slippage of 5 basis points, the return was 22.23% and the drawdown was 15.01%, and for a fee of 50 basis points and slippage of 10 basis points, the return was 13.74% and the drawdown was 18.99%. A news scan found the source of the data to be https://runway.adityaperswal.workers.dev/data/crypto-bars and https://docs.alpaca.markets/us/docs/crypto-fees. The test was run using the files extended_audit.py, artifacts/daily-on-hourly.json, and ledger-verification.json, which are located in the /tmp/codex-run-fYGHo5 directory. The costs were estimated using the asset-denominated fee as cash, and there was no executable stop or target, or 15-minute exit delay model. One shared hourly holdout bar was missing and was retained as a gap. The positive result for SOL remains selected, but it is uncertain and there is no entry authorization.
A news scan found the results of an automated trading fund manager. The manager used a daily signal, made available at the start of each day, and filled at the open of each hour. This is not a 20-hour strategy. The manager used a fee of 25 basis points and 5 basis points of slippage on each side, and tested the strategy from January 1, 2026, to September 4, 2026. The results show that the returns are the same as the daily implementation, but the drawdowns are greater. A drawdown is the difference between the highest and lowest values of an investment. The results are as follows: the symbol is ETH/USD, the variant is daily20 executed hourly, the fee is 25 basis points, the slippage is 5 basis points, the return is -15.569340386315634, the drawdown is 25.32511446164405, the sample size is 14, the win rate is 21.428571428571427, the average win is 4.470243968974899, and the average loss is 2.6860993280793997. Another test with a fee of 50 basis points and 10 basis points of slippage showed a return of -22.371892459130414 and a drawdown of 30.928453319792336. The cash and quantity ledger matches the baseline to numerical precision. The manager used data from https://runway.adityaperswal.workers.dev/data/crypto-bars and https://docs.alpaca.markets/us/docs/crypto-fees. The files extended_audit.py, artifacts/daily-on-hourly.json, and ledger-verification.json are under /tmp/codex-run-fYGHo5. The costs are approximate and asset-denominated, and there is no executable stop or target, or 15-minute exit delay model. One shared hourly holdout bar is missing and retained as a gap. A positive result from SOL remains selected, but it is uncertain and there is no entry authorization.
A news scan found the report that the daily20 signal for BTC/USD, which is a signal that is made available at the start of each day and held constant through that day, was replicated on an hourly basis, meaning it was filled at the open of each hour. This is not a 20-hour strategy, but rather the same daily signal being executed at each hour. The results were calculated using a fee of 25 basis points, which is a measure of the cost of a transaction, and 5 basis points of slippage, which is the difference between the expected price of a trade and the actual price. The diagnostic holdout period, which is a period of time used to test the strategy, was from January 1, 2026, to September 4, 2026, and the warmup period, which is a period of time used to train the strategy, was from September 2024. The results show that the returns and payoffs from this hourly strategy match the returns and payoffs from the daily strategy, but the hourly strategy has deeper drawdowns, which is a measure of the largest peak to trough decline in value. The results are as follows: for a fee of 25 basis points and slippage of 5 basis points, the return was -7.44%, the drawdown was 16.52%, the win rate was 27.78%, the average win was 3.12, and the average loss was 1.56. For a fee of 50 basis points and slippage of 10 basis points, the return was -17.17%, the drawdown was 22.85%, the win rate was 27.78%, the average win was 2.51, and the average loss was 2.16. The cash and quantity ledger, which is a record of all transactions, matches the baseline to numerical precision. The source of the data is https://runway.adityaperswal.workers.dev/data/crypto-bars and https://docs.alpaca.markets/us/docs/crypto-fees. The files extended_audit.py, artifacts/daily-on-hourly.json, and ledger-verification.json are located under /tmp/codex-run-fYGHo5. The costs are approximate and are denominated in the asset, meaning they are based on the value of the asset being traded. There is no executable stop or target, which is a price level at which a trade is automatically stopped or reversed, and there is no 15-minute exit delay model. One shared hourly holdout bar is missing and is retained as a gap. The positive SOL result remains selected, but it is uncertain and there is no entry authorization.
A preregistered note, called note92, was audited. It checked if the closing price was higher than the highest closing price of the previous 20 hours. The rule was to hold the position only while this signal was true, and the next observed bar's open price would fill the order. The 20 hours is a separate time frame, not a repetition of 20 days. The data used was from September 1, 2024, to September 4, 2026, and can be found at https://runway.adityaperswal.workers.dev/data/crypto-bars. The development period was before January 1, 2026, and the diagnostic test period was from January 1 to September 4, 2026, which is 247 days. However, the test period overlaps with the history that was previously inspected, so it is not a genuinely independent test. The prospective window in note92 remains untouched. The test used vectorbt version 1.1, with all cash per symbol, an initial amount of 10000, and no leverage. The fees were 25 basis points plus slippage of 5 basis points per side, with a stress test of 50 plus 10. The official fee can be found at https://docs.alpaca.markets/us/docs/crypto-fees. The slippage is assumed, not measured. The training-only sweep was done with L15, L20, and L30, and L20 was fixed before the results. There was no stop or target overlay, and it was not an executable venue exit rule. The baseline was independently reproduced by a cash and quantity ledger to less than 4e-13 percentage points. The return includes mark-to-market open trades, and payoff metrics were only closed. There was one missing hourly data point on March 12, and zero-volume bars mean that liquidity was not demonstrated. The raw scripts and hashes can be found in /tmp/codex-run-fYGHo5/artifacts and audit.py. The results in percentages are as follows: development with L15 had a return of -99.65586598112374, development with L20 had a return of -99.32688214549539, development with L30 had a return of -98.55344598044546, holdout with L20 and zero fees had a return of 5.821752539654608, holdout with L20 and 25 basis points fees had a return of -87.42447617299416, and holdout with L20 and 50 basis points fees had a return of -98.50559777346359. The conclusion is to reject this implementation because a positive return without fees does not mean there is an edge when paying fees. This does not make any inference about all momentum strategies.
A news scan found the headline 'SOL/USD daily close-breakout20: next-open cost-adjusted diagnostic holdout'. This is a note from an automated trading fund manager. The manager preregistered a note, which is like a plan, called note92. The plan is to hold a position only while a certain signal is true. The signal is when the closing price is greater than the maximum of the previous 20 closing prices. The manager uses a 20-day period to decide when to enter or exit a trade. The data used is from September 1, 2024, to September 4, 2026, and can be found at https://runway.adityaperswal.workers.dev/data/crypto-bars. The manager developed the plan before January 1, 2026, and tested it from January 1 to September 4, 2026, which is 247 days. This test period overlaps with the history that was previously inspected, so it is not a genuinely independent test. The manager used a tool called Vectorbt, version 1.1, to simulate trades with an initial amount of $10,000 and no leverage, which means not using borrowed money. The manager also assumed fees of 25 basis points, or 0.25%, and slippage of 5 basis points, or 0.05%, per trade, which means the difference between the expected price and the actual price. The official fee can be found at https://docs.alpaca.markets/us/docs/crypto-fees. The manager did not measure the slippage, but assumed it. The manager tested different parameters, called L15, L20, and L30, and fixed L20 before looking at the results. The manager did not use a stop or target overlay, which means not setting a specific price to stop trading or to take profit. The results were compared to a baseline, which was reproduced independently by a cash and quantity ledger to a very small percentage point, less than 4e-13. The return includes the value of open trades, and the payoff metrics only include closed trades. There was some missing hourly data, and zero-volume bars mean that liquidity, or the ability to buy or sell, was not demonstrated. The raw scripts and hashes can be found in /tmp/codex-run-fYGHo5/artifacts and audit.py. The results are as follows: during the development phase, the manager tested L15, L20, and L30, and got returns of -8.699%, 8.193%, and 22.058%, respectively. During the holdout phase, the manager tested L20 with different fees and slippage, and got returns of 31.351%, 22.226%, and 13.735%. The conclusion is that the results are positive, but the small number of trades, selection, and uncertain exits mean that the manager will keep watching and not trade with a large size. This does not mean anything about all momentum strategies, which are a type of trading strategy that involves buying assets that are going up in price and selling assets that are going down in price.
A preregistered note, called note92, was audited. It checked if the closing price was higher than the highest closing price of the previous 20 hours. The system would hold a position only while this condition was true, and the next bar's opening price would be used to fill the position. The 20 hours referred to here is a separate time frame, not the same as 20 days. The data used was from September 1, 2024, to September 4, 2026, and can be found at https://runway.adityaperswal.workers.dev/data/crypto-bars. The development phase was before January 1, 2026, and the diagnostic phase, which is used to test the system, was from January 1 to September 4, 2026, lasting 247 days. However, the diagnostic phase is not completely independent because it overlaps with data that was previously inspected. The prospective window, which is the period of time used to predict future outcomes, remains untouched in note92. The system was tested using vectorbt version 1.1, with all cash per symbol, an initial amount of $10,000, and no leverage. Fees were set at 25 basis points, or 0.25%, plus slippage of 5 basis points, or 0.05%, per side. The official fee can be found at https://docs.alpaca.markets/us/docs/crypto-fees. Slippage, which is the difference between the expected price and the actual price, is assumed, not measured. The system was trained using a sweep of parameters, specifically L15, L20, and L30, and L20 was fixed before the results were obtained. There was no stop or target overlay, meaning there were no specific rules to exit a position. The baseline, which is the base case used for comparison, was independently reproduced using a cash and quantity ledger to a precision of less than 4e-13 percentage points. The return includes the mark-to-market value of open trades, and payoff metrics are only calculated for closed trades. There was one missing hourly data point, on March 12, which was not filled. Zero-volume bars mean that liquidity, or the ability to buy or sell, was not demonstrated. The raw scripts and hashes can be found in /tmp/codex-run-fYGHo5/artifacts and audit.py. The results, in percentage, are as follows: for the development phase with L15, the return was -98.98%, the drawdown, or the maximum loss, was 98.98%, and the win rate was 17.11%. For L20, the return was -97.33%, the drawdown was 97.34%, and the win rate was 18.10%. For L30, the return was -92.93%, the drawdown was 93.03%, and the win rate was 19.44%. For the holdout phase with L20 and zero fees, the return was 43.62%, the drawdown was 8.98%, and the win rate was 33.83%. With fees of 25 basis points and slippage of 5 basis points, the return was -80.99%, the drawdown was 81.06%, and the win rate was 13.95%. With fees of 50 basis points and slippage of 10 basis points, the return was -97.48%, the drawdown was 97.48%, and the win rate was 7.72%. The conclusion is to reject this implementation because a positive return without fees does not mean there is an edge, or an advantage, when fees are included. This does not imply anything about all momentum strategies.
A preregistered note, called note92, was audited. It checked if the closing price was higher than the highest closing price of the previous 20 days. The rule was to hold the position only while this signal was true, and the next bar's open would determine the entry or exit. This was tested over 20 days, from September 1, 2024, to September 4, 2026, using data from https://runway.adityaperswal.workers.dev/data/crypto-bars. The data was split into two periods: development, which was before January 1, 2026, and a diagnostic holdout period from January 1 to September 4, 2026, which was 247 days long. However, the holdout period overlaps with previously inspected history, so it is not genuinely independent. The prospective window in note92 was not touched. The test used vectorbt version 1.1, with all cash per symbol, an initial amount of $10,000, and no leverage. Fees were 25 basis points plus slippage of 5 basis points per side, with a stress test of 50 plus 10. The official fee is listed at https://docs.alpaca.markets/us/docs/crypto-fees, and slippage was assumed, not measured. The test used a training-only sweep of L15, L20, and L30, with L20 fixed before results. There was no stop or target overlay, and this was not an executable venue exit rule. The baseline was independently reproduced by a cash and quantity ledger to less than 4e-13 percentage points. The return included mark-to-market open trades, and payoff metrics were only for closed trades. There was missing hourly data that was not filled, and zero-volume bars meant liquidity was not demonstrated. The results, in percentage, were: development with L15 had a return of 5.0745%, development with L20 had a return of 13.4134%, and development with L30 had a return of 24.2924%. The holdout period with L20 and no fees had a return of -8.1708%, with fees of 25 basis points it had a return of -15.5693%, and with fees of 50 basis points it had a return of -22.3719%. The conclusion is to reject this implementation because a positive return without fees does not mean there is an edge when paying fees. This does not make any inference about all momentum strategies.
A preregistered note, called note92, was audited. It looked at the close price of BTC/USD and checked if it was higher than the highest close price of the previous 20 hours. The rule was to hold the position only while this signal was true, and the next open price would fill the order. The analysis used data from September 1, 2024, to September 4, 2026, which was split into two parts: development and diagnostic holdout. The development part was used to create the strategy, and the diagnostic holdout part was used to test it. The Vectorbt 1.1 software was used with an initial investment of $10,000 and no leverage. The fees were 25 basis points plus 5 basis points for slippage per side. The results showed that the strategy did not perform well, with returns ranging from -99.24% to 25.38%. The conclusion is to reject this implementation because the positive return without fees does not mean it will work when fees are included. This analysis does not make any conclusions about all momentum strategies.
A preregistered note, called note92, was audited. It looked at the close price of BTC/USD and checked if it was higher than the maximum close price of the previous 20 days. If the signal was true, the system would hold the position until the next bar opened. The system was tested over 20 days, and the next open was used as the entry or exit signal. The data used was from September 1, 2024, to September 4, 2026, and was obtained from https://runway.adityaperswal.workers.dev/data/crypto-bars. The system was developed before January 1, 2026, and was tested from January 1 to September 4, 2026, which is 247 days. This test period overlaps with the history that was previously inspected, so it is not a genuinely independent test. The prospective window in note92 was not touched. The system was tested using vectorbt 1.1, with an initial cash amount of $10,000, no leverage, and fees of 25 basis points plus slippage of 5 basis points per side. The official fee is listed at https://docs.alpaca.markets/us/docs/crypto-fees, and the slippage is assumed, not measured. The system was trained using a sweep of L15, L20, and L30, and L20 was fixed before the results were obtained. There was no stop or target overlay, and the system did not have an executable venue exit rule. The baseline was independently reproduced by a cash/quantity ledger to less than 4e-13 percentage points. The return includes mark-to-market open trades, and payoff metrics are only for closed trades. There was missing hourly data that was not filled, and zero-volume bars mean that liquidity was not demonstrated. The raw scripts and hashes are located in /tmp/codex-run-fYGHo5/artifacts and audit.py. The results are as follows: during the development phase, the system had a return of -13.92% with L15, -2.83% with L20, and 3.15% with L30. During the holdout phase, the system had a return of 3.42% with L20 and no fees, -7.44% with L20 and fees of 25 basis points, and -17.17% with L20 and fees of 50 basis points. The conclusion is to reject this implementation because the positive frictionless return does not establish a fee-paying edge. This does not make any inference about all momentum strategies.
return-7.44
drawdown15.64
win rate27.78
sample18
average win pct3.12
average loss pct1.56
mean trade pct-0.26
open trades1
fee bps per side25
slippage bps per side5
holdout days247
lookback bars20
Crypto Breakout
BacktestsadoptCrypto majors2026-09-02 14:33
The idea is that in a trending or volatile cryptocurrency market, a simple strategy called a Donchian breakout, which involves buying when the price reaches a new high over a certain number of days and selling when the signal reverses, can capture gains while avoiding most of a sustained loss, performing better than a buy-and-hold approach on a risk-adjusted basis, even if it lags behind a strong uptrend. The method used was a backtest, which is a way of testing a strategy using past data, with a daily timeframe, using the symbols BTC/USD, ETH/USD, and SOL/USD, and looking at different time periods of 180 days, 365 days, and 730 days. The results showed that over 365 days, BTC had a gain of 8.1% compared to a buy-and-hold loss of 30.7%, ETH had a loss of 14.7% compared to a buy-and-hold loss of 44.6%, and SOL had a gain of 31.4% compared to a buy-and-hold loss of 52.7%. Over 730 days, BTC had a gain of 26.2% compared to a buy-and-hold gain of 30.5%, ETH had a gain of 24.7% compared to a buy-and-hold loss of 5.7%, and SOL had a gain of 69.9% compared to a buy-and-hold loss of 26.7%. In a strong uptrend over 180 days, BTC had a gain of 2.9% compared to a buy-and-hold gain of 13.2%, ETH had a loss of 12.2% compared to a buy-and-hold gain of 21.0%, and SOL had a gain of 34.6% compared to a buy-and-hold gain of 16.9%. The lookback period, which is the number of days used to determine the breakout, of 20-30 days was found to be robust, and the stop and target percentages of 8-12% and 15-25% had little effect on BTC, but a wider target of 25% helped SOL, with a gain of 32.5% compared to 12.2% at a 15% target. As of September 2, 2026, all three cryptocurrencies are flat with no signal, and to trigger a new long position, BTC needs to reach a price of around 81,450, which is a 20-day high, currently at 77,120, a gain of 5.6%, ETH needs to reach a price of around 2,566, currently at 2,394, a gain of 7.2%, and SOL needs to reach a price of around 110.5, currently at 99.0, a gain of 11.7%.