Trading Time Machine
  • Home
  • Elite SPY Trading System
  • Systems
  • Trader Tools
  • Trading Forecast
  • Studies
  • About
  • Time Machine Blog
  • Subscribers

Source: backtest.substack.com​

Demystifying Quant Trading with AI: A Guide for Newer Coders

8/9/2026

0 Comments

 

Welcome back! If you are new to AI coding tools like ChatGPT, Claude, or GitHub Copilot, you might be wondering how to apply them to real-world problems. One of the most fascinating areas you can explore is quantitative finance and the development of mechanical trading systems. Today, we are going to look at how AI is transforming the way developers build trading signals, often called “alphas.”

We will keep the math light and focus on how you can use these concepts to sharpen your AI coding skills.

Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.

Where Do These Alphas Come From?

Before we dive into the code, it helps to understand the origin of the “101 Alphas.” These signals were popularized by WorldQuant, a global quantitative asset management firm. The explicit formulas and computer code for these 101 real-life quantitative trading alphas were detailed in a well-known research document, 101 Formulaic Alphas. These were not just theoretical exercises; they were proprietary signals used in production by WorldQuant. By making these formulas public, the firm gave researchers and developers a clear glimpse into what some of the simpler, real-life alphas look like.

What exactly is an “Alpha”?

In quantitative trading, an alpha is simply a mathematical expression or computer code used to predict future movements of financial instruments. To give you a sense of their speed and how they operate, the average holding period for these specific WorldQuant alphas approximately ranges from 0.6 to 6.4 days.

How AI Coding Tools Change the Game

Historically, discovering these profitable trading strategies was a highly manual and labor-intensive process. Analysts had to brainstorm ideas, write the code, and backtest everything by hand.

Now, AI is stepping in to automate this. The research paper 101 Formulaic Alphas proposes an automated framework that leverages large language models to systematically generate, refine, and evaluate trading alpha strategies. By using a multi-agent system, AI can essentially talk to itself to write better code.

Here is how the AI workflow breaks down:

  • The Writer: A specific AI agent (the WriterAgent) generates the initial alpha code based on a text prompt.

  • The Judge: Another AI agent (the JudgeAgent) evaluates the generated code for correctness and logical soundness.

  • The Backtester: A BacktestEngine validates the refined candidate code on historical market data.

Digging In: Your Next Steps

If you want to practice using AI coding tools, quantitative trading formulas are a fantastic testbed. You can look at the open-source Python files to see how formulas are translated into executable Python code using libraries like Pandas and NumPy.

Here are a few takeaways for newer developers looking to experiment:

  • Start with established baselines: You can use the explicit code provided in these open source repositories to replicate and test alphas on historical data.

  • Use structured knowledge: Advanced AI coding frameworks integrate the WorldQuant 101 Formulaic Alphas as a structured knowledge prior to help ground the AI’s generation in proven mathematical patterns. You can prompt your own AI tools with these formulas to help it write better code.

  • Embrace AI roles: Multi-agent frameworks separate tasks across specialized roles. You can mimic this by asking your AI tool to first act as a “Coder” to write your script, and then act as a “Reviewer” to find bugs in it.

By combining foundational trading formulas with modern AI coding assistants, you can rapidly prototype complex data analysis scripts.

Have a Great Day!

Dave Johnson

Quant Developer at

TradingTimeMachine.com

Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.



via Trading Time Machine https://ift.tt/mndj4Ui
0 Comments

Demystifying Quant Trading with AI: A Guide for Newer Coders

8/9/2026

0 Comments

 

Welcome back! If you are new to AI coding tools like ChatGPT, Claude, or GitHub Copilot, you might be wondering how to apply them to real-world problems. One of the most fascinating areas you can explore is quantitative finance and the development of mechanical trading systems. Today, we are going to look at how AI is transforming the way developers build trading signals, often called “alphas.”

We will keep the math light and focus on how you can use these concepts to sharpen your AI coding skills.

Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.

Where Do These Alphas Come From?

Before we dive into the code, it helps to understand the origin of the “101 Alphas.” These signals were popularized by WorldQuant, a global quantitative asset management firm. The explicit formulas and computer code for these 101 real-life quantitative trading alphas were detailed in a well-known research document, 101 Formulaic Alphas. These were not just theoretical exercises; they were proprietary signals used in production by WorldQuant. By making these formulas public, the firm gave researchers and developers a clear glimpse into what some of the simpler, real-life alphas look like.

What exactly is an “Alpha”?

In quantitative trading, an alpha is simply a mathematical expression or computer code used to predict future movements of financial instruments. To give you a sense of their speed and how they operate, the average holding period for these specific WorldQuant alphas approximately ranges from 0.6 to 6.4 days.

How AI Coding Tools Change the Game

Historically, discovering these profitable trading strategies was a highly manual and labor-intensive process. Analysts had to brainstorm ideas, write the code, and backtest everything by hand.

Now, AI is stepping in to automate this. The research paper 101 Formulaic Alphas proposes an automated framework that leverages large language models to systematically generate, refine, and evaluate trading alpha strategies. By using a multi-agent system, AI can essentially talk to itself to write better code.

Here is how the AI workflow breaks down:

  • The Writer: A specific AI agent (the WriterAgent) generates the initial alpha code based on a text prompt.

  • The Judge: Another AI agent (the JudgeAgent) evaluates the generated code for correctness and logical soundness.

  • The Backtester: A BacktestEngine validates the refined candidate code on historical market data.

Digging In: Your Next Steps

If you want to practice using AI coding tools, quantitative trading formulas are a fantastic testbed. You can look at the open-source Python files to see how formulas are translated into executable Python code using libraries like Pandas and NumPy.

Here are a few takeaways for newer developers looking to experiment:

  • Start with established baselines: You can use the explicit code provided in these open source repositories to replicate and test alphas on historical data.

  • Use structured knowledge: Advanced AI coding frameworks integrate the WorldQuant 101 Formulaic Alphas as a structured knowledge prior to help ground the AI’s generation in proven mathematical patterns. You can prompt your own AI tools with these formulas to help it write better code.

  • Embrace AI roles: Multi-agent frameworks separate tasks across specialized roles. You can mimic this by asking your AI tool to first act as a “Coder” to write your script, and then act as a “Reviewer” to find bugs in it.

By combining foundational trading formulas with modern AI coding assistants, you can rapidly prototype complex data analysis scripts.

Have a Great Day!

Dave Johnson

Quant Developer at

