Анализ торговли за прошлый месяц¶
Ежемесячный анализ отвечает на три вопроса: сколько сделок было закрыто, какой результат они принесли и где по-прежнему сохраняется риск? В этом руководстве показано, как собрать сделки, историю завершенных ордеров и текущую экспозицию в папку с датой, а затем объединить эти действия в скрипт, который можно запускать в конце каждого месяца.
Совет
Один раз задайте учетные данные в переменных оболочки. Все приведенные ниже интерактивные команды используют эти переменные. Это упрощает шаги и позволяет переносить скрипт между средами.
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 — инструмент для торговли и автоматизации. Он не предоставляет финансовых, инвестиционных, юридических или налоговых консультаций. Результаты прошлых периодов не гарантируют аналогичных результатов в будущем. Проверяйте каждую команду перед выполнением, сначала тестируйте ее на демосчете и защищайте свои учетные данные.