Explore more topics
AI trading walkthrough

I connected Dots to a trading API and tested a BTC trend rule

An experiment in using Dots beyond chat. Research BTC-USD, test a 50-day trend rule, and inspect the completed 2024 run against SPY and BTC.

As of 2026-10-14

Worked strategy
BTC 50-day trend
Evidence status
Completed 2024 development test; strategy, SPY, and BTC curves included
Jump to a section

Follow this worked strategy

I connected Dots to the NexusTrade trading API and had it research BTC-USD and test a 50-day trend rule across the completed 2024 run. The agent operated this workflow through NexusTrade's MCP server; it did not build the integration. The rule returned 56.61% against SPY at 25.30% and BTC at 119.27%, with $1909.24 in recorded fees. This is a development test on examined dates. Judge frozen rules on dates you have not used yet.

Follow the full journey

Step 1 of 6

Connect Dots

https://nexustrade.io/api/mcp

Connect OpenAI Dots in the intended environment

Create the NexusTrade custom MCP plugin on ChatGPT web if it is not already installed. Use endpoint https://nexustrade.io/api/mcp with OAuth and complete NexusTrade sign-in. Open your dot’s profile → Customize → Plugins, select NexusTrade and complete any requested connection.

Documented setup flow for this client
Documented setup flow for this client
What you should see

The result identifies Apple's company filing, filing date and source URL. The connection check makes no account changes.

Inspect the request

Step 2 of 6

Research BTC-USD and its trading calendar

Inspect the spot pair, source timestamps and fee model. This strategy evaluates daily indicators while crypto prices also move on weekends.

What you should see

A dated brief names the instrument, original sources and assumptions that matter to this strategy.

Inspect the request

Step 3 of 6

Preview the BTC 50-day trend rules

Keep the exact daily indicator thresholds and flat-position guard shown here. Allocate 95% of buying power on entry and close all held units when the exit fires.

Entry
Saved rule: Price > SMA(50, Day) AND position value = 0
Exit
Saved rule: Price <= SMA(50, Day) AND position value > 0
Allocation
Saved rule: 95% of buying power per entry; sell 100% of held units on exit
Pair
Saved rule: BTC-USD
What you should see

The preview resolves this specific pair, entry, exit and fractional spot sizing.

Inspect the request

BTC 50-day trend: completed 2024 backtest with SPY and BTC buy and hold25.3K8.9K2024-01-012024-12-31
BTC 50-day trend 2024-12-31, 21:00:00 UTC
15,660.69
SPY buy and hold 2024-12-31, 21:00:00 UTC
12,530.29
BTC buy and hold 2024-12-31, 21:00:00 UTC
21,926.92
BTC 50-day trendSPY buy and holdBTC buy and holdHistorical simulation
All 744 exported history points from the completed 2024 BTC 50-day trend simulation; SPY and BTC comparison calendars differ.
Step 4 of 6

Inspect the completed BTC-USD test

Read this strategy curve alongside the full-capital SPY and BTC comparisons. The 0.7% fee on each fill is part of the recorded result.

Backtest return
56.61%
Reported maximum drawdown
28.77%
Total recorded trading fees
$1909.24
Ending portfolio value
$15660.69
What you should see

The completed 2024 BTC 50-day trend simulation returned 56.61% with reported maximum drawdown 28.77%.

Inspect the request

Step 5 of 6

Observe BTC 50-day trend in paper trading

Observe the BTC-USD rule prospectively with fractional spot units. Keep its daily indicator window and 95% entry allocation while recording weekend evaluations.

Inspect before accepting an order
The BTC-USD signal, spot units, fee, cash balance, flat-position guard, daily evaluation schedule and weekend behavior.
What you should see

Your paper portfolio has its own ID, start date, schedule and dated history. These forward observations begin with your own run.

Inspect the request

Step 6 of 6

Review BTC 50-day trend for live deployment

Check the actual connection for this specific spot pair before preparing a live move. Review venue support, pair naming, minimum order size and its operating calendar.

Open the live deployment walkthrough
Account and instrument review
BTC-USD spot support, fractional units, minimum order size, venue fees, weekend timing and exits; stop if the pair is unsupported.
What you should see