TradingTimeMachine.com

Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.



Via https://backtest.substack.com/p/demystifying-quant-trading-with-ai
0 Comments

Buying Weakness on the Nasdaq 100: What 1668 Trades Say About a Strategy Nobody Recommends

8/6/2026

0 Comments

 

There is a trade that violates almost everything you have been taught about risk.

It buys stocks that are falling. Not stocks that have stopped falling and started to turn, which is what most people mean when they say they buy the dip. It puts a limit order below the low of a stock that just closed weak, and it wants that order filled the next day at a worse price than the one that already looked bad.

Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.

It prefers the volatile names. Not the stable ones. It screens the Nasdaq 100 for the top half by average daily range and ignores the calmer stocks entirely.

It has no stop loss. None. There is no price at which the system decides it was wrong and gets out.

And the average losing trade is bigger than the average winning trade.

Four rules. On Nasdaq 100 component stocks over the last ten years it produced a profit factor of 1.69 and an APR of 11.97% against a maximum drawdown of 8.54%.

Sit on that second pair for a moment. The annual return is larger than the worst peak to trough loss. A Calmar ratio above 1, annual return divided by the deepest drawdown, is rare across the quant space, and rarer still from a single set of rules without combining systems. When you see one, the first thing to do is figure out what is holding it up.

Those numbers come from sizing at 8% of equity per position with 2x margin available. The margin is not there to lever the account. Average exposure across the ten years is 11.4%, and total margin interest paid was 285 dollars. It is there so the test can take every signal on the rare morning when more of them fire than cash alone can cover. Why that matters is most of the second half of this article.

Survivorship bias removed. No commissions, and limit orders on both ends so slippage is close to nothing.

Then I ran it on 2007 through 2015, a period the rules had never touched. Same profit factor. Same average winner to within six thousandths of a percent.

I am not telling you to trade this. I am showing it to you because most of what gets published about mean reversion is either wrong or so heavily filtered that you cannot tell where the edge actually lives. This is the raw version. Four rules, nothing protecting it, and the full data including the parts that look bad.

THE RULES

Universe: Nasdaq 100, survivorship bias free. Every stock that was in the index on the day the signal fired, including the ones that got dropped later.

One. Rank the universe by ATRP over the last 63 bars and keep the top half. ATRP is average true range as a percentage of price. It measures how much a stock moves on a typical day. It says nothing about direction. A stock with a 3% average range is not a falling stock or a risky stock, it is a stock with more distance between its highs and lows.

Two. RSI(3) below 10 at the close. Three period RSI is fast and noisy on purpose. Below 10 is not a mild pullback. It means the stock has closed weak several sessions running.

Three. Place a buy limit 1% below that day’s low, good for the next session. If the stock does not trade there, no fill and no trade. If it gaps below, you get the open. One position per symbol at a time, so a stock already held cannot generate a second entry no matter how weak it gets.

Four. Exit on a limit 1.75% above the close, recalculated every night.

That fourth rule is the one worth reading twice. The target is not anchored to your entry. It sits above the most recent close and moves with it. Price falls, the target falls too. There is no fixed profit objective and no fixed loss objective. There is one order, sitting slightly above where the stock last closed, waiting.

Average hold across 1,668 trades is three days.

One housekeeping note. The ATRP ranking needs 63 bars of history before it can rank anything, so the first trade does not fire until November 2016. That is why the first year in the tables below shows two months instead of twelve.

Two Trades

Here is what it looks like when it goes against you. TSLA, late July 2026.

TSLA daily, July 2026. Entry at 312.58 after ATRP(63) expanded from 4.25 to above 5 and RSI(3) hit an extreme low. The red dots above price are the sell limit, recalculated nightly at 1.75% above the prior close. As the stock kept sliding, the target slid with it. Exit at 303.54 for a 2.89% loss after five days.

That is the mechanic working exactly as designed and losing money. The target came down to meet the price instead of waiting for the price to come up.

There is no version of this system where that does not happen. The exit is not there to guarantee a profit on any single trade. It is there to close the position fast, right or wrong, and free the slot.


The same rule produces the opposite outcome often enough to matter. SNDK, the same month.

The target sat where the red dot is, just above 1,050. The stock gapped open well past it the next morning, and a limit order does not fill at the limit when price opens through it. It fills at the open.

Entry 1,040.21. Exit 1,135.01. Up 9.11% in one day.

SNDK daily, July 2026. Entry at 1,040.21 on a limit order below the prior low, with ATRP(63) running near 9.58. The red dot marks where the sell limit sat. The stock gapped open well above it, so the order filled at 1,135.01 instead. Up 9.11% in a single bar.

The target is 1.75% above the close. The average winning trade in this system is 3.16%.

Part of that is mechanical. Your entry sits below the low of the signal bar, and the low is below the close, so the distance from your fill to the first target is already more than 1.75% before anything moves. The rest is gaps like this one.

The exit rule caps where the order goes. It does not cap where it fills.


Results

Ten years, Nasdaq 100 components, survivorship bias free. 1,668 trades.

Backtest results, Nasdaq 100 components, November 2016 through August 2026, survivorship bias free. 1,668 trades sized at 8% of equity per position with 2x margin available. Profit factor 1.69, win rate 64.15%, APR 11.97% against a maximum drawdown of 8.54%. Note that the average winner of 3.16% is smaller than the average loser of 3.25%.

Look at the two averages. The winners are smaller than the losers.

Everything you have ever read about trading says that number needs to be the other way around. Cut your losses short. Let your winners run. Never risk a dollar to make fifty cents. That advice is in every book on the shelf and it is not wrong, exactly, but it describes one way to build an edge and people have been taught it is the only way.

There are two levers. How often you win and how much you win when you do. Trend systems win maybe 35% of the time and survive because the winners are enormous. This does the opposite. It wins 64% of the time with winners that are slightly smaller than the losers, and the frequency carries it.

Neither is better. They are different shapes, and they behave differently in ways that matter more than the win rate.

Trend systems generally carry lower risk adjusted returns. They spend long stretches giving back open profit waiting for the next real move, and the drawdowns tend to be deep relative to what the system earns per year. That is the cost of a structure that needs the occasional enormous winner. You have to sit through a lot of nothing to be there when it shows up.

This system holds positions for three days. It is idle most of the time and fully committed on a handful of days, which produces a completely different equity curve.

What matters is that the shape holds up over enough trades that you can trust it. 1,668 is enough. That is where confidence comes from, and it is the reason a bad week does not require a decision.


