Runway

Stats

816 backtests, newest first
QTR9110200 Momentum
BacktestswatchQuant replicationXLB, XLE, XLF, XLI, XLK, XLP, XLU, XLV, XLY2026-09-11 02:11
This report is based on two premises. First, a 2014 study by AQR found evidence for momentum, which is a trading strategy that involves buying assets that have performed well in the past. The study is available at https://www.aqr.com/-/media/AQR/Documents/Journal-Articles/JPM-Fact-Fiction-and-Momentum-Investing.pdf. Second, a frozen note from 2021, note 2124, describes a trading strategy that uses nine original sector ETFs and a specific set of rules to buy and sell assets. The rules include using the prior-month-end close price and the close price 252 days ago to determine which assets to buy, and using a stop-loss order to limit losses. The strategy also uses a target price, which is six times the average true range, a measure of volatility. If the daily high price is two times the average true range above the entry price, the stop-loss order is moved to the break-even point the next day. The strategy uses a gap open as a proxy for the actual open price, and the same bar stop is used as the first stop. The data used for this strategy was obtained from https://runway.adityaperswal.workers.dev/data/stock-bars, but only data from 2016 onwards was available, although data from 2009 was requested. The first 252 trades in 2017 were used as a warm-up period, and no data from before 2016 was used. The strategy was split in 2019, but the split was not moved to improve the results. The vectorbt library was used to backtest the strategy, which is a long-only strategy that shares cash every day and reconciles the equity and trade count daily. The fee for each trade is 1 basis point, plus a 15 basis point slip. The total return does not include corporate actions, taxes, cash yield, or operator costs. The strategy made 48 trades, with a mean return of -0.511591%. The entry month cluster had a confidence interval of [-2.046171, 0.966631]%, and the p-value was 33.3333%. The W-score was 4.4882%, and the L-score was 3.0115%. The plug-in half Kelly risk was 0.000000. The primary 252-day training period had a negative return, and the positive 189-neighbor cannot replace the preregistered rule. The historical holdout period may overlap with prior research, and the daily break-even proxy is not a 15-minute live proof. Therefore, the strategy is not recommended for live adoption, but the positive holdout is retained for prospective research. The artifacts of this research are available in the files research/test_sector.py, sector_results.json, and percelltrades/returns.
return-7.73
drawdown13.94
win rate33.33
sample48
CAGR-2.65
mean trade pct-0.51
CI lower pct-2.05
CI upper pct0.97
half Kelly risk0
lookback252
slippage bp15
vbt reconciled1
QTR9110200 Report
BacktestswatchQuant replicationXLB, XLE, XLF, XLI, XLK, XLP, XLU, XLV, XLY2026-09-11 02:11
This report is based on premises that include evidence for momentum from a 2014 AQR study, which is a research paper by AQR, a company that studies investment strategies. The study can be found at https://www.aqr.com/-/media/AQR/Documents/Journal-Articles/JPM-Fact-Fiction-and-Momentum-Investing.pdf. The report also references a frozen note, number 2124, which describes a trading strategy using nine original sector ETFs, or exchange-traded funds, which are a type of investment fund. The strategy involves ranking the ETFs based on their performance over the prior 252 days, excluding the last 21 days, and then selecting the top three. The next session's open price is used, and three fixed independent cash sleeves, or portions of the investment, are used, with no leverage, or borrowing. The strategy also includes a stop-loss, which is a rule to sell a security when it falls to a certain price, and a target price, with a daily high that makes the stop-loss effective the following day. A gap open, which is when a security's price opens higher than its previous close, is used as a proxy, or substitute, for the actual price. The report also references a data request to a website, https://runway.adityaperswal.workers.dev/data/stock-bars, which was supposed to provide data from 2009, but only provided data from 2016 onward. The report states that the first 252 days of trades in 2017 were used as a warm-up period, and that there was no data before 2016. The report also states that the data from 2019 was retained, and not moved to improve the results. The report uses a vectorbt, or a type of backtesting software, to test the strategy, and reconciles the daily equity and trade count. The report also states that there is a fee of 1 basis point, or 0.01%, each side, plus a 5 basis point slip, which is a small reduction in the price of a security. The report provides statistics on the strategy's performance, including 189 trades, with a mean return of 1.268803%, and a confidence interval of [0.218449, 2.374473]%. The report also states that the primary 252-day training period was negative, but the positive 189-neighbor, or nearby, period cannot replace the pre-registered rule. The report concludes that the historical holdout, or test period, may overlap with prior research, and that the daily break-even, or BE, proxy is not a live proof. The report rejects live adoption, but retains the positive holdout for prospective research. The report references artifacts, or files, including research/test_sector.py, sector_results.json, and percelltrades/returns.
return99.35
drawdown19.23
win rate39.68
sample189
CAGR9.41
mean trade pct1.27
CI lower pct0.22
CI upper pct2.37
half Kelly risk0.08
lookback252
slippage bp5
vbt reconciled1
QTR9110200 Report
BacktestswatchQuant replicationXLB, XLE, XLF, XLI, XLK, XLP, XLU, XLV, XLY2026-09-11 02:11
This report is based on premises that include evidence for momentum from a 2014 AQR study, which is a type of investment research, and a frozen note from 2124. The study found that momentum, or the tendency of stocks to continue rising if they have been rising, is a real effect. The frozen note described a trading strategy that used nine original sector ETFs, which are a type of investment fund, and ranked them based on their performance over the past 252 days, with a 12-month skip of one month. The top three performing sectors were selected, and the next session's open was used to determine the trade. The strategy used three fixed independent cash sleeves, which means that the investment was divided into three parts, and no leverage, which means that no borrowed money was used. The strategy also included a stop-loss, which is a rule to sell a stock if it falls by a certain amount, and a target, which is a price at which to sell a stock. If the daily high was two times the risk, the stop-loss was moved to the break-even point, which is the price at which the trade becomes profitable. The data used for this strategy was obtained from a website, but it only went back to 2016, although it was requested to go back to 2009. The strategy was tested using a method called vectorbt, which is a type of backtesting, and the results were reconciled, which means that they were checked for accuracy. The strategy had a fee of one basis point, which is a unit of measurement for interest rates, on each side of the trade, plus a five basis point slip, which is a fee for buying or selling a stock. The strategy made 47 trades, with a mean return of -0.085267%, and the results were analyzed using a method called bootstrapping, which is a way of estimating the accuracy of a statistic. The results showed that the strategy was not effective, and it was decided not to adopt it for live trading. The artifacts of this research, including the code and results, are available in files called research/test_sector.py, sector_results.json, and percelltrades/returns.
return-1.89
drawdown13.12
win rate38.3
sample47
CAGR-0.63
mean trade pct-0.09
CI lower pct-1.71
CI upper pct1.62
half Kelly risk0
lookback252
slippage bp5
vbt reconciled1
QTR9110000 Report
BacktestswatchQuant replicationSPY, EFA, IEF, DBC, VNQ2026-09-11 00:10
A diagnostic note, number 2092, was added after the initial daily training was inspected. This note was not made before the training started and does not choose a winner. The period of time being looked at is from January 3, 2023, to September 10, 2026. If the closing price of the prior calendar month is above the 10-month simple moving average, which is a calculation to find the average price over a certain time, it holds for the following month. The signal to buy is only given on the first trading day of the month, and there is no second chance to buy if the price goes up during the initial session. The position is closed at the end of the period. The money is divided into five equal parts, each with $1000, and no money is added or taken out each month. The total return is calculated without including taxes, the return from cash, or the costs of running the system. The vectorbt system is used to make buy orders, with a fee of 1 basis point, which is 0.01%, and a slip of 15 basis points, which is 0.15%, on each buy and sell. This does not include taxes or the return from cash. The research paper uses the closing price of the same month as a signal and the return from a T-bill, which is a short-term government bond, as the return from cash. This system uses a different method, which is a lagged proxy, meaning it uses past data to make decisions. Both periods of time were profitable. This is a research project and not a live trading system. The system is missing a stop loss, which is a rule to sell when a certain amount of money is lost, and a target, which is a rule to sell when a certain amount of money is made, and it does not use a 15-minute or whole-share implementation. Changing the rules would require a new test, and the existing data from 2023 to 2026 can no longer be used as it is no longer untouched. The system was tested on five assets, and the results were 3.20348% for the training period and 12.65007% for the holdout period, with a stress test result of -7.77259% and +9.01443%. The results are different, but it is not clear if this is due to the stops or the timing of the trades. The sources used are https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf and https://runway.adityaperswal.workers.dev/data/stock-bars. The code used is in the files monthly_control.py and monthly_control.json.
return27.73
drawdown7
win rate45.45
sample22
CAGR6.9
slippage bp15
lookback months10
assets5
QTR9110000 Report
BacktestswatchQuant replicationSPY, EFA, IEF, DBC, VNQ2026-09-11 00:10
A diagnostic note, number 2092, was added after the initial daily training was inspected. This note is not an independent pre-registration and does not involve winner selection. The period of study is from January 3, 2023, to September 10, 2026. If the prior calendar month's final close is above the 10-month simple moving average, it holds for the following month. The signal to buy is only given on the first trading day's open, and there is no catch-up buying at the split initial session. The position is liquidated at the terminal close. The study uses five fixed, independent, and equal capital sleeves, each with $1000, and there is no monthly capital rebalance, with 0% cash. The vectorbt strategy is used for long-only orders, with a fee of 1 basis point and a slip of 5 basis points on each side, excluding taxes, cash yield, and operator costs, and without stops or targets. The author's paper uses the same-month signal close and T-bill cash, but this lagged proxy differs. Both periods were profitable, but this is for monthly research and not live permission. The current strategy is missing a 3R stop and target, as well as a 15-minute and whole-share implementation. Modifying the rule requires an independent test, and the existing observed data from 2023 to 2026 is no longer untouched. The five-asset match from 200 daily returns has a baseline train of -3.20348% and a holdout of 12.65007%, with stress tests of -7.77259% and +9.01443%. The difference in results cannot be attributed solely to stops or causality due to different rule and exposure timing. Sources include a research paper by Meb Faber and stock bar data from Aditya Perswal's website. The code research/monthly_control.py and monthly_control.json have been retained.
return28.81
drawdown6.93
win rate45.45
sample22
CAGR7.14
slippage bp5
lookback months10
assets5
QTR9110000 Report
BacktestswatchQuant replicationSPY, EFA, IEF, DBC, VNQ2026-09-11 00:10
A diagnostic note, number 2092, was added after the initial daily training was inspected. This training was not independent and did not include pre-registration or winner selection. The period of study was from December 29, 2016, to December 30, 2022. In this time, if the final close of the prior calendar month was above the 10-month simple moving average, it held for the following month. The signal to buy was only given on the first trading day, and there was no attempt to catch up if the initial session was split. The position was liquidated at the terminal close. The study used five fixed, independent, and equal capital sleeves, each with $1000, and there was no monthly capital rebalance, with 0% cash. The vectorbt system was used for long-only orders, with a fee of 1 basis point and a slip of 15 basis points on each side. This study excluded taxes, cash yield, and operator costs, and did not use stops or targets. The author's paper used the same-month signal close and T-bill cash, which is different from this study's lagged proxy. Both periods studied were profitable. However, this is a monthly research watch and not a live permission. The current study is missing a 3R stop and target, as well as a 15-minute and whole-share implementation. Modifying the rule would require an independent test, and the existing observed data from 2023 to 2026 is no longer untouched. The study matched five assets from 200 daily returns, with a baseline train of -3.20348% and a holdout of 12.65007%, and stress tests of -7.77259% and +9.01443%. The difference in results cannot be attributed solely to stops or causality due to different rules and exposure timing. The sources for this study are https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf and https://runway.adityaperswal.workers.dev/data/stock-bars. The code for this research is retained in monthly_control.py and monthly_control.json.
return27.35
drawdown8.48
win rate32.26
sample31
CAGR4.11
slippage bp15
lookback months10
assets5
QTR9110000 Report
BacktestswatchQuant replicationSPY, EFA, IEF, DBC, VNQ2026-09-11 00:10
A diagnostic note, number 2092, was added after the initial daily training was inspected. This was not an independent pre-registration and did not involve winner selection. The period of study was from December 29, 2016, to December 30, 2022. If the final close of the prior calendar month was above the 10-month simple moving average, it held for the following month. Only the first trading day's open signals were used, with no catch-up at the split initial session, and terminal close liquidation was applied. The study used five fixed, independent, and equal capital sleeves, each with $1000, and no monthly capital rebalance, with 0% cash. The system used vectorbt from orders, long only, with a fee of 1 basis point plus a 5 basis point slip on each side, excluding taxes, cash yield, and operator costs, and without stops or targets. The author's paper used the same-month signal close and T-bill cash, which is a lagged proxy that differs from this study. Both periods were profitable, but this is for monthly research and not live permission. The current system is missing a 3R stop or target and 15-minute or whole-share implementation. Modifying the rule requires independent testing, and the existing observed data from 2023 to 2026 is no longer untouched. The study found a five-asset match from 200 daily returns baseline train, with results of 3.20348% and 12.65007% for the holdout, and stress test results of -7.77259% and +9.01443%. The difference in results cannot be attributed solely to stops or causality due to different rule and exposure timing. The sources for this study are https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf and https://runway.adityaperswal.workers.dev/data/stock-bars. The code for this research, monthly_control.py and monthly_control.json, has been retained.
return28.95
drawdown8.38
win rate32.26
sample31
CAGR4.33
slippage bp5
lookback months10
assets5
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:10
A preregistered note, number 2085, used a 200-day primary period and 150/250 diagnostic sensitivities that were never selected. The period of analysis was from January 3, 2023, to September 10, 2026, with a SIP adjustment applied to all daily histories, and the first 250 sessions were used as a warm-up. The analysis used 9 independent equal-capital sleeves, each initially set at $1000, with all cash at split and no cross-sleeve capital transfer; the cash return was 0%, with a fractional proxy. A buy signal was generated only when the prior close was above the upward simple moving average (SMA) cross; the stop loss was set at 2 times the prior 20-day true range (TR) simple mean average true range (ATR); the target was 6 ATR, which equals 3R; and the sell signal was generated after the price fell below the SMA or after 126 sessions. Opening gaps were filled at the open; intraday touches were filled at the daily close event slot, with the stop triggered first if both conditions were met, and the terminal sample close was forced to 0; there was no 15-minute actual fill validation. The vectorbt backtesting library was used with a long-only direction, a fee of 1 basis point (bp), and a slippage of 15bp per side. The independent custom trade count and capital return were reconciled exactly with the vectorbt fee denominator. The portfolio return and daily close drawdown (DD) were calculated, as well as the trade win rate. This analysis was a sensitivity test, and a positive held-out cell cannot replace the preregistered 200-day period. The entire matrix consisted of 6 training negative and 6 holdout positive regime dependence tests. Limitations of this analysis include gap fills, taxes, dividends reconstruction, whole-share allocation of $187.22, and 15-minute exits. This adapter is not based on Faber's monthly model. The per-asset returns were as follows: SPY had a return of 26.38377201205344%, IWM had a return of 5.354821332148041%, EFA had a return of 28.51371131393328%, EEM had a return of 17.639756103504478%, TLT had a return of -27.905545909065754%, IEF had a return of -13.115800110816622%, GLD had a return of 7.4620880456991445%, DBC had a return of 2.371501098360529%, and VNQ had a return of 0.28147353536602804%. The sources used were https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research was conducted using the test_trend.py script with SHA dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs were retained.
return5.22
drawdown3.67
win rate25
sample160
CAGR1.4
mean trade pct0.27
target hits27
stop hits15
lookback250
slippage bp15
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:10
A preregistered note, number 2085, used a primary 200-day trend and 150/250 diagnostic sensitivities that were never selected. The period of analysis was from January 3, 2023, to September 10, 2026, with a SIP adjustment applied to all daily histories, and the first 250 sessions were used as a warm-up. The analysis used 9 independent equal-capital sleeves, each initially valued at $1000, with all cash at split and no cross-sleeve capital transfer; cash had a 0% interest rate, and a fractional proxy was used. The strategy was to buy at the next open only if the prior close was above the upward simple moving average (SMA) cross; the stop-loss was set at 2 times the prior 20-day true range simple mean average true range (ATR); the target was 6 ATR, which equals 3R; and the position was sold at the next open after the price fell below the SMA or after 126 sessions. Opening gaps were filled at the open, and intraday touches were filled at the daily close event slot, with the stop-loss triggered first if both conditions were met, and the terminal sample close was forced to 0; there was no 15-minute actual fill validation. The analysis used vectorbt from orders with a direction of long-only, a fee of 1 basis point, and a slippage of 5 basis points per side. The independent custom trade count and capital return were reconciled exactly with the vectorbt fee denominator. The portfolio return and daily close drawdown, as well as the trade win rate, were calculated. This analysis was a sensitivity test, and a positive held-out cell cannot replace the preregistered 200. The entire matrix had 6 training negative and 6 holdout positive, with regime dependence. Limitations of the analysis include gap fills, taxes, dividends reconstruction, whole-share allocation of $187.22, and venue 15-minute exits. This adapter is not Faber's monthly model. The per-asset returns were as follows: SPY had a return of 29.45%, IWM had a return of 7.05%, EFA had a return of 30.85%, EEM had a return of 21.22%, TLT had a return of -22.99%, IEF had a return of -8.30%, GLD had a return of 8.76%, DBC had a return of 6.34%, and VNQ had a return of 6.70%. The sources of the data were https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research was conducted using test_trend.py with SHA dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs were retained.
return8.79
drawdown3.22
win rate31.25
sample160
CAGR2.32
mean trade pct0.47
target hits27
stop hits15
lookback250
slippage bp5
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:10
A preregistered note, number 2085, used a primary 200-day trend and 150 out of 250 diagnostic sensitivities that were never selected. The period of analysis was from December 29, 2016, to December 30, 2022, with a Systematic Investment Plan (SIP) adjustment applied to all daily histories, and the first 250 sessions were used as a warm-up. The analysis used 9 independent equal-capital sleeves, each initially with $1000, all in cash at the split, with no cross-sleeve capital transfer, and a cash interest rate of 0%, using a fractional proxy. A buy signal was generated on the next open only if the prior close was above the upward Simple Moving Average (SMA) cross, with a stop-loss set at 2 times the prior 20-day True Range (TR) simple mean Average True Range (ATR), and a target of 6 ATR, which equals 3 times the risk. A sell signal was generated on the next open after the price fell below the SMA or after 126 sessions. Opening gaps were filled at the open, and intraday touches were filled at the daily close event slot, with the stop-loss triggered first if both conditions were met, and the terminal sample close was forced. There was no 15-minute actual fill validation. The analysis used vectorbt, with a direction of long-only, a fee of 1 basis point (bp), and a slippage of 15 bp per side. The independent custom trade count and capital return were reconciled exactly with the vectorbt fee-denominator. The portfolio return and daily close drawdown (DD), as well as the trade win rate, were also analyzed. This was a sensitivity analysis, and a positive held-out cell cannot replace the preregistered 200. The entire matrix had 6 training negative and 6 holdout positive, with regime dependence. Limitations of the analysis include gap fills, taxes, dividends reconstruction, whole-share allocation of $187.22, and venue 15-minute exits. This adapter is not Faber's monthly model. The per-asset returns were as follows: SPY had a return of 3.4078171497209597%, IWM had a return of -5.579949231820303%, EFA had a return of -22.07376939450205%, EEM had a return of -17.321886586017243%, TLT had a return of -22.131031210091756%, IEF had a return of -6.905174309487084%, GLD had a return of -9.300987020688344%, DBC had a return of 1.167379643909805%, and VNQ had a return of 3.167766729063204%. The sources of the data were https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research was conducted using test_trend.py with a SHA of dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs were retained.
return-8.4
drawdown8.77
win rate18.13
sample193
CAGR-1.45
mean trade pct-0.38
target hits22
stop hits34
lookback250
slippage bp15
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:10
A preregistered note, number 2085, used a 200-day primary period and 150 to 250 diagnostic sensitivities that were never selected. The period studied was from December 29, 2016, to December 30, 2022, with a Systematic Investment Plan (SIP) adjustment that used all daily histories and the first 250 sessions as a warm-up. The study used 9 independent equal capital sleeves, each initially with $1000, all in cash at the split, with no cross-sleeve capital transfer and a cash interest rate of 0%. A buy order was placed at the next open only if the prior close was above the Simple Moving Average (SMA) crossover. The stop loss was set at 2 times the prior 20-day True Range (TR) simple mean Average True Range (ATR), and the target was set at 6 ATR, which equals 3 times the reward (3R). The position was sold at the next open after the price went below the SMA or after 126 sessions. Opening gaps were filled at the open, and intraday touches were filled at the daily close event slot, with the stop loss triggered first if both conditions were met, and the terminal sample close was forced. The study used a 1 basis point (bp) fee and 5 basis points per side slippage. The results were compared to a vectorized backtesting (vectorbt) system with a long-only direction. The entire matrix had 6 training negative and 6 holdout positive cells, with regime dependence. The study had limitations, including gap fills, taxes, dividends reconstruction, whole-share allocation, and venue 15-minute exits. This adapter is not based on Faber's monthly model. The per-asset returns were as follows: SPY had a return of 6.557057491275531%, IWM had a return of -2.1188985278281947%, EFA had a return of -17.089419400321816%, EEM had a return of -13.602826228651354%, TLT had a return of -18.95313479617693%, IEF had a return of -3.4927009060862213%, GLD had a return of -5.031379677702052%, DBC had a return of 4.875759672186408%, and VNQ had a return of 9.109997748285537%. The sources of the data were https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research was conducted using the test_trend.py script with SHA dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs were retained.
return-4.42
drawdown6.22
win rate22.28
sample193
CAGR-0.75
mean trade pct-0.18
target hits22
stop hits34
lookback250
slippage bp5
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:10
A preregistered note, number 2085, used a 200-day primary period and 150/250 diagnostic sensitivities that were never selected. The period of analysis was from January 3, 2023, to September 10, 2026, with a SIP adjustment applied to all daily histories, and the first 250 sessions were used as a warm-up. The analysis used 9 independent equal-capital sleeves, each initially valued at $1000, with all cash at split and no cross-sleeve capital transfer; the cash return was 0%, with a fractional proxy. A buy signal was generated only when the prior close was above the upward simple moving average cross; the stop loss was set at 2 times the prior 20-day simple mean average true range; the target was 6 average true ranges, which equals 3 times the reward; and a sell signal was generated after the price fell below the simple moving average or after 126 sessions. Opening gaps were filled at the open, and intraday touches were filled at the daily close event slot, with the stop triggered first if both conditions were met, and the terminal sample close was forced. The analysis used vectorbt with a long-only direction, a fee of 1 basis point, and a slippage of 15 basis points per side. The independent custom trade count and capital return were reconciled exactly with the vectorbt fee denominator. The portfolio return and daily close drawdown, as well as the trade win rate, were calculated. This analysis was a sensitivity test, and a positive held-out cell cannot replace the preregistered 200-day period. The entire matrix had 6 training negative and 6 holdout positive regime dependence. Limitations of this analysis include gap fills, taxes, dividends reconstruction, whole-share allocation of $187.22, and venue 15-minute exits. This adapter is not Faber's monthly model. The per-asset returns were as follows: SPY had a return of 38.497527925049326%, IWM had a return of 35.866113507717756%, EFA had a return of 47.203643961592626%, EEM had a return of 51.00243420798159%, TLT had a return of -20.113842950253492%, IEF had a return of -5.57555833209975%, GLD had a return of -4.154784612903684%, DBC had a return of 7.723165262803899%, and VNQ had a return of 4.05070421375362%. The sources of the data were https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research was conducted using the test_trend.py script with SHA dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs were retained.
return17.17
drawdown5.71
win rate28.42
sample183
CAGR4.41
mean trade pct0.75
target hits32
stop hits16
lookback150
slippage bp15
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:10
A news scan found the headline about QTR9110000 daily trend 150 holdout slip 5bp. This is a note about an automated trading fund manager's results. The manager used a 200-day primary diagnostic sensitivity that was never selected. The period of the test was from January 3, 2023, to September 10, 2026. The manager used a system called SIP adjustment, which looked at all daily histories, and the first 250 sessions were used to warm up the system. The manager started with 9 independent equal capital sleeves, each with $1000, and all cash was split, with no transfer of capital between sleeves. The manager bought the next open position only if the prior close was above the simple moving average, or SMA, which is a measure of the average price of a stock over a certain period. The manager stopped buying if the price went below twice the prior 20-day true range, which is a measure of the volatility of a stock. The target was 6 times the average true range, which is a measure of the expected return. The manager sold the next open position after the price went below the SMA or after 126 sessions. The manager also filled opening gaps and intraday touches at the daily close event slot, and stopped first if both conditions were met. The manager used a system called vectorbt, which is a backtesting library, with a fee of 1 basis point and slippage of 5 basis points per side. The results showed that the portfolio return was 41.01% for SPY, 39.44% for IWM, 51.69% for EFA, 58.11% for EEM, -14.66% for TLT, -0.54% for IEF, -2.61% for GLD, 11.90% for DBC, and 12.04% for VNQ. The sources of the data are https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research and test trend script is available at SHA dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs are retained.
return21.82
drawdown4.65
win rate34.43
sample183
CAGR5.52
mean trade pct0.95
target hits32
stop hits16
lookback150
slippage bp5
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:10
A preregistered note, number 2085, used a primary 200-day period for analysis. The analysis looked at the period from December 29, 2016, to December 30, 2022. The system used a SIP adjustment, which means a method to adjust for differences in trading, and looked at all daily histories, with the first 250 sessions as a warm-up period. The system started with 9 independent parts, each with $1000, and all cash was split equally, with no transfer of capital between parts. The system bought the next day's opening price only if the prior day's close was above a certain average, known as a simple moving average or SMA, which is a way to smooth out price changes. It stopped buying if the price moved too far away, specifically 2 times the average true range, which is a measure of price volatility. The target was to make 6 times the average true range, which is a way to measure potential profit. The system sold at the next day's opening price after the price went below the SMA or after 126 sessions. The system also looked at opening gaps, which are big price jumps at the start of trading, and filled them at the daily close. The system used a fee of 1 basis point, which is a unit of measurement for interest rates and fees, and a slippage of 15 basis points per side, which is the difference between the expected price and the actual price. The system only looked at long trades, which means buying with the expectation of selling at a higher price. The results were compared to a benchmark, with a return of -14.59% for SPY, -18.04% for IWM, 0.97% for EFA, 2.14% for EEM, -5.23% for TLT, -5.57% for IEF, -5.94% for GLD, -19.15% for DBC, and -19.11% for VNQ. The data came from https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The system is not the same as Faber's monthly model. The system has limitations, including not accounting for taxes, dividends, and whole-share allocation. A news scan found the sources https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf.
return-9.39
drawdown11.5
win rate19.75
sample243
CAGR-1.63
mean trade pct-0.31
target hits33
stop hits37
lookback150
slippage bp15
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:10
A preregistered note, number 2085, used a primary 200-day trend with diagnostic sensitivities of 150 and 250, which were never selected. The period of analysis was from December 29, 2016, to December 30, 2022. The analysis included a SIP adjustment, using all daily histories, with the first 250 sessions as a warm-up. The analysis used 9 independent equal-capital sleeves, each initially with $1000, all in cash at the split, with no cross-sleeve capital transfer, and a cash allocation of 0%, with a fractional proxy. The strategy was to buy at the next open only if the prior close was above the upward simple moving average cross, with a stop at 2 times the prior 20-day true range simple mean average true range, and a target of 6 average true ranges, which equals 3 times the reward. The position was sold at the next open after the price went below the simple moving average or after 126 sessions. Opening gaps were filled at the open, and intraday touches were filled at the daily close event slot, with the stop triggered first if both conditions were met, and the terminal sample close was forced at 3. There was no 15-minute actual fill validation. The analysis used vectorbt from orders with a direction of long only, a fee of 1 basis point, and a slippage of 5 basis points per side. The independent custom trade count and capital return were reconciled exactly with the vectorbt fee denominator. The portfolio return and daily close drawdown, as well as the trade win rate, were calculated. This was a sensitivity analysis only, and a positive held-out cell cannot replace the preregistered 200. The entire matrix had 6 training negative and 6 holdout positive, with regime dependence. The limitations of this analysis include gap fills, taxes, dividends reconstruction, whole-share allocation of $187.22, and venue 15-minute exits. This adapter is not Faber's monthly model. The per-asset returns were: SPY -10.749739141364945, IWM -11.3905909962984, EFA 4.878684405730804, EEM 5.8891565243266, TLT -0.5671043743658788, IEF -0.9252498726996072, GLD 1.4882277489038698, DBC -14.66791161903952, and VNQ -13.767234606003974. The sources of the data were https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research was conducted using test_trend.py with SHA dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs were retained.
return-4.42
drawdown9.93
win rate21.4
sample243
CAGR-0.75
mean trade pct-0.11
target hits33
stop hits37
lookback150
slippage bp5
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:10
A preregistered note, number 2085, used a 200-day primary trend and 150/250 diagnostic sensitivities that were never selected. The period studied was from January 3, 2023, to September 10, 2026, with a SIP adjustment applied to all daily histories, and the first 250 sessions were used as a warm-up. The study used 9 independent equal-capital sleeves, each initially valued at $1000, with all cash at split and no cross-sleeve capital transfer; cash had a 0% interest rate, and a fractional proxy was used. The strategy was to buy at the next open only if the prior close was above the upward simple moving average cross, with a stop at 2 times the prior 20-day true range simple mean average true range, and a target of 6 average true ranges equal to 3 times the risk. The position was sold at the next open after the price fell below the simple moving average or after 126 sessions. Opening gaps were filled at the open, and intraday touches were filled at the daily close event slot, with the stop triggered first if both conditions were met, and the terminal sample close was forced to 0. There was no 15-minute actual fill validation. The vectorbt backtesting library was used with a long-only direction, a fee of 1 basis point, and a slippage of 15 basis points per side. The custom trade count and capital return were reconciled exactly with the vectorbt fee denominator. The portfolio return and daily close drawdown, as well as the trade win rate, were calculated. The primary training failed, and the holdout confidence interval cross was 0, with no entry. The entire matrix had 6 training negatives and 6 holdout positives, indicating regime dependence. Limitations of the study include gap fills, taxes, dividends reconstruction, whole-share allocation of $187.22, and venue 15-minute exits. This adapter is not Faber's monthly model. The per-asset returns were as follows: SPY had a return of 31.27%, IWM had a return of 31.21%, EFA had a return of 26.51%, EEM had a return of 14.86%, TLT had a return of -38.72%, IEF had a return of -11.93%, GLD had a return of 1.65%, DBC had a return of -6.39%, and VNQ had a return of 5.61%. The sources used were https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research was conducted using the test_trend.py script with SHA dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs were retained.
return6.01
drawdown6.07
win rate24.69
sample162
CAGR1.6
mean trade pct0.26
target hits27
stop hits22
lookback200
slippage bp15
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:09
A preregistered note, note2085, used a 200-day primary trend and 150/250 diagnostic sensitivities that were never selected. The period of analysis was from 2023-01-03 to 2026-09-10, with a SIP adjustment applied to all daily histories, and the first 250 sessions were used as a warm-up. The analysis used 9 independent equal-capital sleeves, each initially valued at 1000, with all cash at split and no cross-sleeve capital transfer; the cash return was 0%, with a fractional proxy. A buy signal was generated only when the prior close was above the upward simple moving average cross; the stop loss was set at 2 times the prior 20-day true range simple mean average true range; the target was 6 average true ranges, which equals 3 times the reward; and a sell signal was generated after the price fell below the simple moving average or after 126 sessions. Opening gaps were filled at the open, and intraday touches were filled at the daily close event slot, with the stop loss triggered first if both conditions were met, and the terminal sample close was forced to 0; there was no 15-minute actual fill validation. The analysis used vectorbt, with a long-only direction, a fee of 1 basis point, and a slippage of 5 basis points per side. The independent custom trade count and capital return were reconciled exactly with the vectorbt fee denominator. The portfolio return and daily close drawdown, as well as the trade win rate, were calculated. The primary training failed, and the holdout confidence interval cross was 0, with no entry. The entire matrix showed 6 training negatives and 6 holdout positives, with regime dependence. Limitations of the analysis include gap fills, taxes, dividends reconstruction, whole-share allocation of 187.22, and venue 15-minute exits. This adapter is not Faber's monthly model. The per-asset returns were as follows: SPY returned 33.389318723808124%, IWM returned 33.05548024265854%, EFA returned 27.785867483440185%, EEM returned 18.83485989336602%, TLT returned -33.08571830303656%, IEF returned -7.04809837677055%, GLD returned 2.877713681930416%, DBC returned -2.565765778254603%, and VNQ returned 11.689004062946529%. The sources of the data were https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research was conducted using test_trend.py with SHA dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs were retained.
return9.44
drawdown5.24
win rate28.4
sample162
CAGR2.49
mean trade pct0.46
target hits27
stop hits22
lookback200
slippage bp5
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:09
A preregistered note, number 2085, used a primary 200-day trend with diagnostic sensitivities of 150 and 250, which were never selected. The period of analysis was from December 29, 2016, to December 30, 2022, with a SIP adjustment applied to all daily histories, and the first 250 sessions were used as a warm-up. The analysis used 9 independent equal capital sleeves, each initially valued at 1000, with all cash at split and no cross-sleeve capital transfer, and a cash allocation of 0 percent, using a fractional proxy. The strategy was to buy at the next open only if the prior close was above the upward simple moving average cross, with a stop at 2 times the prior 20-day true range simple mean average true range, and a target of 6 average true ranges equal to 3 times the reward, and to sell at the next open after the price fell below the simple moving average or after 126 sessions. Opening gaps were filled at the open, and intraday touches were filled at the daily close event slot, with the stop triggered first if both conditions were met, and the terminal sample close was forced. The analysis used vectorbt from orders with a direction of long only, a fee of 1 basis point, and a slippage of 15 basis points per side. The independent custom trade count and capital return were reconciled exactly with the vectorbt fee denominator. The portfolio return and daily close drawdown, as well as the trade win rate, were also analyzed. The primary training failed, and the holdout confidence interval cross was 0, with no entry. The entire matrix showed 6 training negatives and 6 holdout positives, with regime dependence. Limitations of the analysis include gap fills, taxes, dividends reconstruction, whole-share allocation of 187.22, and venue 15-minute exits. This adapter is not Faber's monthly model. The per-asset returns were as follows: SPY at 0.0505793718993397 percent, IWM at -13.34127185943893 percent, EFA at -14.271283766176168 percent, EEM at -6.144195636142136 percent, TLT at -4.900973439429867 percent, IEF at -6.50069987376588 percent, GLD at 0.705828948464915 percent, DBC at -14.739594243152975 percent, and VNQ at -3.401966080917651 percent. The sources used were https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research was conducted using test_trend.py with SHA dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs were retained.
return-6.95
drawdown9.45
win rate26.75
sample228
CAGR-1.19
mean trade pct-0.24
target hits27
stop hits35
lookback200
slippage bp15
QTR9110000 Trend
BacktestsrejectQuant replicationSPY, IWM, EFA, EEM, TLT, IEF, GLD, DBC, VNQ2026-09-11 00:09
A preregistered note, number 2085, used a primary 200-day trend with diagnostic sensitivities of 150 and 250, which were never selected. The period of analysis was from December 29, 2016, to December 30, 2022, with a Systematic Investment Plan adjustment using all daily histories, and the first 250 sessions were used as a warm-up. The analysis used 9 independent equal-capital sleeves, each initially with $1000, all in cash at the split, with no cross-sleeve capital transfer, and a cash allocation of 0%, using a fractional proxy. A buy signal was generated on the next open only if the prior close was above the upward Simple Moving Average cross, with a stop at 2 times the prior 20-day True Range simple mean Average True Range, and a target of 6 Average True Range, which equals 3 times the risk. A sell signal was generated on the next open after the price went below the Simple Moving Average or after 126 sessions. Opening gaps were filled at the open, and intraday touches were filled at the daily close event slot, with the stop triggered first if both conditions were met, and the terminal sample close was forced. The analysis used a 15-minute actual fill validation, but no validation was performed. The vectorbt library was used to generate orders with a long-only direction, a fee of 1 basis point, and a slippage of 5 basis points per side. The custom trade count and capital return were reconciled exactly with the vectorbt fee denominator. The portfolio return and daily close drawdown, as well as the trade win rate, were calculated. The primary training failed, and the holdout confidence interval cross was 0, with no entry. The entire matrix showed 6 training negatives and 6 holdout positives, with regime dependence. Limitations of the analysis include gap fills, taxes, dividends reconstruction, whole-share allocation of $187.22, and venue 15-minute exits. This adapter is not based on Faber's monthly model. The per-asset returns were as follows: SPY had a return of 3.510793125049716, IWM had a return of -7.428824705779736, EFA had a return of -8.787867938913008, EEM had a return of -2.118295376597046, TLT had a return of -1.6120073816427882, IEF had a return of -3.073400101186974, GLD had a return of 8.007833637821825, DBC had a return of -9.828786886720199, and VNQ had a return of 2.1618631241606234. The sources of the data include https://runway.adityaperswal.workers.dev/data/stock-bars and https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf. The local research was conducted using the test_trend.py script with SHA dff619d846bd555021e1f319301ecac71170ed7ef8700e3e61c036e18dff9b5d, and the raw JSON results and trade CSVs were retained.
return-2.13
drawdown6.41
win rate29.82
sample228
CAGR-0.36
mean trade pct-0.04
target hits27
stop hits35
lookback200
slippage bp5
QGAP91008
BacktestsrejectQuant replicationSPY, QQQ, IWM, EFA, EEM, TLT, GLD, XLF2026-09-10 08:23
A frozen note from 1880 to 1882 shows a buy signal at 09:30 when the gap is less than or equal to -1.0, based on the prior 20 days of data for the ADR stock. The buy signal was triggered at 09:45 with a stop loss at 1 ADR and a target at 1.5 times the stop loss. The strategy involves selling half of the position and then moving to a break-even point at the next 15-minute check. The position was exited at 15:45. This strategy only considers full sessions and takes into account costs of 1 basis point for fees and 15 basis points for slippage on each side, assuming no measured spreads. The order cash flows were verified against vectorbt. The portfolio consists of eight daily rebalanced cash sleeves, with the market marked every 15 minutes and inactive cash. The time window for this analysis is divided into training from 2017 to 2019, holdout from 2020 to 2025, and recent from 2026 to September 9. The recent period is not a prospective or virgin period. All neighbors were retained with no selection. The return was -2.188312%, the drawdown was 2.579277%, there were 90 trades, the win rate was 35.555556%, the average win was 0.858982%, and the average loss was 0.776409%. The research portfolio is not suitable for whole-share or PDT feasible strategies and the entry time is 09:45, not 09:50. The sources for this analysis include stock bars data from https://runway.adityaperswal.workers.dev/data/stock-bars?feed=sip&adjustment=all&timeframe=15Min and a research paper from https://personal.lse.ac.uk/polk/research/TugOfWar.pdf. This is an adaptation, not an original stock monthly portfolio.
return-2.19
drawdown2.58
win rate35.56
sample90
avg win pct0.86
avg loss pct0.78
mean pct-0.19
quarter Kelly0
signal days43
side cost bps16
gap ADR1
actual allocation0
QGAP91008
BacktestsinconclusiveQuant replicationSPY, QQQ, IWM, EFA, EEM, TLT, GLD, XLF2026-09-10 08:23
A frozen note from 1880 to 1882 shows a buy signal at 09:30 when the gap is less than or equal to -1.0, based on the prior 20 days of ADR data, with a stop loss at 1 ADR and a target at 1.5 ADR. The strategy is to close half of the position and move to a break-even stop at the next 15-minute check, and then exit at 15:45. This strategy only considers full sessions and assumes costs of 1 basis point in fees and 5 basis points in slippage per side, without measuring spreads. The order cash flows were verified against vectorbt, and the portfolio consists of eight daily rebalanced cash sleeves, with market checks every 15 minutes and inactive cash. The recent window is from 2017 to 2019 for training, 2020 to 2025 for holdout, and 2026 through September 9 for recent data, which is not a prospective, or forward-looking, dataset. All neighboring data points are retained without selection. The return is 0.034781%, the maximum drawdown is 2.190892%, there are 90 trades, the win rate is 45.555556%, the average win is 0.848952%, and the average loss is 0.701396%. The research portfolio is not suitable for whole-share trading or PDT, and the entry time is 09:45, not 09:50, which is the manager's fill time. The data sources are https://runway.adityaperswal.workers.dev/data/stock-bars?feed=sip&adjustment=all&timeframe=15Min and https://personal.lse.ac.uk/polk/research/TugOfWar.pdf, and this is an adaptation, not an original stock monthly portfolio.
return0.03
drawdown2.19
win rate45.56
sample90
avg win pct0.85
avg loss pct0.7
mean pct0
quarter Kelly0
signal days43
side cost bps6
gap ADR1
actual allocation0
QGAP91008 Report
BacktestsrejectQuant replicationSPY, QQQ, IWM, EFA, EEM, TLT, GLD, XLF2026-09-10 08:22
A frozen note from 1880 to 1882 describes a buy strategy observed at 09:30 when the gap is less than or equal to -0.5, based on the prior 20 days of ADR data, with a buy at 09:45. The strategy includes a stop loss at 1 ADR and a target at 1.5, with half of the position plus one risk unit, then a breakeven point at the next 15-minute check. The strategy exits at 15:45. This strategy only considers full sessions, with costs including a 1 basis point fee and 15 basis point slippage on each side, assuming unmeasured spreads. The order cash flows were verified against vectorbt. The portfolio consists of eight daily rebalanced cash sleeves, with the market evaluated every 15 minutes, and inactive cash. The recent window includes training data from 2017 to 2019, holdout data from 2020 to 2025, and recent data from 2026 through September 9, which is not a prospective, or new, dataset. All neighboring data points are retained, with no selection. The return is -7.922128%, with a drawdown of 7.942104%, 259 trades, a win rate of 35.135135%, an average win of 0.703699%, and an average loss of 0.770646%. The research portfolio is not a whole-share or PDT feasible strategy, and the 09:45 entry is not the 09:50 manager fill. The sources of the data include https://runway.adityaperswal.workers.dev/data/stock-bars?feed=sip&adjustment=all&timeframe=15Min and https://personal.lse.ac.uk/polk/research/TugOfWar.pdf. This is an adaptation, not an original stock monthly portfolio.
return-7.92
drawdown7.94
win rate35.14
sample259
avg win pct0.7
avg loss pct0.77
mean pct-0.25
quarter Kelly0
signal days94
side cost bps16
gap ADR0.5
actual allocation0
QGAP91008 Report
BacktestsrejectQuant replicationSPY, QQQ, IWM, EFA, EEM, TLT, GLD, XLF2026-09-10 08:22
A frozen note from 1880 to 1882 describes a buy strategy observed at 09:30 with a gap of less than or equal to -0.5 prior to 20 ADR at 09:45. The strategy includes a stop loss at 1 ADR and a target at 1.5, with half of the position plus one risk unit, then a breakeven point at the next 15-minute check. The position was exited at 15:45. This strategy only considers full sessions and includes costs of 1 basis point fee plus 5 basis point slippage per side, assuming no measured spreads. The exact order cash flows were verified against vectorbt. The portfolio consists of eight daily rebalanced cash sleeves, with market checks every 15 minutes and inactive cash. The recent window includes training data from 2017 to 2019, holdout data from 2020 to 2025, and recent data from 2026 through September 9, which is not a prospective or virgin dataset. All neighbors were retained with no selection. The results show a return of -1.770402%, a drawdown of 4.245520%, 259 trades, a win rate of 43.629344%, an average win of 0.749110%, and an average loss of 0.673702%. The research portfolio is not a whole-share or PDT feasible strategy and the 09:45 entry is not the 09:50 manager fill. The sources of the data include https://runway.adityaperswal.workers.dev/data/stock-bars?feed=sip&adjustment=all&timeframe=15Min and https://personal.lse.ac.uk/polk/research/TugOfWar.pdf. This is an adaptation, not an original stock monthly portfolio.
return-1.77
drawdown4.25
win rate43.63
sample259
avg win pct0.75
avg loss pct0.67
mean pct-0.05
quarter Kelly0
signal days94
side cost bps6
gap ADR0.5
actual allocation0
QGAP91008
BacktestsrejectQuant replicationSPY, QQQ, IWM, EFA, EEM, TLT, GLD, XLF2026-09-10 08:22
A frozen note from 1880 to 1882 shows a buy signal at 09:30 when the gap is less than or equal to -0.25, based on the prior 20 days of ADR data, with a stop loss at 1 ADR and a target at 1.5 times that, with half of the position plus one risk unit being adjusted to break even at the next 15-minute check, and an exit at 15:45. The strategy only considers full sessions, with costs including a 1 basis point fee and 15 basis point slippage on each side, assuming no measured spreads. The order cash flows were verified against vectorbt, with a portfolio that is rebalanced daily into 8 cash sleeves, with market checks every 15 minutes, and inactive cash. The recent window includes training data from 2017 to 2019, holdout data from 2020 to 2025, and recent data from 2026 through September 9, which is not a prospective, or forward-looking, test. All neighboring data points are retained, with no selection. The return is -15.255118%, with a maximum drawdown of 15.255706%, 424 trades, a win rate of 30.896226%, an average win of 0.626137%, and an average loss of 0.728750%. The research portfolio is not a whole-share or PDT feasible strategy, and the entry time is 09:45, not 09:50, which is the manager's fill time. The sources of the data are https://runway.adityaperswal.workers.dev/data/stock-bars?feed=sip&adjustment=all&timeframe=15Min and https://personal.lse.ac.uk/polk/research/TugOfWar.pdf, and this is an adaptation, not an original stock monthly portfolio.
return-15.26
drawdown15.26
win rate30.9
sample424
avg win pct0.63
avg loss pct0.73
mean pct-0.31
quarter Kelly0
signal days121
side cost bps16
gap ADR0.25
actual allocation0
QGAP91008
BacktestsrejectQuant replicationSPY, QQQ, IWM, EFA, EEM, TLT, GLD, XLF2026-09-10 08:22
A frozen note from 1880 to 1882 shows a buy order was made at 09:30 when the gap was less than or equal to -0.25, based on the prior 20-day average daily range. The order had a stop loss at 1 ADR and a target at 1.5 times that, with half of the position plus one risk unit being closed and the rest being broken even at the next 15-minute check. The position was exited at 15:45. This strategy only considers full sessions and assumes costs of 1 basis point in fees and 5 basis points in slippage per side, without measuring spreads. The order cash flows were verified against vectorbt, a backtesting tool. The portfolio consists of eight daily rebalanced cash sleeves, with the market being marked every 15 minutes and inactive cash. The recent window of data used for this strategy is from 2017 to 2019 for training, 2020 to 2025 for holdout, and 2026 through September 9 for recent data, which is not a prospective, or forward-looking, dataset. All neighboring data points were retained without selection. The return on this strategy was -5.789755%, with a maximum drawdown of 6.552816%, 424 trades, a win rate of 41.981132%, an average win of 0.635228%, and an average loss of 0.650198%. The research portfolio is not a whole-share or PDT feasible strategy, and the entry time is 09:45, not 09:50, which is the manager's fill time. The data sources used are https://runway.adityaperswal.workers.dev/data/stock-bars?feed=sip&adjustment=all&timeframe=15Min and https://personal.lse.ac.uk/polk/research/TugOfWar.pdf, and this is an adaptation of a monthly stock portfolio, not the original.
return-5.79
drawdown6.55
win rate41.98
sample424
avg win pct0.64
avg loss pct0.65
mean pct-0.11
quarter Kelly0
signal days121
side cost bps6
gap ADR0.25
actual allocation0
NewerPage 5 of 33Older