TL;DR
Choose NexusTrade when the work starts with company research, inspectable portfolio rules and historical testing. Capitalise.ai fits recurring text-based automation within a supported brokerage setup. Check broker and asset eligibility before translating a rule, including cooldowns, sizing and repeat behavior. The Google example is a translation checklist, not verified Capitalise.ai syntax or a matched performance test, and partner access does not establish a universal free subscription.
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
Worked translation: a Google moving-average rule
Open the actual NexusTrade Google recipe below. Its buy uses a 50-day average at least the 200-day average and last-buy cooldowns. Its sell uses the inverse average state and separate last-buy/last-sell checks. The allocation units and equality behavior matter as much as the moving-average periods.
For Capitalise.ai, first select a currently supported broker and confirm that its asset selector resolves GOOG. In the strategy editor, use its guided text suggestions to define a 50-day versus 200-day average condition, then specify size, exit and repeat behavior. The natural-language specification below is a translation checklist, not verified accepted Capitalise.ai syntax. Confirm the editor can represent each cooldown and allocation unit; if it cannot, record the difference rather than calling the strategies identical.
Asset: GOOG. Buy condition: SMA(50) >= SMA(200), more than 14 days since last buy, and more than 3 days since last buy. Buy size: 100% of buying power. Sell condition: SMA(50) <= SMA(200), more than 14 days since last buy, and more than 3 days since last sell. Sell size: 100% of portfolio value. Confirm equality, repeated triggers and open-position handling before running.Separate research from broker automation
Choose the workflow you need
Compare a research-and-portfolio workspace with recurring automation in a connected broker’s text editor.
Compare the actual object you need to keep: inspectable saved rules, a code artifact, an allocation tree or a brokerage workflow. The dated source sections describe the available routes.
Work through the declared example
Inspect the saved Google rules, then use the translation checklist to check each cooldown and sizing unit.
Open this exact Google recipeKeep the example's declared rules and units with the resulting object. A proposed translation remains separate from an executed matched test.
Asset: GOOG. Buy condition: SMA(50) >= SMA(200), more than 14 days since last buy, and more than 3 days since last buy. Buy size: 100% of buying power. Sell condition: SMA(50) <= SMA(200), more than 14 days since last buy, and more than 3 days since last sell. Sell size: 100% of portfolio value. Confirm equality, repeated triggers and open-position handling before running.Review the same task in Aurora
Open the prepared review using the exact example. Keep source dates, rule differences and account requirements with your comparison.
The request previews the selected artifact. Record returned results separately from reviewed code or documentation.
Choose NexusTrade when the work starts before the trading rule
NexusTrade is the stronger fit when you need to research a company, inspect saved rules and test a portfolio through Aurora or your coding assistant. Capitalise.ai is a reasonable fit when you already have a supported brokerage connection and want to express recurring automation in its text editor. Both use language to author rules; the useful distinction is the research and portfolio workspace around those rules.
Broker coverage and cost can decide the choice
Tradable assets depend on the broker connection in Capitalise.ai. Align the historical period and assumptions before comparing results; this page supplies no ranking of returns. Check its current broker selector and asset guide before investing time in a translation. A partner offer or broker-specific entitlement is not a universal free subscription. NexusTrade also requires an eligible connection and account permissions for live trading; its pricing and workload estimate are separate from brokerage fees.
In simulation, check repeat triggers and unavailable indicator values, then inspect individual orders. Capitalise.ai describes backtest and simulation limitations; neither a text rule nor a historical chart proves the live fill behavior. We have not performed a matched run across the products.
Compare what you need to build
Show the table · 4 rows, 3 columns
Scroll sideways to compare all columns. Select a heading to sort.
| Authoring | Aurora conversation with an inspectable portfolio definition | Text-based strategy conditions |
| Evaluation | Historical backtests and forward paper observation | Backtesting and simulation described in the help center |
| Research context | Company research, disclosures and watchlists alongside rules | Evaluate the data and conditions offered by your broker-linked setup |
| Developer workflow | Python/TypeScript SDKs and MCP tools | Review current integration options for your broker and client |
No matching rows. Clear the filter to see all records.
Start with broker and instrument eligibility
Check Capitalise.ai current broker selection before building the rule. Its asset guide makes broker support part of instrument availability, so a rule that works for one connection may not transfer to another. In NexusTrade, inspect the selected broker capabilities and account approval for the asset you intend to trade.
Do not assume either product supports an account because it appears in an old comparison or tutorial. The current broker and asset documentation is the useful starting point.
What the saved rules mean
Inspect the complete conditions and allocation export
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
}
]
No comments yet.