コンテンツにスキップ

先月の取引を振り返る

月次レビューでは3つの点を確認します。決済した取引は何件か、損益はどうだったか、どのようなリスクが残っているか。このガイドでは、約定履歴、完了した注文の履歴、現在のエクスポージャーを日付付きのフォルダーに保存し、月ごとに再実行できるスクリプトにまとめます。

ヒント

認証情報をシェル変数に一度だけ設定します。以下の対話型コマンドはすべてこの変数を再利用するため、手順が簡潔になり、異なる環境でもスクリプトを使いやすくなります。

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

1. 月内に決済した取引を取得する

dealsは決済取引のみを返します。決済の約定ごとに、確定損益を含むレコードが1件返されます。これはcTraderの履歴タブに表示されるデータと同じです。 --fromと--toは決済時刻で取引を絞り込み、--countは直近の決済取引を返します。ポジションを開く際の約定は含まれません。そのため、ポジションを全部または一部決済して初めてdealsに表示されます。

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

各決済取引の出力には、銘柄、売買方向、取引数量、約定価格、確定利益が含まれます。

2. 完了した注文の履歴を取得する

orders-historyは同じ期間に完了した注文と、その最終ステータス(filled、expired、cancelled、error)を表示します。未完了の予約注文は含まれません。

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

約定履歴と注文履歴を照らし合わせ、どのエントリーがどの決済につながったか確認します。

dealsとorders-historyには、次の履歴取得の制限があります。

  • CLIは--from / --toで指定した期間を、長さの制限なく読み込みます。
  • ただし1回の呼び出しで返るのは、指定期間内の直近200件の約定(deals)または直近500件の注文(orders-history)までです。
  • --from / --toを指定しない場合、どちらも直近30日分のデータだけを返します。

月内の取引件数が多い場合は期間を複数に分け、各期間についてそれぞれのコマンドを1回ずつ実行します。

3. 現在のエクスポージャーを確認する

exposureは、口座内の保有ポジションのエクスポージャーを銘柄別にまとめます。これにより、レビュー翌日にも持ち越されるリスクを把握できます。

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

4. 結果を日付付きファイルに保存する

各コマンドはJSONを出力するため、ファイルにリダイレクトするだけでレビュー結果を保存できます。

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

3つの問いに対応する日付付きファイルが1つずつ、計3つ作成されます。翌月のレビュー結果と簡単に比較できます。

5. 手順を月次レビュースクリプトにまとめる

コマンド一式をmonthly-review.shとして保存してください。スクリプトは前月の初日と最終日を自動計算するため、いつ実行しても使用できます。

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

CTID=letstrade
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"

月に1回実行し、対象期間ごとにタイムスタンプ付きのフォルダーを作成します。 Linuxでは、date -dにlast monthとlast day of last monthをそのまま指定できます。 macOSでは、coreutilsのgdateを使用するか、--fromと--toに固定値を指定してください。

6. データから傾向を見つける

JSONファイルは、ノートブック環境や簡単なシェルパイプラインで分析しやすい構造になっています。代表的な分析項目は次のとおりです。

  • 勝率: 利益がプラスの決済取引の件数と、損失が出た決済取引の件数を比較します。
  • 銘柄別の内訳: 約定を銘柄別に分類し、各グループの利益を合計します。
  • 最大の単独損失: 約定を利益順に並べ、最も低い値を特定します。
  • 保有ポジションのリスク: エクスポージャーのファイルを確認し、どの銘柄にポジションが残っているか調べます。

同じ日のaccount-statsのスナップショットと組み合わせれば、1か月間の口座状態の変化をより詳しく把握できます。

cTrader CLIコマンドリファレンスでは、この手順で使用するコマンドのすべてのオプションを確認できます。

警告

cTrader CLIは取引と自動化のためのツールです。金融、投資、法律、税務に関する助言を提供するものではありません。過去の実績は将来の結果を保証するものではありません。各コマンドは実行前に確認し、まずデモ口座で試してください。また、認証情報を適切に保護してください。