Choose NexusTrade for a saved portfolio; QuantPad for research code
NexusTrade is the stronger fit when the output should be an inspectable portfolio with rules you can test, observe in paper trading and manage through platform tools. Aurora works with those portfolio objects. The actual Google recipe below shows the product artifact: two rule cards, conditions, allocation units and JSON.
QuantPad, at quantpad.ai, describes an AI research and coding workspace with Python execution and included historical market data. It is a good fit when the desired output is code, a data investigation or analysis of a trade log. That is a different artifact from a saved NexusTrade portfolio, even when both start with a natural-language request.
Worked task: inspect a Google trend rule
In NexusTrade, open the exact Google library link below. Review its 50/200-day average comparisons, cooldowns and sizing. Ask Aurora to explain or revise those saved rules, then inspect the portfolio before submitting a historical test. The screenshot is from the actual app; it does not show a completed run.
For a QuantPad investigation, use the prompt below to request a Python artifact that calculates the same daily moving-average states. Require the data source, adjustment convention and warmup rows in the output. This is a proposed research request based on the documented workspace, not a run we executed in QuantPad. A signal series alone is not an equivalent order simulation.
Research GOOG daily SMA(50) and SMA(200) for January 1, 2020 through December 31, 2024. Use the documented historical-data access available to this account. Save Python code and identify source, date coverage, adjustment convention and warmup. Return the dates where SMA(50) >= SMA(200) and <= SMA(200). Explain equality and missing-data behavior. Do not claim this reproduces trading returns or send orders.Compare the artifact you will keep
| Maintain a trading candidate | Saved portfolio conditions and actions | Python/research artifact; inspect output and dependencies |
| Inspect a built-in rule | Actual library cards and strategy JSON below | AI code and historical-data analysis |
| Use an existing AI client | NexusTrade MCP and SDK tools | QuantPad documents MCP access |
| Study trade logs | Portfolio histories and stored test results | Trade-log analysis, Monte Carlo and regime analysis |
| Instrument coverage | Check supported platform asset and broker capabilities | Documents futures, equities, options and L2 historical data; check the particular coverage |
No matching rows. Clear the filter to see all records.
Cost and evidence checks
QuantPad’s public subscription route did not expose a complete price table in this review. Its homepage describes included usage, top-ups and model-provider costs; we have not observed an invoice or account allowance. NexusTrade plan pricing and research usage also depend on the selected workload. Check current checkout terms before treating either as cheaper.
QuantPad labels its homepage interactive previews illustrative and its included feeds historical. We have not signed in, executed its data queries or verified native live brokerage deployment. This comparison therefore makes no claim that its preview is a real run, that it supports a NexusTrade strategy import, or that either platform has better returns.
What would make this a matched experiment
Keep the same GOOG history, adjustment convention, dates and warmup. Translate the cooldowns, position state and allocation units into code before comparing orders. Preserve the saved NexusTrade rules and the Python artifact. Compare individual trades and failures before reading aggregate metrics. Until both have completed under matched assumptions, a performance ranking would be unsupported.
Inspect an actual NexusTrade strategy
Buy 100% of the available cash in GOOG whenever GOOG's 50-day average price is at or above its 200-day average price and days since the last filled buy order of GOOG is above 14 and days since the last filled buy order of GOOG is above 3.
Buy GOOG 50 Day GOOG SMA ≥ 200 Day GOOG SMA and # of Days Since the Last Filled Buy Order of GOOG > Constant 14 and # of Days Since the Last Filled Buy Order of GOOG > Constant 3
Sell 100% of the portfolio worth of GOOG whenever GOOG's 50-day average price is at or below its 200-day average price and days since the last filled buy order of GOOG is above 14 and days since the last filled sell order of GOOG is above 3.
Sell 100% GOOG 50 Day GOOG SMA ≤ 200 Day GOOG SMA and # of Days Since the Last Filled Buy Order of GOOG > Constant 14 and # of Days Since the Last Filled Sell Order of GOOG > Constant 3

