Skip to content

Review the last month of trading

A monthly review answers three questions: how many trades closed, what did they return, and where is the risk still sitting. This guide pulls deals, completed order history and current exposure into a dated folder, then chains them into one script you can rerun at the end of every month.

Tip

Define your credentials in shell variables once. Every interactive command below reuses them, so the steps stay short and the script stays portable.

export CTID=1234567
export ACC=7654321
export PWD_FILE=$HOME/.ctrader/pwd

1. Pull every deal for the month

deals returns every executed trade event for the account in the date range. Use --from and --to for a fixed range or --count for the most recent deals.

ctrader-cli deals --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
    --from=01/06/2025 --to=30/06/2025

The output includes symbol, side, volume, execution price and realised profit for every deal.

2. Pull the completed order history

orders-history lists the orders that finished in the same range, with their final status (filled, expired, cancelled or error). Pending orders are excluded.

ctrader-cli orders-history --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
    --from=01/06/2025 --to=30/06/2025

Pair the deal list with the order history to see which entries triggered which exits.

3. Read the current exposure

exposure summarises the open exposure on the account, grouped by symbol. It is the snapshot of the risk you are still carrying the day after the review.

ctrader-cli exposure --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q

4. Save each result to a dated file

Each command prints JSON, so redirection is enough to keep a record of the review.

MONTH=2025-06
ctrader-cli deals          --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --from=01/06/2025 --to=30/06/2025 > ${MONTH}_deals.json
ctrader-cli orders-history --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --from=01/06/2025 --to=30/06/2025 > ${MONTH}_orders.json
ctrader-cli exposure       --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q > ${MONTH}_exposure.json

Three files, one per question, all dated and easy to diff against next month's review.

5. Combine into a monthly review script

Save the full sequence as monthly-review.sh. The script computes the first and last day of the previous month automatically, so it works whenever you run it.

#!/usr/bin/env bash
set -euo pipefail

CTID=1234567
ACC=7654321
PWD_FILE=$HOME/.ctrader/pwd

MONTH=$(date -d "last month" +%Y-%m)
FROM=$(date -d "last month" +01/%m/%Y)
TO=$(date -d "last month" +$(date -d "last day of last month" +%d)/%m/%Y)

mkdir -p ${MONTH}
cd ${MONTH}

ctrader-cli deals          --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --from=$FROM --to=$TO > ${MONTH}_deals.json
ctrader-cli orders-history --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q --from=$FROM --to=$TO > ${MONTH}_orders.json
ctrader-cli exposure       --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q > ${MONTH}_exposure.json

echo "Review for ${MONTH} saved to $(pwd)/${MONTH}_*.json"

Run it once a month and you have a timestamped folder per period. On Linux, date -d accepts the last month and last day of last month expressions directly. On macOS, replace them with the equivalent gdate from coreutils or use fixed --from and --to values.

6. Spot patterns from the data

The JSON files are structured for a notebook or a quick shell pipeline. Common checks include:

  • Win rate: count deals with positive profit versus deals with negative profit.
  • Symbol breakdown: group the deals by symbol and sum the profit per group.
  • Largest single loss: sort the deals by profit and read the smallest entry.
  • Open risk: read the exposure file to see which symbols still carry positions.

Pair these checks with the account-stats snapshot from the same day for a complete view of how the month changed the account.

The CLI references lists all available options for the commands used in this workflow.

Warning

cTrader CLI is a tool for trading and automation. It does not provide financial, investment, legal or tax advice. Past performance does not guarantee future results. Verify every command before you run it, test on a demo account first and protect your credentials.