Explore more topics
Platform comparison · reviewed October 10, 2026

NexusTrade vs Capitalise.ai: plain-language trading automation

Compare plain-language strategy authoring, testing, broker selection and research workflows in NexusTrade and Capitalise.ai.

As of 2026-10-10

Jump to a section

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

NexusTrade library preview showing the actual Google moving-average buy and sell rule cards
Actual library preview captured October 10, 2026. Both saved rule cards are visible. This is a configuration example, not a backtest result.
  1. 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

  2. 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

Step 1 of 3

Choose the workflow you need

Compare a research-and-portfolio workspace with recurring automation in a connected broker’s text editor.

What you should see

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.

Step 2 of 3

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 recipe
What you should see

Keep 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.
Step 3 of 3

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.

What you should see

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.

AuthoringAurora conversation with an inspectable portfolio definitionText-based strategy conditions
EvaluationHistorical backtests and forward paper observationBacktesting and simulation described in the help center
Research contextCompany research, disclosures and watchlists alongside rulesEvaluate the data and conditions offered by your broker-linked setup
Developer workflowPython/TypeScript SDKs and MCP toolsReview current integration options for your broker and client

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.

JSON
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
  }
]

Continue exploring

Discussion

Sign in or create a free account to join the discussion.

No comments yet.

Aurora · AI research assistant

Try this in Aurora

Edit the request, then open it in Aurora. You choose when to send it.