What the saved rules mean
The buy rule checks whether the 50-day moving average is at least the 200-day average, with more than 14 days since the last buy and an additional more-than-3-day buy check. The sell rule checks the inverse state, with more than 14 days since the last buy and more than 3 days since the last sell. These are state checks with cooldowns. They do not require a new crossing event.
The JSON below retains the library conditions and actions while omitting editor forms, generated identifiers and timestamps. It is a semantic export for inspection, not a saved customer portfolio.
The buy spends 100% of buying power; the sell uses 100% of portfolio value. Equality meets both moving-average comparisons. There is no explicit zero-position entry guard. Review those details before changing the recipe or translating it to another engine.
View complete record
[
{
"name": "Buy 100% of the available cash in GOOG whenever GOOG's 50-day average price is at or above its 200-day average price and days since the last filled buy order of GOOG is above 14 and days since the last filled buy order of GOOG is above 3.",
"userId": null,
"active": true,
"condition": {
"name": "50 Day GOOG SMA ≥ 200 Day GOOG SMA and # of Days Since the Last Filled Buy Order of GOOG > Constant 14 and # of Days Since the Last Filled Buy Order of GOOG > Constant 3",
"type": "And",
"description": "All conditions must be true",
"example": "If Apple's price is up today but down for the week.",
"conditions": [
{
"lhs": {
"compound": false,
"targetAsset": {
"name": "GOOG",
"type": "Stock",
"symbol": "GOOG"
},
"targetAssets": [],
"window": {
"length": 50,
"interval": "Day"
},
"type": "SimpleMovingAverage",
"name": "50 Day GOOG SMA"
},
"rhs": {
"compound": false,
"targetAsset": {
"name": "GOOG",
"type": "Stock",
"symbol": "GOOG"
},
"targetAssets": [],
"window": {
"length": 200,
"interval": "Day"
},
"type": "SimpleMovingAverage",
"name": "200 Day GOOG SMA"
},
"name": "50 Day GOOG SMA ≥ 200 Day GOOG SMA",
"comparison": "greaterThanOrEqual",
"type": "Base",
"description": "Left-Hand indicator (comparator) Right-Hand Indicator",
"example": "If the Rate of Change of Apple's price is > the Value 0."
},
{
"lhs": {
"compound": false,
"targetAssets": [
{
"name": "GOOG",
"type": "Stock",
"symbol": "GOOG"
}
],
"side": "Buy",
"type": "DaysSinceOrder",
"orderStatus": "Filled",
"name": "# of Days Since the Last Filled Buy Order of GOOG"
},
"rhs": {
"compound": false,
"targetAssets": [],
"value": 14,
"type": "Value",
"name": "Constant 14"
},
"name": "# of Days Since the Last Filled Buy Order of GOOG > Constant 14",
"comparison": "greaterThan",
"type": "Base",
"description": "Left-Hand indicator (comparator) Right-Hand Indicator",
"example": "If the Rate of Change of Apple's price is > the Value 0."
},
{
"lhs": {
"compound": false,
"targetAssets": [
{
"name": "GOOG",
"type": "Stock",
"symbol": "GOOG"
}
],
"side": "Buy",
"type": "DaysSinceOrder",
"orderStatus": "Filled",
"name": "# of Days Since the Last Filled Buy Order of GOOG"
},
"rhs": {
"compound": false,
"targetAssets": [],
"value": 3,
"type": "Value",
"name": "Constant 3"
},
"name": "# of Days Since the Last Filled Buy Order of GOOG > Constant 3",
"comparison": "greaterThan",
"type": "Base",
"description": "Left-Hand indicator (comparator) Right-Hand Indicator",
"example": "If the Rate of Change of Apple's price is > the Value 0."
}
]
},
"action": {
"type": "Buy",
"targetAsset": {
"name": "GOOG",
"type": "Stock",
"symbol": "GOOG"
},
"amount": {
"type": "percent of buying power",
"amount": 100
}
},
"orderExecution": {
"type": "Market"
},
"automaticOrderApproval": false
},
{
"name": "Sell 100% of the portfolio worth of GOOG whenever GOOG's 50-day average price is at or below its 200-day average price and days since the last filled buy order of GOOG is above 14 and days since the last filled sell order of GOOG is above 3.",
"userId": null,
"active": true,
"condition": {
"name": "50 Day GOOG SMA ≤ 200 Day GOOG SMA and # of Days Since the Last Filled Buy Order of GOOG > Constant 14 and # of Days Since the Last Filled Sell Order of GOOG > Constant 3",
"type": "And",
"description": "All conditions must be true",
"example": "If Apple's price is up today but down for the week.",
"conditions": [
{
"lhs": {
"compound": false,
"targetAsset": {
"name": "GOOG",
"type": "Stock",
"symbol": "GOOG"
},
"targetAssets": [],
"window": {
"length": 50,
"interval": "Day"
},
"type": "SimpleMovingAverage",
"name": "50 Day GOOG SMA"
},
"rhs": {
"compound": false,
"targetAsset": {
"name": "GOOG",
"type": "Stock",
"symbol": "GOOG"
},
"targetAssets": [],
"window": {
"length": 200,
"interval": "Day"
},
"type": "SimpleMovingAverage",
"name": "200 Day GOOG SMA"
},
"name": "50 Day GOOG SMA ≤ 200 Day GOOG SMA",
"comparison": "lessThanOrEqual",
"type": "Base",
"description": "Left-Hand indicator (comparator) Right-Hand Indicator",
"example": "If the Rate of Change of Apple's price is > the Value 0."
},
{
"lhs": {
"compound": false,
"targetAssets": [
{
"name": "GOOG",
"type": "Stock",
"symbol": "GOOG"
}
],
"side": "Buy",
"type": "DaysSinceOrder",
"orderStatus": "Filled",
"name": "# of Days Since the Last Filled Buy Order of GOOG"
},
"rhs": {
"compound": false,
"targetAssets": [],
"value": 14,
"type": "Value",
"name": "Constant 14"
},
"name": "# of Days Since the Last Filled Buy Order of GOOG > Constant 14",
"comparison": "greaterThan",
"type": "Base",
"description": "Left-Hand indicator (comparator) Right-Hand Indicator",
"example": "If the Rate of Change of Apple's price is > the Value 0."
},
{
"lhs": {
"compound": false,
"targetAssets": [
{
"name": "GOOG",
"type": "Stock",
"symbol": "GOOG"
}
],
"side": "Sell",
"type": "DaysSinceOrder",
"orderStatus": "Filled",
"name": "# of Days Since the Last Filled Sell Order of GOOG"
},
"rhs": {
"compound": false,
"targetAssets": [],
"value": 3,
"type": "Value",
"name": "Constant 3"
},
"name": "# of Days Since the Last Filled Sell Order of GOOG > Constant 3",
"comparison": "greaterThan",
"type": "Base",
"description": "Left-Hand indicator (comparator) Right-Hand Indicator",
"example": "If the Rate of Change of Apple's price is > the Value 0."
}
]
},
"action": {
"type": "Sell",
"targetAsset": {
"name": "GOOG",
"type": "Stock",
"symbol": "GOOG"
},
"amount": {
"type": "percent of portfolio",
"amount": 100
}
},
"orderExecution": {
"type": "Market"
},
"automaticOrderApproval": false
}
]