TL;DR
The NVDA genetic search made money on later dates but failed the intended daytrading task. Its April to June 2024 test returned 22.06%, versus 36.00% for the stored NVDA hold comparator, with 12.73% drawdown and zero closed round trips. The selected version bought once and never sold because its exit required position value above $378,389.83 in a $10,000 account. Inspect changed rules and actual holdings, preserve all failed requirements, and treat published dates as reproduction windows rather than fresh unseen tests.
Inspect the full later-date comparison
- Genetic winner 2024-06-29, 00:00:00 UTC
- 12,205.98
- Original morning strategy 2024-06-29, 00:00:00 UTC
- 8,980.94
- NVDA buy and hold 2024-06-29, 00:00:00 UTC
- 13,600.01
- SPY buy and hold 2024-06-29, 00:00:00 UTC
- 10,371.61
The frozen winner gained 22.06%; NVDA buy and hold gained 36.00%; SPY buy and hold gained 3.72%. The original strategy lost 10.19%. Every curve starts at $10,000.
The chart uses only timestamps shared by the exported histories. All returned samples remain in the public receipt. Strategy values include the stated fees. Benchmark lines use the engine's exported comparison values rather than orders submitted by the strategy.
Follow the recorded example
Start with rules you can explain
Buy NVDA during the morning when its price is above its recent average, and sell the full position later that day. The search changes rules, scores each version on earlier prices, and keeps candidates for another round. This run used six versions per round for three rounds; the receipt preserves six final scores, not every parent-to-child change. Follow this completed experiment before setting up your own.
- Search budget
- 6 versions per round, 3 rounds, 1 training window
- Development dates
- Jan 2 to Mar 28, 2024
- Test settings
- $10,000; Minute data; 0.05% stock fees per fill
The exact starting strategy, including its exit and sizing. A name such as morning strategy cannot replace the saved rules.
Inspect the changes the search chose
The search changed the entry time, comparison sign, moving-average length, buy size and exit. Its chosen entry could buy at the open. Its sell threshold was much larger than the starting account. Check these changes before calling the result an improved morning strategy.
The actual selected rules, including the changed exit. This search was broader than changing one average length.
- Genetic winner 2024-06-28, 20:00:00 EDT
- 12,205.98
- Original morning strategy 2024-06-28, 20:00:00 EDT
- 8,980.94
- NVDA buy and hold 2024-06-28, 20:00:00 EDT
- 13,600.01
- SPY buy and hold 2024-06-28, 20:00:00 EDT
- 10,371.61
Check what happened on the later dates
Keep the selected rules unchanged and compare the April to June results. The selected version made money, but lagged buying and holding NVDA. Its rise alone does not show that it still traded each day.
- Selected version
- 22.06%
- NVDA buy and hold
- 36.00%
- SPY buy and hold
- 3.72%
- Original morning strategy
- -10.19%
The actual four value histories and their costs, rather than the optimizer's earlier score.
Read the trade before accepting the result
The selected version bought once and never sold. Its exit required a position worth more than $378,389.83. The test ended with $8,169.45 still held. That is different from the intended morning strategy, which was supposed to close its position each day.
- Closed round trips
- 0
- Largest drop from the peak
- 12.73%
A profitable historical result that failed the intended daytrading task. The unchanged seed also weakened later; this record does not isolate one statistical cause.
See the real starting rules, what the search changed and how the result traded. Then open the complete configuration in Aurora. Browsing these steps runs nothing.
This page holds the complete search ledger. Use the overfitting guide to interpret the failure, or the prevention guide to set acceptance rules before a new experiment.
Continue with the complete example
Choose the Aurora button in the final step. Review the request and exact starting rules, then choose Start in Aurora. Send it when ready. Aurora has the recorded dates, search settings, fees, requirements and seed configuration; you do not need to invent them. Opening the modal starts no research or trading.
For a historical reproduction, approve the displayed research cost before submitting. Keep each returned reference and inspect the same job if its response is slow. The published 2024 dates are already known; choose later untouched dates before evaluating a new version.
2. Write down the search budget and success criteria first
2. Write down the search budget and success criteria first
A genetic optimizer tries a population of rule variants and changes that population over successive generations. We used Parameter mode, population 6, 3 generations and 1 training window, with 75% training. The final leaderboard returned 6 candidates. It does not supply a count of every unique rule evaluated during the search.
We ranked using validation selection with percent return as the primary metric and maximum drawdown as the tie-breaker. No activity constraints were set in that search. The separate acceptance requirements below were written before inspecting the later test. They are choices for this experiment, not universal trading rules.
In Optimization, choose Parameter for the genetic search. Review Population Size, Num Generations, Training Windows and dates. Sweep is a different method for comparing a defined set of settings; do not describe this broad genetic search as changing only one SMA parameter.
Scroll sideways to compare all columns. Select a heading to sort.
| Positive later return | 22.06% | Pass |
| Beat the stored NVDA buy-and-hold return | 22.06% | Fail |
| Maximum drawdown at most 10% | 12.73% | Fail |
| At least 10 closed round trips | 0 | Fail |
| No position held overnight | One buy, no sells; position held to test end | Fail |
No matching rows. Clear the filter to see all records.
All five requirements had to pass. The NVDA benchmark threshold was 36.00%; the drawdown ceiling was 10%; the activity minimum was 10 closed round trips.
3. Inspect what the winning rules actually became
3. Inspect what the winning rules actually became
The Parameter search changed the time comparisons, moving-average length, position guard, allocation and exit threshold. Read the complete selected portfolio rather than relying on its original name.
The selected exit required an NVDA position worth more than $378,389.83 before selling 86.23%. That threshold was far above the portfolio's $10,000 starting value. The order record below shows what happened in the later test.
Scroll sideways to compare all columns. Select a heading to sort.
| Entry time | Minutes after open ≥ 30 and < 60 | Minutes after open ≤ 0 and ≤ 139 |
| Price rule | Price > 20-minute SMA | Price = 789-minute SMA |
| Position guard | NVDA position value = 0 | NVDA position value ≥ 0 |
| Buy size | 95% of buying power | $5,961.15 |
| Exit | At or after 200 minutes; position value > 0 | Exactly 213 minutes; position value > $378,389.83 |
| Sell size | 100% of the position | 86.23% of the position |
No matching rows. Clear the filter to see all records.
4. Separate training, selection and the later test
4. Separate training, selection and the later test
The selected candidate returned 38.14% in the optimizer's training window and 0.00% in validation, where its participation was zero. The other five final candidates had negative validation returns. A top rank therefore did not mean the selected rules had demonstrated profitable validation trades.
Validation was part of choosing the winner, so it was not our final unseen test. We froze the selected configuration before testing April to June. The full January-to-March replay shown above covers a different window from the optimizer's training result.
Scroll sideways to compare all columns. Select a heading to sort.
| Training | 2024-01-02T00:00:00.000Z to 2024-03-06T12:00:00.000Z | 38.14% | Develop candidates |
| Validation | 2024-03-07T12:00:00.000Z to 2024-03-28T00:00:00.000Z | 0.00% | Select among final candidates |
| Frozen later test | 2024-04-01 to 2024-06-28 | 22.06% | Apply the predeclared acceptance criteria |
No matching rows. Clear the filter to see all records.
5. Ask Aurora to explain the signal and the resulting holdings
5. Ask Aurora to explain the signal and the resulting holdings
The later test's complete Filled-order query returned one buy: 66.015730 NVDA shares at $90.30, on 2024-04-01T13:30:00.000Z, with a $2.98 fee. There were no Filled sells. The final exported position was worth $8,169.45, beside $4,036.53 in cash.
At that entry, the signal trace recorded price and SMA as equal and all four entry conditions as true. An LLM can translate those condition values into an explanation, then follow the order and holdings. Give it the actual trace rather than asking it to invent a reason from the equity curve.
The gain came from a position held across sessions. Zero closed trades and remaining shares show why the return alone did not answer our daytrading question.
Scroll sideways to compare all columns. Select a heading to sort.
| Minutes after open | 0 | ≤ | 0 | True |
| Minutes after open | 0 | ≤ | 139 | True |
| NVDA price / SMA | 90.29900360107422 | = | 90.29900360107422 | True |
| Position value | 0 | ≥ | 0 | True |
No matching rows. Clear the filter to see all records.
6. Keep the failed version and plan the next experiment
6. Keep the failed version and plan the next experiment
We kept this as a failed worked example, rather than publishing a successful daytrading case study. The original seed weakened on later dates; the selected version made money but changed the holding behavior and missed four requirements. Raising the drawdown ceiling or removing the intraday requirement after seeing the result would change the question.
For a new attempt, define the strategy family and allowed changes before searching. Inspect exits and activity before accepting a candidate. Record each restart as another trial. Choose later dates that were excluded from every rule revision and corpus search; these published 2024 dates are now a reproduction for readers.
After freezing a version that meets your research criteria, observe its signals, orders and holdings in paper trading. An optional final lockbox is another reserved period you choose before development. Use a worked broker guide when you are ready to review account connection and deployment steps.
Inspect exact configurations and the earlier NVDA study
Inspect exact configurations and the earlier NVDA study
The public receipt contains the original seed, exact selected rules, all six final leaderboard rows, completed statistics, signal values, the Filled order and exported histories. It excludes private account and research job identifiers.
The earlier NVDA/NVD case study used an exhaustive parameter sweep across five folds. Its short-window lead did not hold over the longer test. It supplied context for this experiment, but its rules and measured results are separate from this genetic search.
View complete record
{
"initialValue": 10000,
"supportsFractionalShares": true,
"dividendPolicy": "cash",
"deployment": {
"frequency": "Constant",
"intervalSeconds": 60
},
"strategies": [
{
"name": "Selected entry",
"action": {
"type": "Buy",
"targetAsset": {
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
},
"amount": {
"type": "dollars",
"amount": 5961.154601309878
}
},
"condition": {
"name": "Minutes After Market Open ≤ Constant 0 and Minutes After Market Open ≤ Constant 139 and NVDA last price = 789 Minute NVDA SMA and Position market value (NVDA) ≥ Constant 0",
"type": "And",
"conditions": [
{
"lhs": {
"targetAssets": [],
"type": "MinutesAfterOpen",
"name": "Minutes After Market Open"
},
"rhs": {
"targetAssets": [],
"value": 0,
"type": "Value",
"name": "Constant 0"
},
"name": "Minutes After Market Open ≤ Constant 0",
"comparison": "lessThanOrEqual",
"type": "Base"
},
{
"lhs": {
"targetAssets": [],
"type": "MinutesAfterOpen",
"name": "Minutes After Market Open"
},
"rhs": {
"targetAssets": [],
"value": 139,
"type": "Value",
"name": "Constant 139"
},
"name": "Minutes After Market Open ≤ Constant 139",
"comparison": "lessThanOrEqual",
"type": "Base"
},
{
"lhs": {
"targetAsset": {
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
},
"targetAssets": [],
"type": "Price",
"name": "NVDA last price"
},
"rhs": {
"targetAsset": {
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
},
"targetAssets": [],
"window": {
"length": 789,
"interval": "Minute"
},
"type": "SimpleMovingAverage",
"name": "789 Minute NVDA SMA"
},
"name": "NVDA last price = 789 Minute NVDA SMA",
"comparison": "equal",
"type": "Base"
},
{
"lhs": {
"targetAssets": [
{
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
}
],
"type": "PositionValue",
"name": "Position market value (NVDA)"
},
"rhs": {
"targetAssets": [],
"value": 0,
"type": "Value",
"name": "Constant 0"
},
"name": "Position market value (NVDA) ≥ Constant 0",
"comparison": "greaterThanOrEqual",
"type": "Base"
}
]
},
"automaticOrderApproval": false,
"active": true,
"orderExecution": {
"type": "Market"
}
},
{
"name": "Selected exit",
"action": {
"type": "Sell",
"targetAsset": {
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
},
"amount": {
"type": "percent of current positions",
"amount": 86.22988061050232
}
},
"condition": {
"name": "Minutes After Market Open = Constant 213 and Position market value (NVDA) > Constant 378389.83165016794",
"type": "And",
"conditions": [
{
"lhs": {
"targetAssets": [],
"type": "MinutesAfterOpen",
"name": "Minutes After Market Open"
},
"rhs": {
"targetAssets": [],
"value": 213,
"type": "Value",
"name": "Constant 213"
},
"name": "Minutes After Market Open = Constant 213",
"comparison": "equal",
"type": "Base"
},
{
"lhs": {
"targetAssets": [
{
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
}
],
"type": "PositionValue",
"name": "Position market value (NVDA)"
},
"rhs": {
"targetAssets": [],
"value": 378389.83165016794,
"type": "Value",
"name": "Constant 378389.83165016794"
},
"name": "Position market value (NVDA) > Constant 378389.83165016794",
"comparison": "greaterThan",
"type": "Base"
}
]
},
"automaticOrderApproval": false,
"active": true,
"orderExecution": {
"type": "Market"
}
}
],
"name": "NVDA genetic winner: frozen research example"
}Exact starting rules and completed source
Inspect or download the full starting configuration
It excludes private account and research identifiers. Six final rows are not a verified count of every unique candidate evaluated.
{
"initialValue": 10000,
"supportsFractionalShares": true,
"dividendPolicy": "cash",
"deployment": {
"frequency": "Constant",
"intervalSeconds": 60
},
"strategies": [
{
"condition": {
"type": "And",
"conditions": [
{
"type": "Base",
"lhs": {
"type": "MinutesAfterOpen"
},
"comparison": "greaterThanOrEqual",
"rhs": {
"type": "Value",
"value": 30
}
},
{
"type": "Base",
"lhs": {
"type": "MinutesAfterOpen"
},
"comparison": "lessThan",
"rhs": {
"type": "Value",
"value": 60
}
},
{
"type": "Base",
"lhs": {
"type": "Price",
"targetAsset": {
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
}
},
"comparison": "greaterThan",
"rhs": {
"type": "SimpleMovingAverage",
"targetAsset": {
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
},
"window": {
"length": 20,
"interval": "Minute"
}
}
},
{
"type": "Base",
"lhs": {
"type": "PositionValue",
"targetAssets": [
{
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
}
]
},
"comparison": "equal",
"rhs": {
"type": "Value",
"value": 0
}
}
]
},
"action": {
"type": "Buy",
"targetAsset": {
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
},
"amount": {
"type": "percent of buying power",
"amount": 95
}
},
"orderExecution": {
"type": "Market"
},
"name": "Enter NVDA morning trend",
"active": true,
"automaticOrderApproval": false
},
{
"condition": {
"type": "And",
"conditions": [
{
"type": "Base",
"lhs": {
"type": "MinutesAfterOpen"
},
"comparison": "greaterThanOrEqual",
"rhs": {
"type": "Value",
"value": 200
}
},
{
"type": "Base",
"lhs": {
"type": "PositionValue",
"targetAssets": [
{
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
}
]
},
"comparison": "greaterThan",
"rhs": {
"type": "Value",
"value": 0
}
}
]
},
"action": {
"type": "Sell",
"targetAsset": {
"name": "NVDA",
"type": "Stock",
"symbol": "NVDA"
},
"amount": {
"type": "percent of current positions",
"amount": 100
}
},
"orderExecution": {
"type": "Market"
},
"name": "Exit NVDA at midday",
"active": true,
"automaticOrderApproval": false
}
],
"name": "NVDA morning trend | genetic generalization example | inactive research",
"supportsCrypto": false,
"alertsEnabled": false
}
No comments yet.