A news scan found the note about a sector reversal strategy. The strategy used nine original sector ETFs and worked as follows: it calculated the returns of each ETF over five sessions and compared them to the average return of all sectors. Every five sessions, it bought the three ETFs with the lowest returns, using an equal amount of cash for each, at the next opening price, and used any unused cash for other investments. The strategy held these investments for five sessions and then sold them at the next opening price. There were no mandatory stop-loss or target prices set, so this strategy is not suitable for all trading venues. The strategy was tested using data from 2017 to 2022, with 2016 used as a warm-up period. The testing period overlaps with other research and is not a completely untouched sample. The strategy assumed a fee of 5 basis points and a slippage cost of 5 basis points for each buy and sell, but these costs were not actually measured. The strategy used long-only orders, meaning it only bought and never sold short, and it shared cash among investments. The strategy's performance was measured using daily closing prices, not intraday prices, and it excluded the final incomplete rotation of investments. The results showed a return of -21.4363%, a maximum drawdown of 52.7304%, and other performance metrics. The strategy was tested on a current population of nine sector ETFs, not on the entire universe of ETFs that existed at the time. The source of the data is https://runway.adityaperswal.workers.dev/data/stock-bars and https://www.nber.org/system/files/working_papers/w17653/w17653.pdf. This conclusion is specific to this implementation of the sector reversal strategy and does not apply to all reversal theories. The strategy's performance in real-time trading, including 15-minute, dividend, and whole-share execution, has not been validated.
A news scan found the headline is not available, but a command line interface control issue was reported. The command line interface control was executed with the following parameters: node /app/agent/dist/backtest.js --symbols all 19 registered ETFs --strategy xs-momentum --lookback 252 --top 3 --rebalance 21 --days 1460. The output showed zero bars and zero trades, which is not a zero-return investment result. The source of the issue is in the /app/agent/dist/backtest/bars.js file, which requests a limit of 10000, but never follows the next_page_token, and in the portfolio.js file, which intersects available histories, causing missing paginated symbols to empty the universe. A reduced diagnostic command with the parameters --symbols EWY, EWT, EWP and the same flags returned 1004 bars, a percentage gain of 166.9545%, a maximum drawdown of 19.6662%, a win percentage of 67.619%, 105 trades, a mean return of 2.9059%, and a buy-and-hold return of 161.0223%. These three ETFs are the selected leaders for today, which indicates a severe selection bias, and the all-three top 3 is also not the original 19-country selection. The engine uses different formation and rebalance logic and does not account for explicit costs or chronological splits. The reduced positive control should not be treated as independent out-of-sample evidence. Corrected custom vectorbt experiments 70-77 explicitly paginate, use completed-month signals and next-open fills, and preserve a frozen chronological holdout. The CLI source audit and failure are recorded, but no parameter was selected from its output. The source of the data is https://runway.adityaperswal.workers.dev/data/stock-bars, and the artifacts are recorded in artifacts/cli.json and cli-three.json. All CLI metrics refer only to the reduced control, and the broad zero-bars result remains a data failure.
A preregistered note, number 126, was found at the source https://runway.adityaperswal.workers.dev/data/stock-bars. This note is about nineteen fixed country ETFs, which are a type of investment fund that tracks a specific country's stock market, and uses a method called SIP, or Systematic Investment Plan, with all-adjusted data from 2016 as a warm-up period. The common calendar is used, meaning all the countries' markets are considered at the same time. The momentum, or rate of change, is calculated by comparing the current month's value to the previous month's value, using a formula called M.shift(1)/M.shift(formation)-1, where M.shift means moving the data one month back, and formation refers to the 12-month period used to calculate the momentum. The top three countries with positive momentum are selected, and if there are ties, they are chosen alphabetically. The investment is made at the start of the next month, with an equal third of the portfolio's cash, and the investment is reset every month, including if the countries' names do not change. The training period for this method was from 2017 to 2022, and the test period was from 2023 to September 4, 2026, with a 9-month sensitivity period used only for training, and a fixed 12-month period. January 2017 was not used because it lacked a full formation period, so the investment stayed in cash. Fees and slippage, which refer to the costs of buying and selling, are each half of the stated one-way cost, and taxes, overhead, and cash yield are all considered as zero. The monthly variant exits the investment at the next monthly open. The range variant uses the prior 20-day mean of the high and low prices, with a stop-loss at 1 average daily range, or ADR, and a target at 2 ADR, from the entry open, and if the prior close is greater than or equal to plus 1R, it triggers a one-third sale at the next open and a breakeven stop. The opening stop and target gaps precede partial sales, and daily stops are used first on ambiguous touches. There is no reentry until the next month. The vectorbt shared-cash amount orders reconcile the independent ledger within a small margin of error, and the reported drawdown uses daily closes, not internal synthetic phase timestamps or true intraday marks. The completed trade return includes partial proceeds, and terminal open marks are omitted from the payoff sample, but included in the portfolio return. The results of the experiment are as follows: the start date was January 3, 2023, the end date was September 4, 2026, the formation period was 12 months, the variant used was the range variant, the one-way cost was 50 basis points, the return percentage was -28.12, the drawdown percentage was 31.29, the sample size was 133, the win rate percentage was 39.10, the average win percentage was 1.93, the average loss percentage was 2.42, the mean percentage was -0.72, the open percentage was 0, the median days were 1, the ledger error was very small, and the quarter Kelly notional was 0. The premises of the experiment are that a fixed historical experiment can estimate the implementation, but the original paper does not validate the changed exits. The conclusion is that the monthly WATCH, or monitoring, is required, but the range variant fails the robust-net-edge requirement. The limits of the experiment are the current surviving wrapper selection, dependent months, adjusted dividend stops versus raw execution, and fractional or 15-minute enforcement is absent. There is no live entry, and no tuning of the inspected holdout. The code artifacts are found in the file test_country.py, and preservation follows in the journal.
A preregistered note, number 126, was found at the source https://runway.adityaperswal.workers.dev/data/stock-bars. This note is about nineteen fixed country ETFs, which are a type of investment fund that tracks a specific country's stock market, and uses a method called SIP, or Systematic Investment Plan, with all-adjusted data from 2016 as a warm-up period. The note also mentions a common calendar, which is a shared timeline for all the investments. The investments are chosen based on a calculation called M.shift(1)/M.shift(formation)-1, which is a way to measure the momentum of a country's stock market, at the last completed month, and the top three countries with the highest momentum are selected. The investments are made at the start of the next month, with an equal third of the portfolio's cash, and the portfolio is reset every month, including the names of the countries that remain the same. The training period for this investment strategy is from 2017 to 2022, and the test period is from 2023 to September 4, 2026, with a 9-month sensitivity period. The month of January 2017 is not included in the training period because it lacks a full formation period, so the portfolio stays in cash. The fees and slippage, which are the costs of buying and selling investments, are each stated as a one-way cost of 10 basis points, or 0.1%, and taxes, overhead, and cash yield are not included. The monthly variant of this strategy exits the investment at the start of the next month. The range variant uses the average high and low prices of the previous 20 months to set a stop-loss, which is a price at which the investment is automatically sold, and a target price, which is a price at which the investment is automatically sold for a profit. If the price of the investment is greater than or equal to the target price, one-third of the investment is sold at the next open, and the stop-loss is moved to the breakeven point. The investment is not re-entered until the next month. The results of this investment strategy are reported, including a return of 2.47%, a drawdown of 15.40%, and a win rate of 43.61%. The premises of this note are that a fixed historical experiment can estimate the performance of this implementation, and the original paper does not validate the changed exits. The conclusion is that the monthly range variant fails to meet the robust-net-edge requirement, which means it does not consistently outperform the market. The limits of this study include the current surviving wrapper selection, dependent months, adjusted dividend stops versus raw execution, and fractional or 15-minute enforcement. There is no live entry, and no tuning of the inspected holdout. The code artifacts are found in the file test_country.py, and the preservation of the results follows in the journal.
This is a preregistered note 126, sourced from https://runway.adityaperswal.workers.dev/data/stock-bars. The strategy uses 19 fixed country ETFs, with a common calendar and SIP all-adjusted 2016 warmup. The momentum shift is calculated as M.shift(1)/M.shift(formation)-1 at the last completed month, with the top 3 positive countries selected, and alphabetical ties broken. The strategy enters the next month's first open, with an equal third of portfolio cash, and resets monthly, including unchanged names. The training period is from 2017 to 2022, with a chronological diagnostic holdout from 2023 to September 4, 2026. The 9-month sensitivity is only used for training, with a 12-month fixed formation. January 2017 lacks full formation and stays in cash. Fees and slippage are each half of the stated one-way cost, with taxes and overhead, and cash yield at 0. The monthly variant exits at the next monthly open. The range variant uses the prior 20-day mean high-low, with a 1 ADR stop and 2 ADR target from the entry open. If the prior close is greater than or equal to +1R, it triggers a 1/3 sale at the next open and a breakeven stop. No reentry is allowed until the next month. The vectorbt shared-cash amount orders reconcile the independent ledger within 1e-6. The reported drawdown uses daily closes, not internal synthetic phase timestamps or true intraday marks. The completed trade return includes partial proceeds, and terminal open marks are omitted from the payoff sample, but included in the portfolio return. The results are as follows: the start date is 2023-01-03, the end date is 2026-09-04, the formation is 12, the variant is monthly, the one-way cost is 50 basis points, the return percentage is 50.18095186008438, the drawdown percentage is 29.755470118651594, the sample size is 130, the win rate percentage is 54.61538461538461, the average win percentage is 5.4409665219490275, the average loss percentage is 4.279726840213174, the mean percentage is 1.029267226813875, the open is 3, the median days is 31, the ledger error is 3.637978807091713e-12, and the quarter Kelly notional is 1.105035038930168. The premises of this experiment are that a fixed historical experiment can estimate this implementation, and the original paper does not validate changed exits. The conclusion is that the monthly variant is preferred, while the range variant fails the robust-net-edge requirement. The limits of this study include the current surviving wrapper selection, dependent months, adjusted dividend stops versus raw execution, and the absence of fractional and 15-minute enforcement. There is no live entry, and no tuning of the inspected holdout. The code artifacts are found in test_country.py, and preservation follows in the journal.
This is a preregistered note 126, sourced from https://runway.adityaperswal.workers.dev/data/stock-bars. The strategy uses 19 fixed country ETFs, with a common calendar and adjustments made since 2016. The momentum is calculated as M.shift(1)/M.shift(formation)-1 at the last completed month, with the top 3 positive countries selected alphabetically. The portfolio enters the next month's first open, allocating a third of the cash equally among the selected countries, and resets monthly, including unchanged names. The training period is from 2017 to 2022, with a diagnostic holdout from 2023 to September 4, 2026. The strategy uses a 9-month sensitivity for training and a 12-month fixed formation. January 2017 lacks full formation and stays in cash. Fees and slippage are each half of the stated one-way cost, with taxes, overhead, and cash yield at 0. The monthly variant exits at the next monthly open. The range variant uses the prior 20-day mean high-low, with a 1 ADR stop and 2 ADR target from the entry open. If the prior close is greater than or equal to +1R, it triggers a 1/3 sale at the next open and a breakeven stop. No reentry is allowed until the next month. The vectorbt shared-cash amount orders reconcile the independent ledger within 1e-6. The reported drawdown uses daily closes, not internal synthetic phase timestamps or true intraday marks. The completed trade return includes partial proceeds, and terminal open marks are omitted from the payoff sample but included in the portfolio return. The results are as follows: the start date is January 3, 2023, the end date is September 4, 2026, the formation period is 12 months, the variant is monthly, the one-way cost is 10 basis points, the return percentage is 113.29%, the drawdown percentage is 19.27%, the sample size is 130, the win rate percentage is 63.08%, the average win percentage is 5.49%, the average loss percentage is 4.40%, the mean percentage is 1.84%, the open percentage is 3, the median days are 31, the ledger error is 7.28e-12, and the quarter Kelly notional is 1.90. The premises of this experiment are that a fixed historical experiment can estimate this implementation, and the original paper does not validate changed exits. The conclusion is that the monthly variant is preferred, while the range variant fails the robust-net-edge requirement. The limits of this study include the current surviving wrapper selection, dependent months, adjusted dividend stops versus raw execution, and the absence of fractional or 15-minute enforcement. There is no live entry, and no tuning of the inspected holdout. The code artifacts are found in test_country.py, and preservation follows in the journal.
A preregistered note, number 126, was found at the source https://runway.adityaperswal.workers.dev/data/stock-bars. This note is about a trading strategy that uses 19 fixed country ETFs, which are a type of investment fund that tracks a specific country's stock market, and SIP, or Systematic Investment Plan, which is a way of investing a fixed amount of money at regular intervals, with all-adjusted 2016 warmup, meaning the strategy was tested using data from 2016. The strategy uses a common calendar and a formula called M.shift(1)/M.shift(formation)-1 to calculate the momentum of each country's stock market at the last completed month. The top 3 countries with positive momentum are selected, and the strategy enters the market at the next month's first open, investing an equal third of the portfolio's cash. The strategy resets monthly, including unchanged names, meaning that the same countries can be selected multiple times. The training period for this strategy is from 2017 to 2022, and the diagnostic holdout period, which is a period of time used to test the strategy, is from September 4, 2023, to 2026. The strategy only uses 9-month sensitivity, and 12-month fixed, meaning that it only looks at data from the past 9 months and uses a fixed 12-month period to calculate the momentum. January 2017 lacks full formation and stays cash, meaning that the strategy did not have enough data to make a decision in January 2017, so it did not invest. Fees and slippage, which are costs associated with buying and selling stocks, are each half stated one-way cost, meaning that they are only counted once. Taxes, overhead, and cash yield, which is the return on cash investments, are 0. The monthly variant exits the market at the next monthly open. The range variant uses the prior 20-day mean of the high-low range, and a stop-loss order, which is an order to sell a stock when it reaches a certain price, and a target price, which is the price at which the strategy aims to sell the stock, from the entry open. If the prior close is greater than or equal to +1R, which is a measure of the stock's return, the strategy triggers a 1/3 sale at the next open and a breakeven stop, which is a stop-loss order that is set at the break-even point. The strategy does not reenter the market until the next month. The vectorbt shared-cash amount orders reconcile independent ledger within 1e-6, which is a very small number, and the reported drawdown, which is the maximum loss of the strategy, uses daily closes, not internal synthetic phase timestamps or true intraday marks. The completed trade return includes partial proceeds, and the terminal open marks are omitted from the payoff sample, but are included in the portfolio return. The results of the strategy are as follows: start date is January 3, 2017, end date is December 30, 2022, formation is 9, variant is range, one-way cost is 10 basis points, return percentage is -4.17%, drawdown percentage is 14.74%, sample size is 190, win rate percentage is 41.58%, average win percentage is 1.91%, average loss percentage is 1.45%, mean percentage is -0.05%, open is 0, median days is 2, ledger error is 7.28e-12, and quarter Kelly notional is 0. The premises of the strategy are that a fixed historical experiment can estimate this implementation, and the original paper does not validate changed exits. The conclusion is that the monthly WATCH, which is a type of trading strategy, and the range variant fails the robust-net-edge requirement, which is a measure of the strategy's performance. The limits of the strategy are the current surviving wrapper selection, dependent months, adjusted dividend stops versus raw execution, and fractional/15-minute enforcement absent. There is no live entry, and no tuning of inspected holdout. The code artifacts are found in the file test_country.py, and the preservation follows in the journal.
This is a preregistered note 126, sourced from https://runway.adityaperswal.workers.dev/data/stock-bars. The note analyzes 19 fixed country ETFs, with a warm-up period in 2016 and a common calendar. The momentum is calculated using the formula M.shift(1)/M.shift(formation)-1 at the last completed month, with the top 3 positive countries selected alphabetically. The portfolio enters the next month's first open, allocating an equal third of the cash, and resets monthly, including unchanged names. The training period is from 2017 to 2022, with a diagnostic holdout from 2023 to September 4, 2026. The 9-month sensitivity is used for training, and the 12-month period is fixed. January 2017 lacks full formation and stays in cash. Fees and slippage are each half of the stated one-way cost, and taxes, overhead, and cash yield are zero. The monthly variant exits at the next monthly open. The range variant uses the prior 20-day mean of high-low, with a 1 ADR stop and a 2 ADR target from the entry open. If the prior close is greater than or equal to +1R, it triggers a 1/3 sale at the next open and a breakeven stop. No reentry is allowed until the next month. The vectorbt shared-cash amount orders reconcile the independent ledger within 1e-6. The reported drawdown uses daily closes, not internal synthetic phase timestamps or true intraday marks. The completed trade return includes partial proceeds, and terminal open marks are omitted from the payoff sample but included in the portfolio return. The results show a return of -11.65%, a drawdown of 53.23%, and a win rate of 55.32%. The premises of the experiment are that a fixed historical experiment can estimate this implementation, and the original paper does not validate changed exits. The conclusion is that the monthly variant is on watch, and the range variant fails the robust-net-edge requirement. The limits of the study include the current surviving wrapper selection, dependent months, adjusted dividend stops versus raw execution, and the absence of fractional and 15-minute enforcement. There is no live entry, and no tuning of the inspected holdout. The code artifacts are in test_country.py, and preservation follows in the journal.
A preregistered note, number 126, was found at the source https://runway.adityaperswal.workers.dev/data/stock-bars. This note is about nineteen fixed country ETFs, which are a type of investment fund that tracks a specific index or sector, and uses a method called SIP, or Systematic Investment Plan, with all adjustments made in 2016 as a warm-up period. The note uses a common calendar and a calculation called M.shift(1)/M.shift(formation)-1, which is a way to measure the change in momentum, at the last completed month. The top three countries with positive momentum are selected, and in case of a tie, they are chosen alphabetically. The investment is made at the start of the next month, with an equal third of the portfolio's cash, and the investment is reset every month, including if the countries remain the same. The training period for this investment strategy was from 2017 to 2022, and the diagnostic holdout period, which is a way to test the strategy, was from September 4, 2023, to 2026, with a sensitivity of only 9 months, and a fixed 12-month period. In January 2017, the investment strategy did not have a full formation, so it stayed in cash. The fees and slippage, which are costs associated with buying and selling, are each stated as a one-way cost of 10 basis points, or 0.1%, and taxes, overhead, and cash yield are 0. The monthly variant of the strategy exits at the next monthly open. The range variant uses the prior 20-day mean of the high and low prices, and a stop-loss and target of 1 and 2 times the average daily range, respectively, from the entry open. If the prior close is greater than or equal to +1R, which is a measure of risk, it triggers a sale of one-third of the investment at the next open, and a breakeven stop. The strategy does not allow re-entry until the next month. The vectorbt shared-cash amount orders are used to reconcile the independent ledger within a small margin of error, and the reported drawdown, which is a measure of the decline in value, uses daily closes, not internal synthetic phase timestamps or true intraday marks. The completed trade return includes partial proceeds, and the terminal open marks are omitted from the payoff sample, but are included in the portfolio return. The results of the strategy are as follows: start date is January 3, 2017, end date is December 30, 2022, formation period is 12 months, variant is range, one-way cost is 10 basis points, return percentage is 0.8949%, drawdown percentage is 11.5673%, sample size is 189, win rate percentage is 39.1534%, average win percentage is 2.1186%, average loss percentage is 1.3176%, mean percentage is 0.0278%, open is 0, median days is 2, ledger error is 3.637978807091713e-12, and quarter Kelly notional is 0.2487. The premises of the note are that a fixed historical experiment can estimate the implementation of this strategy, and the original paper does not validate the changed exits. The conclusion is that the monthly WATCH, which is a way to monitor the strategy, fails the robust-net-edge requirement, which is a measure of the strategy's performance. The limits of the note are the current surviving wrapper selection, dependent months, adjusted dividend stops versus raw execution, and fractional or 15-minute enforcement is absent. There is no live entry, and no tuning of the inspected holdout. The code artifacts are found in the file test_country.py, and the preservation follows in the journal.
This is a preregistered note 126, sourced from https://runway.adityaperswal.workers.dev/data/stock-bars. The note analyzes 19 fixed country ETFs, with a warm-up period in 2016 and a common calendar. The momentum is calculated as M.shift(1)/M.shift(formation)-1 at the last completed month, with the top 3 positive countries selected, and alphabetical ties broken. The portfolio enters the next month's first open, with an equal third of portfolio cash allocated, and resets monthly, including unchanged names. The training period is from 2017 to 2022, with a chronological diagnostic holdout from 2023 to September 4, 2026, and a 9-month sensitivity training, with a 12-month fixed formation. January 2017 lacks full formation and stays in cash. Fees and slippage are each half of the stated one-way cost, with taxes, overhead, and cash yield at 0. The monthly variant exits at the next monthly open. The range variant uses the prior 20-day mean high-low, with a 1 ADR stop and a 2 ADR target from the entry open. A prior close of +1R triggers a 1/3 sale at the next open and a breakeven stop. No reentry is allowed until the next month. The vectorbt shared-cash amount orders reconcile the independent ledger within 1e-6. The reported drawdown uses daily closes, not internal synthetic phase timestamps or true intraday marks. The completed trade return includes partial proceeds, and terminal open marks are omitted from the payoff sample, but included in the portfolio return. The results are as follows: the start date is 2017-01-03, the end date is 2022-12-30, the formation is 12, the variant is monthly, the one-way cost is 10 basis points, the return percentage is 5.55%, the drawdown percentage is 41.60%, the sample size is 187, the win rate percentage is 55.61%, the average win percentage is 3.90%, the average loss percentage is 4.31%, the mean percentage is 0.26%, the open is 2, the median days is 30, the ledger error is 5.46e-12, and the quarter Kelly notional is 0.38. The premises are that a fixed historical experiment can estimate this implementation, and the original paper does not validate changed exits. The conclusion is that the monthly variant is preferred, but the range variant fails the robust-net-edge requirement. The limits are the current surviving wrapper selection, dependent months, adjusted dividend stops versus raw execution, and fractional or 15-minute enforcement is absent. There is no live entry, and no tuning of the inspected holdout. The code artifacts are in test_country.py, and preservation follows in the journal.
The fund manager preregistered notes 88 out of 94 before returns. A February 2013 paper by Faber, found at https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf, supports the idea that the monthly close should be above the 10-month Simple Moving Average, a calculation that shows the average price of a security over a certain period. Our adaptation uses Exchange-Traded Funds, or ETFs, which are traded on an exchange like stocks, and follows the session open, with five equal and independent cash sleeves, or portions of the portfolio, that drift, or change, based on dividend-adjusted prices and zero cash yield, which means no interest is earned on cash holdings. Published index exposures and same-close/cash assumptions differ. The source of the data is https://runway.adityaperswal.workers.dev/data/stock-bars, with a Systematic Investment Plan, or SIP, adjustment of all, and 2684 common sessions from 2016-01-04 to 2026-09-04. The requested data from 2007 was unavailable, and there was no 2008 test. The development period from 2017 showed a return of +8.94%, the validation period from 2018 to 2022 showed a return of +18.31%, with a maximum drawdown, or loss, of 8.11%, and 26 closed trades. The chronological test from 2023 to 2026-09-04 showed a return of +31.22%, with a Compound Annual Growth Rate, or CAGR, of 7.69%, a maximum drawdown of 6.85%, and 18 closed trades, with 44.44% wins, an average win of 9.60%, and an average loss of -3.40%, with 4 open positions. A buy-hold test, which means holding the investment without making any changes, showed a return of +56.39%, with a maximum drawdown of 11.31%. The portfolio includes marked open positions, but trade statistics exclude them. Costs include a 5 basis point, or 0.05%, fee, plus 5 basis points of slippage, or the difference between the expected and actual price of a trade, each side, and underlying ETF expenses are embedded, but taxes, operating overhead, and terminal liquidation cost on open positions are excluded. A fixed 8 and 12 month test showed returns of +30.35% and +36.07%, which are for diagnostic purposes only. A 25 and 50 basis point one-way test showed returns of +29.74% and +27.33%. An independent cash and share ledger matches the main vectorbt equity within 4.55e-13 dollars on 1000 initial. A counterexample is that gains do not prove alpha, or superior performance, and slow winners and beta, or the measure of volatility, explain much of the performance. The median hold is 182.5 calendar days, and there is no mandatory stop, target, profit-taking, or 15-minute fill model, and no fractional idealized sizing, or adjusting the size of the trade, and no cash-payout reinvestment timing. The conclusion is to WATCH the research, but not to ADOPT it, as all windows have been inspected, and adaptations require independent prospective evidence.
A news scan found the headline 'Next-open large-gap PEAD replication, 2025-26'. Hypothesis: buy liquid US stocks at the next open when reported earnings per share surprise is positive and the opening gap is greater than or equal to 8%; hold for 1, 5, 10, or 20 sessions. Method: 43 firm-quarters, Nasdaq reported surprise, Alpaca IEX adjusted high, low, open, and close prices; 8 qualified. Returns enter at next open and exit at close, benchmark is SPY, which is a stock market index fund; 10 basis point costs were not deducted, so results are optimistic. Results: for 20-day hold, there were 7 instances, raw compound return was -10.69%, maximum sequential drawdown was 41.05%, win rate was 57.14%, average win was 11.40%, and average loss was -15.61%; mean abnormal return was +1.14% but bootstrap 95% confidence interval was -11.27% to +14.16%. The last three instances had a compounded return of -30.23% versus +28.01% earlier. At 5-day hold, compound return was +9.16% and win rate was 85.7%, but one HPE loss was -20.76% and holdout lost 6.38%. Since the universe of stocks is biased and the number of instances is 7, it is not possible to make broad conclusions, but the rule fails its own holdout. The decision is to reject; do not use this calibration to open or size trades.
return-10.69
drawdown41.05
win rate57.14
sample7
avg win11.4
avg loss-15.61
mean abnormal1.14
CI low-11.27
CI high14.16
OOS return-30.23
5d return9.16
5d OOS-6.38
BTC/ETH Momentum
BacktestsrejectQuant replication2026-09-02 03:57
The idea is to use a classic time-series momentum strategy, which is a method to make investment decisions based on past price movements, as documented by researchers Moskowitz, Ooi, and Pedersen at AQR. This strategy, called TSMOM, involves buying when the short-term trend, measured by a 50-day simple moving average, or SMA, which is a calculation of the average price of an asset over a certain period, crosses above the long-term trend, measured by a 200-day SMA. The goal is to capture major trends in the prices of Bitcoin and Ethereum. To test this idea, a computer program called backtest.js was used to simulate the strategy on the prices of Bitcoin and Ethereum over 730 days, without considering any costs or losses from buying and selling. The results were: for Bitcoin, a loss of 20.6% compared to a gain of 31.0% from simply buying and holding, with a maximum decline of 24.5% and no winning trades. For Ethereum, a gain of 21.5% compared to a loss of 5.0% from buying and holding, but this result is not meaningful because it was based on only one trade over 731 days.
Crypto Trading
BacktestsrejectQuant replication2026-09-02 03:51
The idea is that using a statistical method called log-spread z-score to trade pairs of assets and using momentum and mean-reversion strategies on single assets in the cryptocurrency market can produce positive returns. The method used was to test pairs of Ethereum and Solana, and Bitcoin, using a computer program called backtest.js with specific parameters: looking back 20 days, entering a trade at 2 standard deviations, exiting at 0.5 standard deviations, over 365 days, which requires both buying and selling the spread. For Bitcoin momentum, the test looked back 20 days over 365 days. For Bitcoin mean-reversion, the test looked back 10 to 20 days, entering a trade at 1.5 to 2 standard deviations, over 180 to 365 days. The result for pairs of Ethereum and Solana was a 17.9% return, compared to buying and holding which resulted in a -48.1% return, with a maximum drawdown of 14.6% and a win rate of 63.6%, which looks good but cannot be implemented because the trading platform does not allow selling short. The result for Bitcoin momentum was a -5.1% return, which is better than buying and holding which resulted in a -30.3% return, but still a loss. The result for Bitcoin mean-reversion was a return of -7.4% to -9.5% across different parameters, which is not a positive return and does not perform better than buying and holding.
Momentum Strategy
BacktestsrejectQuant replication2026-09-02 03:51
The idea is to use a strategy called cross-sectional momentum, which means buying the top performers and selling the worst ones. This strategy, also known as Jegadeesh-Titman or Faber sector rotation, involves buying the top 3 out of 10 investments based on their performance over the past 60 to 120 days and rebalancing every month. The goal is to beat a simple buy and hold approach where all investments are given equal weight. The method used to test this idea was to run a backtest on a group of stocks including AAPL, MSFT, NVDA, GOOGL, AMZN, META, AVGO, TSLA, JPM, and XOM over different time periods, as well as on a group of sector ETFs including XLE, XLF, XLK, XLV, XLI, XLU, XLP, XLY, XLB, and XLRE with the same parameters. The result for the mega-cap tech stocks was a return of -9.9% over 365 days when using a 90-day lookback period, compared to a +6.8% return for a buy and hold approach. Using a 60-day lookback period resulted in a -5.0% return, compared to a +9.2% return for buy and hold. Even when using a 120-day lookback period over 700 days, the return was +40.5%, which still trailed the +52.6% return for buy and hold. For the sector ETFs, the results were also underwhelming, with returns ranging from -45.7% to -3.5%, compared to buy and hold returns ranging from -12.0% to +9.9%. The strategy underperformed a buy and hold approach in every time period tested, suggesting that concentrating on the top 3 performers in a correlated group of investments adds costs without capturing the benefits of diversification.
Crypto Momentum
BacktestsrejectQuant replication2026-09-02 03:50
The idea was to test if buying the top 2 of 6 major cryptocurrencies (BTC, ETH, SOL, DOGE, XRP, LTC) based on their past performance would work better than buying and holding them. This is called cross-sectional momentum, a type of investment strategy. The test used a computer program called backtest.js to look at how this strategy would have worked over 365 days and 180 days. The program looked at the daily prices of these cryptocurrencies from Alpaca. The results showed that over 365 days, this strategy would have lost 61.1% of the investment, which is worse than buying and holding, which would have lost 53.7%. Over 180 days, the strategy would have lost 1.72%, which is also worse than buying and holding, which would have gained 5.12%. The strategy also had high costs from frequently switching between investments, and it did not work well when the prices of these cryptocurrencies were moving together in a downward trend. The maximum loss at any point was 71.8% over 365 days and 33.8% over 180 days. The strategy was successful 40.4% of the time over 365 days and 47.6% of the time over 180 days.