What It Does In Bad Markets

Here is the year by year, 2016 to now, against the Nasdaq 100.

2022 returned 53.57% while the index lost 16.77%. Every month green except December.

Now look at the years running the other direction. 2019 gave 4.30% while the index ran 33.91%. 2023 gave 5.36% against 28.15%. 2024 gave 5.39% against 26.49%.

That is not a coincidence and it is not a hedge someone bolted on. It falls out of the rules.

The system needs weakness to get filled. In a bull market that runs quietly, the setups do not fire and the limit orders do not get hit. Exposure runs low. The system sits in cash. When the market breaks, three things improve at once. More stocks trigger the RSI condition. More limit orders get filled because more stocks trade below their prior low. And the ranges expand, which means the target is reachable in fewer days.

The conditions that make the trade feel impossible are the conditions that make it work.

Then there is 2020. The year returned -0.31%. The covid crash was fast, under two months, and the system took a drawdown in it. March was -4.08%. It made that back over the rest of the year and finished flat.

That happens. Worth knowing it happens before you find out live.


The Part That Actually Matters

Everything above was measured on data I used to build the thing for you. That is worth something, but not much on its own.

So I ran it on 2007 through 2015. Same four rules, same sizing, no overlap with the first test. A period the rules had never touched.

APR within two tenths of a point. Profit factor within two hundredths. The average winning trade differs by six thousandths of a percent.

Those are not close numbers. They are the same numbers.

Monthly and annual returns, 2007 through 2015, at 8% per position with 2x margin available. This period was never used to build or adjust the rules. 2008 returned 26.15% against a benchmark loss of 34.67%

2008 returned 26.15% while the index lost 34.67%. October alone was 18.04%.

The drawdown is the only figure that moved, and it is worth being clear about what a max drawdown is. It is one event. A handful of days in November 2008 where the moves were enormous and fast. Take those days out and the other 99% of the period looks almost exactly like the recent one.

That is the part that should get your attention. Not the 2008 return. The fact that two nine year windows, one of them containing the worst market in fifty years, produced numbers this close to identical. It lends to the power of properly applied backtesting with quality data.

One more thing from that block. The standard deviation of annual returns was 6.23% out of sample against 14.24% in sample. Year to year, the results were more consistent in the period that contained the financial crisis than in the calmer one.

Every year in that table is positive.


And here is the part I cannot fully explain. This system does everything the books say not to do, and the risk adjusted numbers came out high. Not despite the unconventional construction. Somehow because of it.

There are disaster trades in here. Positions that dropped 20% and more before the target caught them. They exist and they always will, because nothing in the rules stops a stock from falling.

They do not matter because of how the position is sized. A 25% loss on an 8% position costs the account 2%. The trade is a disaster. The account barely notices. That is the entire mechanism, and it is why the sizing question in the next section is not a footnote to the strategy. It is the strategy.

The rest follows from the structure. A 64% win rate means the losing streaks stay short. Three day holds mean the account is not carrying open risk for long. This will almost never produce a spectacular year. It also cannot produce the kind of hole that ends the experiment.

I have found this element consistently through the years. The conventional approach has less built in edge than the unconventional.


Now the Part Nobody Writes About

Everything so far has been about the signal. Whether the trade works.

The signal is not the system.

Here is how I approach this, and the order matters. Start at 1% per position. At 1% across a hundred name index, the account could hold every symbol in the universe at the same time. Nothing can be refused. Every signal the rules generate gets taken.

That is not a portfolio. It is a measurement.

What it measures first is the signal itself, clean. Profit factor 1.774, average trade 0.900%, 1,673 trades, no portfolio constraint standing in the way. Whatever that number is, it belongs to the rules and nothing else.

Then it gives you the number that shapes every decision after it.

Maximum exposure at 1% per position: 24%. Twenty four positions open at the same time.

That is the peak the system ever demanded across ten years. And you have to run it unconstrained to see it. Test at any size where the account can turn a signal away and the peak is masked. The system might have wanted twenty four and you would never know, because it only ever got to take twelve.

Average exposure over the same period was 1.4%. One or two positions on a typical day. Then the market breaks and it wants twenty four.

So now you know what full coverage costs. The account has to be able to carry twenty four positions if it wants everything the rules generate. That is the number every step from here gets measured against.

Now you creep in. Step the size up one rung at a time and watch what changes.

The ladder

Same four rules at every rung. Only the position size changes.

The same four rules at five position sizes, November 2016 through August 2026. The 8%, 10% and 12% rows have 2x margin available. Read the last two columns together: as the account starts refusing signals, profit factor and average trade decline. The signal never changed. Only the account's ability to take it did.

At 4% the account still takes everything. Twenty five slots against a peak demand of twenty four. One to spare. Profit factor holds at 1.758 and the Calmar peaks here at 1.452.

That is where the account runs out of room. Twenty five slots is the ceiling at 4%, and above that size there is not enough cash to cover a twenty four position morning. At 8% you get twelve positions before the account is fully invested. Half of what the system asks for on its busiest days.

So the margin comes in to buy that room back. 8% with 2x available gives you twenty five slots again. Same coverage, twice the size per position.

At 8% the first signals still start getting turned away. Twenty three of them.

Then read the last two columns down the rest of the table together.

Profit factor 1.692 at 23 refused. 1.630 at 57. 1.616 at 93.

The signal never changed. Same rules, same universe, same ten years, same entries firing on the same mornings. What changed is how many of them the account could actually take.

Two things are happening as that number climbs.

The refused signals are not random with respect to quality. They pile up on the crowded mornings, the deep flush days, which is exactly where this system does its best work. Average trade slides right alongside profit factor: 0.900, 0.905, 0.859, 0.818, 0.811.

And those same days carry the widest outcomes in both directions. On an ordinary day the system takes one or two positions and the draw never comes up. On the days it does come up, the spread between the best and worst names is enormous. So the software is not just choosing occasionally. It is choosing on the days that matter most to the final number.


What that number really is

Wealth-Lab calls it NSF, insufficient funds. Most people who see the column read it as an error log and move on.

It is not an error log. It is a count of the decisions the software made on your behalf.

When six signals fire on the same morning and there is room for four, something has to choose. Wealth-Lab picks at random from the signals available that day. That is the honest approach, because with daily bar data there is no way to know which orders would have filled first. All you have is the open, high, low and close. The sequence inside the session is invisible.

So the software rolls the dice, takes four, discards two, and reports the result as though the strategy produced it.