The review identifies the target account, supported instruments, rule changes and approval settings before confirmation.

Inspect the request

Follow the Dots session

This guide runs on NexusTrade's MCP server. Dots operated the trading workflow below, from connection to the live review. The agent's role here is operating the workflow through that server.

The table names the tool call, the approval checkpoint, and the artifact to keep at each stage. Placeholders such as a returned draft ID stand for values your own run returns. This page records no IDs from anyone else's run.

The recorded anchor is the completed 2024 test below. The strategy returned 56.61% against SPY at 25.30% and BTC at 119.27%, with $1909.24 in recorded fees.

Show the table · 6 rows, 4 columns

Scroll sideways to compare all columns. Select a heading to sort.

Connect Dotssec_edgar list_filings for AAPL with limit 1Public read only. No portfolios, ingested filings, or changes.Filing company, form, date, and source URL
Research BTC-USDSpot pair, calendar, timestamps, and fee modelPair support is checked separately from the historical model.Dated BTC-USD brief
Draft the rulesbuild_portfolio preview, then one create_portfolioApprove the rules before saving. Stop before paid tests.Returned draft ID with a readback
Test historyDaily 2024 backtest at $10,000 with a 0.7% crypto fee and SPY and BTC comparisonsShow the request and estimated cost before submission.Same test ID with events, cash, and position values
Trade on paperSeparate paper-only deployment at $10,000Show the plan. Verify the portfolio is paper.Running paper ID and dated history
Review liveLive deployment review against the actual accountLive trading stays unchanged until explicit confirmation.Reviewed plan, or a stop report when unsupported

Where Dots stops for approval

Each consequential action in this guide waits at an approval gate. The agent previews first and acts only after explicit approval.

The rules preview returns valid and issues before anything is saved. The agent resolves problems and re-previews instead of saving a candidate with open problems.

  1. Approve the rules before the agent saves them

    The agent previews the configuration with build_portfolio and shows entry, sizing, exits, valid, and issues. It saves with create_portfolio only after approval and reads the returned draft back.

  2. Approve the test cost before the agent submits once

    Historical tests are paid runs. The agent shows the exact request and estimated cost for approval before submitting once, then polls the same returned test ID until complete.

  3. Approve the paper plan and verify it is paper

    The paper deployment is a separate portfolio with its own ID. The agent shows the plan for approval, verifies the deployment type, and leaves brokerage accounts unchanged.

  4. Confirm the live move explicitly, or nothing moves

    The agent reads the actual account and broker capabilities first and keeps live trading unchanged until explicit confirmation. It reports an unsupported instrument or action and stops.

Inspect the captured BTC-USD measurements

Inspect exact historical measurements

This saved algorithm completed a Day backtest from 2024-01-01 through 2024-12-31, with $10000.00 starting capital. The chart includes all 744 exported history points.

Compare the strategy with SPY and BTC buy and hold. Each benchmark invests the full $10000.00 starting balance over the same 2024 period. SPY follows its trading sessions; BTC includes weekends. This algorithm follows its own allocation and entry/exit rules, with 0.7% of traded notional charged on each fill. Explore cash and position values to see how capital was deployed.

The 2024 curve set uses the same $10,000 starting basis for the strategy, SPY buy and hold, and BTC buy and hold. Treat the run as development evidence from examined dates and freeze the rule before using unused dates.

Scroll sideways to compare all columns. Select a heading to sort.

StatusCOMPLETE
Backtest return56.61%
Reported maximum drawdown28.77%
SPY buy-and-hold return25.30%
BTC buy-and-hold return119.27%
Total recorded trading fees$1909.24
Engine closed-trade count32
Starting capital$10000.00
Ending portfolio value$15660.69
Ending cash$15660.69
Ending position value$0.00

