Перейти к содержанию

Анализ торговли за прошлый месяц

Ежемесячный анализ отвечает на три вопроса: сколько сделок было закрыто, какой результат они принесли и где по-прежнему сохраняется риск? В этом руководстве показано, как собрать сделки, историю завершенных ордеров и текущую экспозицию в папку с датой, а затем объединить эти действия в скрипт, который можно запускать в конце каждого месяца.

Совет

Один раз задайте учетные данные в переменных оболочки. Все приведенные ниже интерактивные команды используют эти переменные. Это упрощает шаги и позволяет переносить скрипт между средами.

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

1. Получение сделок, закрытых за месяц

deals возвращает только закрытые сделки: по одной записи на каждую закрывающую сделку с реализованной прибылью или убытком. Эти же данные доступны на вкладке История в 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, без ограничения по его длительности.
  • Один вызов возвращает только последние 200 сделок (deals) или последние 500 ордеров (orders-history) в указанном диапазоне.
  • Без --from / --to обе команды возвращают данные только за последние 30 дней.

Если за месяц было много сделок, разделите диапазон на части и выполните каждую команду отдельно для каждой части.

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

Получатся три файла с датой — по одному на каждый вопрос. Их удобно сравнивать с результатами анализа следующего месяца.

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"

Запускайте его раз в месяц, чтобы для каждого периода создавать отдельную папку с отметкой времени. В Linux команда date -d напрямую принимает выражения last month и last day of last month. В macOS используйте аналог gdate из coreutils или задайте фиксированные значения --from и --to.

6. Выявление закономерностей в данных

Структура файлов JSON позволяет анализировать их в ноутбуке или через простой конвейер команд оболочки. В число типичных проверок входят:

  • Доля прибыльных сделок: сравните число сделок с положительной прибылью и число убыточных сделок.
  • Разбивка по инструментам: сгруппируйте сделки по инструменту и подсчитайте суммарную прибыль в каждой группе.
  • Самый большой убыток по одной сделке: отсортируйте сделки по прибыли и найдите минимальное значение.
  • Риск по открытым позициям: проверьте файл с экспозицией, чтобы узнать, по каким инструментам еще открыты позиции.

Дополните эти проверки снимком account-stats за тот же день, чтобы оценить, как за месяц изменилось состояние счета.

В справочнике команд cTrader CLI перечислены все доступные параметры команд, используемых в этой процедуре.

Предупреждение

cTrader CLI — инструмент для торговли и автоматизации. Он не предоставляет финансовых, инвестиционных, юридических или налоговых консультаций. Результаты прошлых периодов не гарантируют аналогичных результатов в будущем. Проверяйте каждую команду перед выполнением, сначала тестируйте ее на демосчете и защищайте свои учетные данные.