That is the right way to handle it. It is also why the number matters. The reported profit factor at 12% is not the system’s profit factor. It is the profit factor of one particular random draw out of a great many possible draws.

Watch what that does. Here are three runs of the same configuration. Same rules, same data, same dates, nothing touched between them.

Three consecutive runs of the identical configuration. Same rules, same data, same dates, nothing changed between them. The spread comes entirely from twenty three signals that had to be resolved at random.

Three different answers. A point and a half of spread from twenty three unresolved fills. Small enough that you would never notice it, which is exactly why 8% is a comfortable place to sit.

Now imagine that column reading 400 instead of 23. Someone sizes at 40% per slot, sees a huge APR, and falls in love with it. Most of what they are looking at was decided by a random draw.

Why this does not show up in most backtests

Most published backtests run one symbol at a time. Every signal fills, because there is no shared account for them to compete over. That measures signal quality and nothing else.

Signal quality is worth measuring. It is just not the same question as whether you can run the thing.

This is portfolio level testing, and it is the part that separates a study from a system. A lot of the Python work getting shared publicly never gets here, not because the people writing it are careless, but because the tooling was not built to model an account with a finite amount of money and twenty four orders arriving at once.

Where the margin comes in

Which brings me back to the 2x.

It is not there to lever the account. Average exposure is 11.4% and total margin interest across the whole test was 285 dollars. Most days it does nothing at all.

It is there for the mornings when the market flushes and more signals fire than cash alone can cover. On those days it lets the test take all of them instead of turning some away, which keeps the software out of the decision and keeps the reported result closer to what the rules actually produced.

Maximum margin actually used was 1.83x. It got there on the days you would expect.

THE PALETTE

This is not a system I would hand you and tell you to trade.

There are no filters on it. Nothing checks the market environment. Nothing avoids earnings. Nothing sizes differently when volatility is high. It buys weakness in the top half of the Nasdaq 100 by range, and that is the entire thought.

That is on purpose. Filters added early tell you nothing. Layer three conditions onto a signal before you know whether the raw version works and you cannot tell what you found. Maybe there was an edge. Maybe you fit the data. There is no way back from that.

So you start wide. Establish that the underlying thing works, unprotected, across a large sample and a period the rules never saw. Then you know what you are building on.

That is what this is. A clean baseline with an obvious list of things to test next.

The other reason to leave it here is that no single system needs to be the answer. 2020 returned nothing. If this were the only thing you ran, a flat year would feel like a crisis. As one component among many it is just a piece doing what it does while something else carries the load. I wrote about how that works here.

Head down. Keep building.

Dave Johnson
Quantitative Developer
TradingTimeMachine.com

Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.



via Trading Time Machine https://ift.tt/t4Jg9l3
0 Comments

Buying Weakness on the Nasdaq 100: What 1668 Trades Say About a Strategy Nobody Recommends

8/6/2026

0 Comments

 

There is a trade that violates almost everything you have been taught about risk.

It buys stocks that are falling. Not stocks that have stopped falling and started to turn, which is what most people mean when they say they buy the dip. It puts a limit order below the low of a stock that just closed weak, and it wants that order filled the next day at a worse price than the one that already looked bad.

Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.

It prefers the volatile names. Not the stable ones. It screens the Nasdaq 100 for the top half by average daily range and ignores the calmer stocks entirely.

It has no stop loss. None. There is no price at which the system decides it was wrong and gets out.

And the average losing trade is bigger than the average winning trade.

Four rules. On Nasdaq 100 component stocks over the last ten years it produced a profit factor of 1.69 and an APR of 11.97% against a maximum drawdown of 8.54%.

Sit on that second pair for a moment. The annual return is larger than the worst peak to trough loss. A Calmar ratio above 1, annual return divided by the deepest drawdown, is rare across the quant space, and rarer still from a single set of rules without combining systems. When you see one, the first thing to do is figure out what is holding it up.

Those numbers come from sizing at 8% of equity per position with 2x margin available. The margin is not there to lever the account. Average exposure across the ten years is 11.4%, and total margin interest paid was 285 dollars. It is there so the test can take every signal on the rare morning when more of them fire than cash alone can cover. Why that matters is most of the second half of this article.

Survivorship bias removed. No commissions, and limit orders on both ends so slippage is close to nothing.

Then I ran it on 2007 through 2015, a period the rules had never touched. Same profit factor. Same average winner to within six thousandths of a percent.

I am not telling you to trade this. I am showing it to you because most of what gets published about mean reversion is either wrong or so heavily filtered that you cannot tell where the edge actually lives. This is the raw version. Four rules, nothing protecting it, and the full data including the parts that look bad.

THE RULES

Universe: Nasdaq 100, survivorship bias free. Every stock that was in the index on the day the signal fired, including the ones that got dropped later.

One. Rank the universe by ATRP over the last 63 bars and keep the top half. ATRP is average true range as a percentage of price. It measures how much a stock moves on a typical day. It says nothing about direction. A stock with a 3% average range is not a falling stock or a risky stock, it is a stock with more distance between its highs and lows.

Two. RSI(3) below 10 at the close. Three period RSI is fast and noisy on purpose. Below 10 is not a mild pullback. It means the stock has closed weak several sessions running.

Three. Place a buy limit 1% below that day’s low, good for the next session. If the stock does not trade there, no fill and no trade. If it gaps below, you get the open. One position per symbol at a time, so a stock already held cannot generate a second entry no matter how weak it gets.

Four. Exit on a limit 1.75% above the close, recalculated every night.

That fourth rule is the one worth reading twice. The target is not anchored to your entry. It sits above the most recent close and moves with it. Price falls, the target falls too. There is no fixed profit objective and no fixed loss objective. There is one order, sitting slightly above where the stock last closed, waiting.

Average hold across 1,668 trades is three days.

One housekeeping note. The ATRP ranking needs 63 bars of history before it can rank anything, so the first trade does not fire until November 2016. That is why the first year in the tables below shows two months instead of twelve.

Two Trades

Here is what it looks like when it goes against you. TSLA, late July 2026.

TSLA daily, July 2026. Entry at 312.58 after ATRP(63) expanded from 4.25 to above 5 and RSI(3) hit an extreme low. The red dots above price are the sell limit, recalculated nightly at 1.75% above the prior close. As the stock kept sliding, the target slid with it. Exit at 303.54 for a 2.89% loss after five days.

That is the mechanic working exactly as designed and losing money. The target came down to meet the price instead of waiting for the price to come up.