Inspect the recorded trades

  1. Jan 01, 2024

    Pair

    BTC-USD

    Side

    Buy

    Units (rounded)

    0.22279509

    Submitted price

    $42640.08

    Filled price

    $42640.08

    Fee

    $66.50

  2. Jan 14, 2024

    Pair

    BTC-USD

    Side

    Sell

    Units (rounded)

    0.22123552

    Submitted price

    $42505.61

    Filled price

    $42505.61

    Fee

    $65.83

  3. Jan 15, 2024

    Pair

    BTC-USD

    Side

    Sell

    Units (rounded)

    0.00155957

    Submitted price

    $42474.15

    Filled price

    $42474.15

    Fee

    $0.46

  4. Jan 15, 2024

    Pair

    BTC-USD

    Side

    Buy

    Units (rounded)

    0.21807449

    Submitted price

    $42853.90

    Filled price

    $42853.90

    Fee

    $65.42

  5. Jan 17, 2024

    Pair

    BTC-USD

    Side

    Sell

    Units (rounded)

    0.21654797

    Submitted price

    $42481.50

    Filled price

    $42481.50

    Fee

    $64.39

  6. Jan 17, 2024

    Pair

    BTC-USD

    Side

    Sell

    Units (rounded)

    0.00152652

    Submitted price

    $42601.50

    Filled price

    $42601.50

    Fee

    $0.46

  7. Jan 29, 2024

    Pair

    BTC-USD

    Side

    Buy

    Units (rounded)

    0.21202438

    Submitted price

    $43130.00

    Filled price

    $43130.00

    Fee

    $64.01

  8. Jan 31, 2024

    Pair

    BTC-USD

    Side

    Sell

    Units (rounded)

    0.21054021

    Submitted price

    $42686.33

    Filled price

    $42686.33

    Fee

    $62.91

Recorded rows in source order; spacing does not represent elapsed time.

Inspect the recorded entries and exits

Scroll sideways to compare all columns. Select a heading to sort.

Jan 01, 2024BTC-USDBuy0.22279509$42640.08$42640.08$66.50
Jan 14, 2024BTC-USDSell0.22123552$42505.61$42505.61$65.83
Jan 15, 2024BTC-USDSell0.00155957$42474.15$42474.15$0.46
Jan 15, 2024BTC-USDBuy0.21807449$42853.90$42853.90$65.42
Jan 17, 2024BTC-USDSell0.21654797$42481.50$42481.50$64.39
Jan 17, 2024BTC-USDSell0.00152652$42601.50$42601.50$0.46
Jan 29, 2024BTC-USDBuy0.21202438$43130.00$43130.00$64.01
Jan 31, 2024BTC-USDSell0.21054021$42686.33$42686.33$62.91

Follow the Filled events by pair, side and time. Compare the submitted price, filled price, fractional quantity and fee. This table shows up to eight orders from the captured excerpt (45 Filled events).

For a percentage fee, multiply the traded notional by 0.007. To follow a position, start with a purchase and inspect subsequent sale quantities, remaining holdings and cash flows. For the weekly accumulation example, follow each purchase and the resulting position value.

Inspect the original signal record

View captured signal JSON
JSON
{
  "eventType": "BuySignal",
  "event": {
    "eventType": "BuySignal",
    "timestamp": "2024-10-11T13:30:00.000Z",
    "signals": [
      {
        "conditionName": "BTC-USD last price > 50 Day BTC-USD SMA and Position market value (BTC-USD) = Constant 0",
        "audit": {
          "type": "minimal",
          "results": {
            "0.0": {
              "isTrue": true,
              "lhsValue": 61420.7109375,
              "rhsValue": 60767.41453125,
              "lhsError": null,
              "rhsError": null,
              "comparison": "greaterThan"
            },
            "0.1": {
              "isTrue": true,
              "lhsValue": 0,
              "rhsValue": 0,
              "lhsError": null,
              "rhsError": null,
              "comparison": "equal"
            }
          },
          "failuresOnly": false
        },
        "isTrue": true,
        "actionName": "Buy",
        "actionMetadata": {
          "buyOrSell": {
            "targetAsset": {
              "name": "BTC-USD",
              "symbol": "BTC-USD",
              "type": "Cryptocurrency",
              "underlyingSymbol": null,
              "optionType": null,
              "expirationDate": null,
              "strikePrice": null,
              "multiplier": null
            },
            "allocation": {
              "type": "percent of buying power",
              "amount": 95
            },
            "price": 61420.7109375,
            "orderType": "Market Order"
          }
        },
        "orderExecution": {
          "type": "Market"
        }
      }
    ]
  },
  "timestamp": 1728653400000
}

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.