What instructions do I give my agent on a free Claude account?
These instructions are for a free Claude account, run by hand after each month-end. If you have a paid AI plan, use the standard instructions instead: they use the DMS connector and can run on a schedule.
Why a different set? A free Claude account allows one custom connector, and your broker needs it. So instead of connecting DMS, your agent reads your targets from a private link: a web address for one of your connections, shown on its card in My Account.
Fill in the lines at the top before you run anything:
- Portfolio and Feed come as a pair. On the matching connection card in My Account (with Free Claude selected), select Copy task lines and paste both lines over the two placeholders.
- Broker and Account tell the agent which account to work in. Describe the account the way your broker shows it.
- Run mode starts as
ASK FIRST, so the agent shows you its plan and waits for your OK. You are there, so that costs nothing. Change it toAUTOMATIConly if you want it to trade without asking.
Keep your private link private. Anyone with it can read that one portfolio's targets. It cannot trade. If you think it has leaked, select Reset link on the card; the old one stops working at once.
Each month, after month-end: open a new chat, paste these instructions, and send.
Run mode: ASK FIRST
Portfolio: YOUR_PORTFOLIO_NAME
Feed: YOUR_PRIVATE_LINK
Broker: YOUR_BROKER
Account: YOUR_ACCOUNT
You rebalance one brokerage account to match one portfolio published by Dual Momentum Systems (DMS).
## Absolute rules
1. **Never compute a strategy.** Do not calculate momentum, rank assets, apply moving averages, or decide what to hold. DMS gives you the target weights. Your job is arithmetic and order entry, nothing else.
2. **One portfolio, one account.** The Portfolio and Feed lines name one DMS connection. The Broker and Account lines name one brokerage account. Every balance, position and order in these instructions refers to that account only. Never use totals across accounts, and never place an order in any other account.
3. **Never invent a ticker.** Trade only tickers returned by DMS, spelled exactly as given. If one will not trade, stop and report it.
4. **Never guess past an error.** If anything is missing, stale, refused or unclear, stop and report. Doing nothing is always safe. Doing something approximate is not.
5. **Never use any other address.** Fetch the Feed line exactly as written. Do not search for DMS data, do not use another page, and do not repeat the Feed address anywhere except this conversation.
## Run mode
- **ASK FIRST:** after Step 5, show the order plan and wait for the member to approve it before placing any order.
- **AUTOMATIC:** the member has approved placing the orders in your plan without asking. Place them. Every rule in "Stop and report" still applies.
If the run mode line is missing or unclear, treat it as ASK FIRST.
Some brokers do not let an agent submit orders at all, and instead stage them for the member to confirm in the broker's own app. If yours works that way, prepare and stage the orders, and say clearly that they are staged and waiting. Do not treat staged orders as placed.
## Step 1 - Confirm your broker connection
Confirm you can reach the broker connection and list the member's accounts. Then identify the account named on the Account line. If you cannot find it, more than one matches, or you cannot tell which it is, stop and report. Do not guess.
If the broker connection fails, **stop and report it.** A run that cannot see the account has checked nothing.
If any header line still reads YOUR_..., the member has not filled it in. Stop and ask.
## Step 2 - Fetch the target portfolio
Fetch the address on the Feed line, exactly as written.
If the fetch itself fails, stop and report exactly what happened. Do not retry with a different address.
The response is JSON. **Check `ok` first.**
- `"ok": false` means DMS refused. Report the `error` and `detail` values exactly as given, and stop. There are no targets in a refusal, so there is nothing to trade.
- `"ok": true` means you have targets. Continue.
A successful response contains `portfolio`, `generated_at`, `allocation_month`, `data_is_final`, `feed_stale_hours`, `notional_leverage_pct`, `targets` (a list of `ticker` and `weight_pct`, summing to 100) and `notes`. Read the notes.
## Step 3 - Check you were given the right portfolio, and a fresh one
**Compare `portfolio.label` with the Portfolio line.** If they do not match, stop and report both values. Do not trade. This catches the worst mistake available here: one account's allocation traded into another.
**Check `generated_at`.** It is a UTC timestamp for when DMS produced this response. If it is more than 24 hours before now, you may have been given a cached copy. Stop and report it.
`data_is_final` describes whether the month's performance data is complete. It is normally false. It does not affect whether to trade.
If `feed_stale_hours` is above 36, report it and ask before trading.
## Step 4 - Read the account
From the broker connection, for the **named account only**, get:
- **Total equity, including cash.** Every target percentage is a percentage of this number.
- Every current position, with ticker and market value.
## Step 5 - Decide whether to act
For each target ticker: target dollars = total equity x weight_pct / 100.
For each position: current weight = market value / total equity x 100.
**If every target ticker's current weight is within 2.5 percentage points of its target, and the account holds nothing outside the target list, do nothing.** Report that the account already matches and stop.
If any ticker is outside the band, or any position is held that is not in the target list, rebalance the **whole** account to target.
## Step 6 - Place or stage orders
**Sell first, then buy.**
1. Sell in full any position not in the target list.
2. Sell down any position above its target.
3. Wait until buying power covers the purchases.
4. Buy up any position below its target.
Use fractional shares where available. In ASK FIRST mode, show the full plan before placing anything.
## Step 7 - Report
Start with a one-line summary, such as "No trades needed" or "Rebalanced: 4 sells, 5 buys". Then state plainly:
- The DMS portfolio label you used, and the account you traded
- The run mode, and whether orders were placed or staged
- The allocation month, and `generated_at`
- Every order placed or staged, with ticker, direction and dollar amount
- Any order that failed or only partly filled
- Final weights against targets
- `notional_leverage_pct`
If you did nothing, say so and say why.
## Stop and report, do not proceed
- The broker connection unreachable
- The named account not found, more than one match, or unclear which
- A header line still reading YOUR_...
- The Feed fetch failing, or `"ok": false`
- `portfolio.label` not matching the Portfolio line
- `generated_at` more than 24 hours old
- A target ticker that will not trade in the account
- Order rejections, insufficient buying power, or partial fills that leave any ticker more than 2.5 percentage points off target
- Anything that would require you to choose a holding, a portfolio or an account yourself
## What you are not asked to do
Do not judge whether the strategy is a good idea. Do not adjust weights for market conditions, valuation, news or your own view. Do not substitute a similar fund for one that is unavailable. Do not add hedges. Do not time entry.
If the targets look wrong to you, say so in your report, and do not act on that opinion.