There is no version of this system where that does not happen. The exit is not there to guarantee a profit on any single trade. It is there to close the position fast, right or wrong, and free the slot.


The same rule produces the opposite outcome often enough to matter. SNDK, the same month.

The target sat where the red dot is, just above 1,050. The stock gapped open well past it the next morning, and a limit order does not fill at the limit when price opens through it. It fills at the open.

Entry 1,040.21. Exit 1,135.01. Up 9.11% in one day.

SNDK daily, July 2026. Entry at 1,040.21 on a limit order below the prior low, with ATRP(63) running near 9.58. The red dot marks where the sell limit sat. The stock gapped open well above it, so the order filled at 1,135.01 instead. Up 9.11% in a single bar.

The target is 1.75% above the close. The average winning trade in this system is 3.16%.

Part of that is mechanical. Your entry sits below the low of the signal bar, and the low is below the close, so the distance from your fill to the first target is already more than 1.75% before anything moves. The rest is gaps like this one.

The exit rule caps where the order goes. It does not cap where it fills.


Results

Ten years, Nasdaq 100 components, survivorship bias free. 1,668 trades.

Backtest results, Nasdaq 100 components, November 2016 through August 2026, survivorship bias free. 1,668 trades sized at 8% of equity per position with 2x margin available. Profit factor 1.69, win rate 64.15%, APR 11.97% against a maximum drawdown of 8.54%. Note that the average winner of 3.16% is smaller than the average loser of 3.25%.

Look at the two averages. The winners are smaller than the losers.

Everything you have ever read about trading says that number needs to be the other way around. Cut your losses short. Let your winners run. Never risk a dollar to make fifty cents. That advice is in every book on the shelf and it is not wrong, exactly, but it describes one way to build an edge and people have been taught it is the only way.

There are two levers. How often you win and how much you win when you do. Trend systems win maybe 35% of the time and survive because the winners are enormous. This does the opposite. It wins 64% of the time with winners that are slightly smaller than the losers, and the frequency carries it.

Neither is better. They are different shapes, and they behave differently in ways that matter more than the win rate.

Trend systems generally carry lower risk adjusted returns. They spend long stretches giving back open profit waiting for the next real move, and the drawdowns tend to be deep relative to what the system earns per year. That is the cost of a structure that needs the occasional enormous winner. You have to sit through a lot of nothing to be there when it shows up.

This system holds positions for three days. It is idle most of the time and fully committed on a handful of days, which produces a completely different equity curve.

What matters is that the shape holds up over enough trades that you can trust it. 1,668 is enough. That is where confidence comes from, and it is the reason a bad week does not require a decision.


What It Does In Bad Markets

Here is the year by year, 2016 to now, against the Nasdaq 100.

2022 returned 53.57% while the index lost 16.77%. Every month green except December.

Now look at the years running the other direction. 2019 gave 4.30% while the index ran 33.91%. 2023 gave 5.36% against 28.15%. 2024 gave 5.39% against 26.49%.

That is not a coincidence and it is not a hedge someone bolted on. It falls out of the rules.

The system needs weakness to get filled. In a bull market that runs quietly, the setups do not fire and the limit orders do not get hit. Exposure runs low. The system sits in cash. When the market breaks, three things improve at once. More stocks trigger the RSI condition. More limit orders get filled because more stocks trade below their prior low. And the ranges expand, which means the target is reachable in fewer days.

The conditions that make the trade feel impossible are the conditions that make it work.

Then there is 2020. The year returned -0.31%. The covid crash was fast, under two months, and the system took a drawdown in it. March was -4.08%. It made that back over the rest of the year and finished flat.

That happens. Worth knowing it happens before you find out live.


The Part That Actually Matters

Everything above was measured on data I used to build the thing for you. That is worth something, but not much on its own.

So I ran it on 2007 through 2015. Same four rules, same sizing, no overlap with the first test. A period the rules had never touched.

APR within two tenths of a point. Profit factor within two hundredths. The average winning trade differs by six thousandths of a percent.

Those are not close numbers. They are the same numbers.

Monthly and annual returns, 2007 through 2015, at 8% per position with 2x margin available. This period was never used to build or adjust the rules. 2008 returned 26.15% against a benchmark loss of 34.67%

2008 returned 26.15% while the index lost 34.67%. October alone was 18.04%.

The drawdown is the only figure that moved, and it is worth being clear about what a max drawdown is. It is one event. A handful of days in November 2008 where the moves were enormous and fast. Take those days out and the other 99% of the period looks almost exactly like the recent one.

That is the part that should get your attention. Not the 2008 return. The fact that two nine year windows, one of them containing the worst market in fifty years, produced numbers this close to identical. It lends to the power of properly applied backtesting with quality data.

One more thing from that block. The standard deviation of annual returns was 6.23% out of sample against 14.24% in sample. Year to year, the results were more consistent in the period that contained the financial crisis than in the calmer one.

Every year in that table is positive.


And here is the part I cannot fully explain. This system does everything the books say not to do, and the risk adjusted numbers came out high. Not despite the unconventional construction. Somehow because of it.

There are disaster trades in here. Positions that dropped 20% and more before the target caught them. They exist and they always will, because nothing in the rules stops a stock from falling.

They do not matter because of how the position is sized. A 25% loss on an 8% position costs the account 2%. The trade is a disaster. The account barely notices. That is the entire mechanism, and it is why the sizing question in the next section is not a footnote to the strategy. It is the strategy.

The rest follows from the structure. A 64% win rate means the losing streaks stay short. Three day holds mean the account is not carrying open risk for long. This will almost never produce a spectacular year. It also cannot produce the kind of hole that ends the experiment.

I have found this element consistently through the years. The conventional approach has less built in edge than the unconventional.


Now the Part Nobody Writes About

Everything so far has been about the signal. Whether the trade works.

The signal is not the system.

Here is how I approach this, and the order matters. Start at 1% per position. At 1% across a hundred name index, the account could hold every symbol in the universe at the same time. Nothing can be refused. Every signal the rules generate gets taken.

That is not a portfolio. It is a measurement.

What it measures first is the signal itself, clean. Profit factor 1.774, average trade 0.900%, 1,673 trades, no portfolio constraint standing in the way. Whatever that number is, it belongs to the rules and nothing else.

Then it gives you the number that shapes every decision after it.

Maximum exposure at 1% per position: 24%. Twenty four positions open at the same time.

That is the peak the system ever demanded across ten years. And you have to run it unconstrained to see it. Test at any size where the account can turn a signal away and the peak is masked. The system might have wanted twenty four and you would never know, because it only ever got to take twelve.

Average exposure over the same period was 1.4%. One or two positions on a typical day. Then the market breaks and it wants twenty four.

So now you know what full coverage costs. The account has to be able to carry twenty four positions if it wants everything the rules generate. That is the number every step from here gets measured against.

Now you creep in. Step the size up one rung at a time and watch what changes.

The ladder

Same four rules at every rung. Only the position size changes.

The same four rules at five position sizes, November 2016 through August 2026. The 8%, 10% and 12% rows have 2x margin available. Read the last two columns together: as the account starts refusing signals, profit factor and average trade decline. The signal never changed. Only the account's ability to take it did.

At 4% the account still takes everything. Twenty five slots against a peak demand of twenty four. One to spare. Profit factor holds at 1.758 and the Calmar peaks here at 1.452.

That is where the account runs out of room. Twenty five slots is the ceiling at 4%, and above that size there is not enough cash to cover a twenty four position morning. At 8% you get twelve positions before the account is fully invested. Half of what the system asks for on its busiest days.

So the margin comes in to buy that room back. 8% with 2x available gives you twenty five slots again. Same coverage, twice the size per position.

At 8% the first signals still start getting turned away. Twenty three of them.

Then read the last two columns down the rest of the table together.

Profit factor 1.692 at 23 refused. 1.630 at 57. 1.616 at 93.

The signal never changed. Same rules, same universe, same ten years, same entries firing on the same mornings. What changed is how many of them the account could actually take.

Two things are happening as that number climbs.

The refused signals are not random with respect to quality. They pile up on the crowded mornings, the deep flush days, which is exactly where this system does its best work. Average trade slides right alongside profit factor: 0.900, 0.905, 0.859, 0.818, 0.811.

And those same days carry the widest outcomes in both directions. On an ordinary day the system takes one or two positions and the draw never comes up. On the days it does come up, the spread between the best and worst names is enormous. So the software is not just choosing occasionally. It is choosing on the days that matter most to the final number.


What that number really is

Wealth-Lab calls it NSF, insufficient funds. Most people who see the column read it as an error log and move on.

It is not an error log. It is a count of the decisions the software made on your behalf.

When six signals fire on the same morning and there is room for four, something has to choose. Wealth-Lab picks at random from the signals available that day. That is the honest approach, because with daily bar data there is no way to know which orders would have filled first. All you have is the open, high, low and close. The sequence inside the session is invisible.

So the software rolls the dice, takes four, discards two, and reports the result as though the strategy produced it.

That is the right way to handle it. It is also why the number matters. The reported profit factor at 12% is not the system’s profit factor. It is the profit factor of one particular random draw out of a great many possible draws.

Watch what that does. Here are three runs of the same configuration. Same rules, same data, same dates, nothing touched between them.

Three consecutive runs of the identical configuration. Same rules, same data, same dates, nothing changed between them. The spread comes entirely from twenty three signals that had to be resolved at random.

Three different answers. A point and a half of spread from twenty three unresolved fills. Small enough that you would never notice it, which is exactly why 8% is a comfortable place to sit.

Now imagine that column reading 400 instead of 23. Someone sizes at 40% per slot, sees a huge APR, and falls in love with it. Most of what they are looking at was decided by a random draw.

Why this does not show up in most backtests

Most published backtests run one symbol at a time. Every signal fills, because there is no shared account for them to compete over. That measures signal quality and nothing else.

Signal quality is worth measuring. It is just not the same question as whether you can run the thing.

This is portfolio level testing, and it is the part that separates a study from a system. A lot of the Python work getting shared publicly never gets here, not because the people writing it are careless, but because the tooling was not built to model an account with a finite amount of money and twenty four orders arriving at once.

Where the margin comes in

Which brings me back to the 2x.

It is not there to lever the account. Average exposure is 11.4% and total margin interest across the whole test was 285 dollars. Most days it does nothing at all.

It is there for the mornings when the market flushes and more signals fire than cash alone can cover. On those days it lets the test take all of them instead of turning some away, which keeps the software out of the decision and keeps the reported result closer to what the rules actually produced.

Maximum margin actually used was 1.83x. It got there on the days you would expect.

THE PALETTE

This is not a system I would hand you and tell you to trade.

There are no filters on it. Nothing checks the market environment. Nothing avoids earnings. Nothing sizes differently when volatility is high. It buys weakness in the top half of the Nasdaq 100 by range, and that is the entire thought.

That is on purpose. Filters added early tell you nothing. Layer three conditions onto a signal before you know whether the raw version works and you cannot tell what you found. Maybe there was an edge. Maybe you fit the data. There is no way back from that.

So you start wide. Establish that the underlying thing works, unprotected, across a large sample and a period the rules never saw. Then you know what you are building on.

That is what this is. A clean baseline with an obvious list of things to test next.

The other reason to leave it here is that no single system needs to be the answer. 2020 returned nothing. If this were the only thing you ran, a flat year would feel like a crisis. As one component among many it is just a piece doing what it does while something else carries the load. I wrote about how that works here.

Head down. Keep building.

Dave Johnson
Quantitative Developer
TradingTimeMachine.com

Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.



Via https://backtest.substack.com/p/buying-weakness-on-the-nasdaq-100
0 Comments

Introducing VIX Kinetic: When the Odds Favor a Rise in Volatility

8/1/2026

0 Comments

 

Introducing VIX Kinetic

I have spent a great deal of time studying volatility and building systems around it. Over the years, I have used volatility signals to make short-term adjustments to portfolios, trading systems, and long-volatility positions.

The question that led to VIX Kinetic was fairly narrow. Can we identify, at the end of the day, when the odds have shifted in favor of a short-term rise in VIX?

The goal was not to predict a crash. It was not to call a market top or explain why investors should suddenly become bearish. I wanted to know whether there were repeatable conditions where VIX had become sufficiently compressed that a short-term rebound was more likely.

The answer, at least historically, was yes.

The Historical Record

From March 1999 through July 2026, VIX Kinetic produced 338 historical signals. VIX finished higher under the system’s defined exit rules on 87.9% of them.

The average positive move was 8.9%. Winning signals were held for an average of 4.7 trading days. Losing signals averaged -5.33% and lasted an average of 12.34 days. The system was historically good at identifying quick volatility rebounds. The Signal has a maximum active window of 22 days.

Those numbers describe the movement of the VIX Index itself. They show that the system historically identified a repeatable short-term tendency in volatility, not an expressed trade. VIX is an index not a directly tradeable asset.

The strongest entry regime was when VIX began between 15 and 18. In that range, 92.2% of signals finished higher, the average VIX result was 9.48%, and resolution tended to be quicker than in signals that began with VIX already elevated.

That matters because it supports the central idea behind the system. The better opportunities often appeared before fear was obvious, not after volatility had already expanded.

You can see the complete picture in two places on the site: the System Page, for how the system works, and the Full Signal History, for every one of the 338 signals, dates and VIX levels included.

System Market Conditions

What makes the signal interesting is where it tends to appear. VIX Kinetic often fires after volatility has extended lower inside an otherwise quiet market. Fear is not obvious. The market may feel comfortable. Most traders are not looking for a volatility trade at all.

That is precisely the point. The system does not wait for volatility to begin rising before recognizing it. It looks for the conditions from which a short-term VIX rebound has historically become more likely.

January through July 2026. Gray triangles mark VIX Kinetic entry signals, green triangles mark exits. The period includes a genuine spike in March, VIX surging from the high teens to nearly 34, alongside the quieter, choppier conditions where most of the signals actually fired.

Multiple signals can occur in close succession without requiring a major market event.

It Is Not a Crash Predictor

The system is not forecasting a market collapse every time it fires. It is forecasting a relatively moderate, short-term rise in VIX.

That narrow objective is part of why the signal is useful. A modest VIX pop can still:

  • change option pricing

  • widen intraday ranges

  • pressure high-beta stocks

  • weaken crowded momentum names

  • improve the setup for a short candidate

  • make new long exposure less attractive

While in a signal, most periods, though not all, will carry an intraday VIX target of 10.2%. That target is set the evening before, along with everything else. Nothing about the trade is decided after the market opens.

The Signal Is Useful Even Without Trading VIX Derivatives

You can use it to:

  • reduce long exposure

  • delay a purchase

  • tighten risk

  • time a short candidate

  • avoid chasing momentum

  • simply become more selective for a few sessions

Options Are Probably the Most Approachable Expression

For most traders, VIX options will probably be the most approachable way to express the signal. A long call offers defined premium risk, while a call spread can reduce the upfront cost and still participate in the type of short-term VIX move the system was designed to identify.

The synthetic options study suggested that a 35 DTE at-the-money call produced a 77.2% positive rate, an average return of 24.3%, and a median return of 30.7%. A call placed roughly one VIX point in the money produced a 78.1% positive rate, a 21.9% average return, and a 29.7% median return. The defined-risk call spread showed an 82.8% positive rate, with a 16.5% average return and a 23.9% median return.

Those figures need to be understood correctly. They come from a synthetic pricing model, not from historical option-chain quotes, and they are not realized performance claims. They are also averages built from a full range of outcomes, including trades that lost most or all of the premium paid, not just the winners. Real results will depend on the corresponding VIX futures contract, implied volatility, time decay, strike selection, expiration, bid-ask spreads, and execution. A correct VIX forecast can still produce a disappointing option trade if the contract is too expensive, too far out of the money, or too close to expiration.

That is why I created a separate implementation manual, included with purchase. It does not present one required trade. It explains how different structures may respond to the same signal, why longer-dated ATM or slightly in-the-money calls may provide a practical starting point, and where call spreads or shorter-dated rolling approaches may fit for more experienced traders.

Futures Are Cleaner but Probably Not for Most

Experienced and well-funded traders may prefer VX or VXM futures because the exposure is more direct and linear. But they bring leverage, margin, overnight risk, and contract-selection risk that options don’t. Options remain the more approachable starting point for most members. Futures are there for the traders who already know what they’re taking on.

The Signal Is Mechanical

After the market closes I update all relevant data and generate the signal for the next day. That signal posts each evening to the password protected page on the site. A quick check gives you what you need to navigate the short to medium term.

Example of the private signal page

If the market is already in a higher volatility regime, the system will generally not fire a new signal. That’s normal. The signal requires VIX to reset to lower levels. The exit works the same way: the page will post either an exit for tomorrow or a specific VIX target level, defined the night before. The best way to get a feel for the signal is to go through the full signal history for yourself - https://www.tradingtimemachine.com/vix-kinetic-history.html

The Early Adopter Rollout

This is a soft launch. I want a core group of subscribers to test the execution, and give me honest feedback on the workflow.

I also want to be straight about the value here, because it’s a little absurd when you actually run the numbers. $97 gets you lifetime access to a signal tested against 27 years of data, the complete history so you can verify every claim yourself, and the options manual, all included. Spread that over ten years and you’re under ten dollars a year. Even after the price moves to $149, you’re still under fifteen dollars a year for something built the same way I build everything else I sell, tested first, published honestly, nothing held back.

I build systems for a living, and the same blind spot keeps showing up in almost every portfolio I look at. Plenty of plans for when things go up. Very little alpha extraction in elevated volatility or in this case extended downward volatility. That’s the gap this is built to close.

Because that feedback is worth a lot to me, I’m opening it at $97 for the next 14 days. After that, lifetime access moves to $149.

With purchase you will receive the Getting Started guide with information for accessing the signals and the Option/Futures Guide with some suggested use cases.

You can review the full breakdown, explore the suggested use cases, and secure your early access spot here: https://www.tradingtimemachine.com/vix-kinetic.html

Have a Great Weekend!

Dave Johnson

Quant Developer at TradingTimeMachine.com



via Trading Time Machine https://ift.tt/yx9PmkE
0 Comments

Introducing VIX Kinetic: When the Odds Favor a Rise in Volatility

8/1/2026

0 Comments

 

Introducing VIX Kinetic

I have spent a great deal of time studying volatility and building systems around it. Over the years, I have used volatility signals to make short-term adjustments to portfolios, trading systems, and long-volatility positions.

The question that led to VIX Kinetic was fairly narrow. Can we identify, at the end of the day, when the odds have shifted in favor of a short-term rise in VIX?

The goal was not to predict a crash. It was not to call a market top or explain why investors should suddenly become bearish. I wanted to know whether there were repeatable conditions where VIX had become sufficiently compressed that a short-term rebound was more likely.

The answer, at least historically, was yes.

The Historical Record

From March 1999 through July 2026, VIX Kinetic produced 338 historical signals. VIX finished higher under the system’s defined exit rules on 87.9% of them.

The average positive move was 8.9%. Winning signals were held for an average of 4.7 trading days. Losing signals averaged -5.33% and lasted an average of 12.34 days. The system was historically good at identifying quick volatility rebounds. The Signal has a maximum active window of 22 days.

Those numbers describe the movement of the VIX Index itself. They show that the system historically identified a repeatable short-term tendency in volatility, not an expressed trade. VIX is an index not a directly tradeable asset.

The strongest entry regime was when VIX began between 15 and 18. In that range, 92.2% of signals finished higher, the average VIX result was 9.48%, and resolution tended to be quicker than in signals that began with VIX already elevated.

That matters because it supports the central idea behind the system. The better opportunities often appeared before fear was obvious, not after volatility had already expanded.

You can see the complete picture in two places on the site: the System Page, for how the system works, and the Full Signal History, for every one of the 338 signals, dates and VIX levels included.

System Market Conditions

What makes the signal interesting is where it tends to appear. VIX Kinetic often fires after volatility has extended lower inside an otherwise quiet market. Fear is not obvious. The market may feel comfortable. Most traders are not looking for a volatility trade at all.

That is precisely the point. The system does not wait for volatility to begin rising before recognizing it. It looks for the conditions from which a short-term VIX rebound has historically become more likely.

January through July 2026. Gray triangles mark VIX Kinetic entry signals, green triangles mark exits. The period includes a genuine spike in March, VIX surging from the high teens to nearly 34, alongside the quieter, choppier conditions where most of the signals actually fired.

Multiple signals can occur in close succession without requiring a major market event.

It Is Not a Crash Predictor

The system is not forecasting a market collapse every time it fires. It is forecasting a relatively moderate, short-term rise in VIX.

That narrow objective is part of why the signal is useful. A modest VIX pop can still:

  • change option pricing

  • widen intraday ranges

  • pressure high-beta stocks

  • weaken crowded momentum names

  • improve the setup for a short candidate

  • make new long exposure less attractive

While in a signal, most periods, though not all, will carry an intraday VIX target of 10.2%. That target is set the evening before, along with everything else. Nothing about the trade is decided after the market opens.

The Signal Is Useful Even Without Trading VIX Derivatives

You can use it to:

  • reduce long exposure

  • delay a purchase

  • tighten risk

  • time a short candidate

  • avoid chasing momentum

  • simply become more selective for a few sessions

Options Are Probably the Most Approachable Expression

For most traders, VIX options will probably be the most approachable way to express the signal. A long call offers defined premium risk, while a call spread can reduce the upfront cost and still participate in the type of short-term VIX move the system was designed to identify.

The synthetic options study suggested that a 35 DTE at-the-money call produced a 77.2% positive rate, an average return of 24.3%, and a median return of 30.7%. A call placed roughly one VIX point in the money produced a 78.1% positive rate, a 21.9% average return, and a 29.7% median return. The defined-risk call spread showed an 82.8% positive rate, with a 16.5% average return and a 23.9% median return.

Those figures need to be understood correctly. They come from a synthetic pricing model, not from historical option-chain quotes, and they are not realized performance claims. They are also averages built from a full range of outcomes, including trades that lost most or all of the premium paid, not just the winners. Real results will depend on the corresponding VIX futures contract, implied volatility, time decay, strike selection, expiration, bid-ask spreads, and execution. A correct VIX forecast can still produce a disappointing option trade if the contract is too expensive, too far out of the money, or too close to expiration.

That is why I created a separate implementation manual, included with purchase. It does not present one required trade. It explains how different structures may respond to the same signal, why longer-dated ATM or slightly in-the-money calls may provide a practical starting point, and where call spreads or shorter-dated rolling approaches may fit for more experienced traders.

Futures Are Cleaner but Probably Not for Most

Experienced and well-funded traders may prefer VX or VXM futures because the exposure is more direct and linear. But they bring leverage, margin, overnight risk, and contract-selection risk that options don’t. Options remain the more approachable starting point for most members. Futures are there for the traders who already know what they’re taking on.

The Signal Is Mechanical

After the market closes I update all relevant data and generate the signal for the next day. That signal posts each evening to the password protected page on the site. A quick check gives you what you need to navigate the short to medium term.

Example of the private signal page

If the market is already in a higher volatility regime, the system will generally not fire a new signal. That’s normal. The signal requires VIX to reset to lower levels. The exit works the same way: the page will post either an exit for tomorrow or a specific VIX target level, defined the night before. The best way to get a feel for the signal is to go through the full signal history for yourself - https://www.tradingtimemachine.com/vix-kinetic-history.html

The Early Adopter Rollout

This is a soft launch. I want a core group of subscribers to test the execution, and give me honest feedback on the workflow.

I also want to be straight about the value here, because it’s a little absurd when you actually run the numbers. $97 gets you lifetime access to a signal tested against 27 years of data, the complete history so you can verify every claim yourself, and the options manual, all included. Spread that over ten years and you’re under ten dollars a year. Even after the price moves to $149, you’re still under fifteen dollars a year for something built the same way I build everything else I sell, tested first, published honestly, nothing held back.

I build systems for a living, and the same blind spot keeps showing up in almost every portfolio I look at. Plenty of plans for when things go up. Very little alpha extraction in elevated volatility or in this case extended downward volatility. That’s the gap this is built to close.

Because that feedback is worth a lot to me, I’m opening it at $97 for the next 14 days. After that, lifetime access moves to $149.

With purchase you will receive the Getting Started guide with information for accessing the signals and the Option/Futures Guide with some suggested use cases.

You can review the full breakdown, explore the suggested use cases, and secure your early access spot here: https://www.tradingtimemachine.com/vix-kinetic.html

Have a Great Weekend!

Dave Johnson

Quant Developer at TradingTimeMachine.com



Via https://backtest.substack.com/p/introducing-vix-kinetic-when-the
0 Comments

    Dave Johnson

    I'm Dave Johnson, a former investment advisor and quantitative system developer with over 30 years of experience building and trading mechanical systems. These days I focus on rules-based research, honest backtests, and sharing what the data actually shows.

    Archives

    August 2026
    July 2026
    June 2026
    May 2026
    April 2026
    March 2026
    February 2026
    November 2025
    October 2025

    Categories

    All

    RSS Feed

Proudly powered by Weebly
  • Home
  • Elite SPY Trading System
  • Systems
  • Trader Tools
  • Trading Forecast
  • Studies
  • About
  • Time Machine Blog
  • Subscribers