Торговый журнал — таблица, статистика и разбор результатов

Полная инструкция создания журнала примерно за 20 минут (ориентир для знакомого с основами таблиц; первый импорт и проверка могут занять дольше): 26 столбцов с техническими именами по статье 15.9, формулы строк и панель девяти показателей в вариантах Excel PL/EN (облачные настройки ниже), стартовый CSV из браузера. Скачайте готовый XLSX или создайте таблицу по инструкции. Знание формул помогает понимать и чинить расчёты. Общие имена столбцов позволяют экспорту CSV с правильными разделителем, кодировкой и датой работать со скриптом S1–S3 из приложения I и скриптом промпта P5; аудиты P6–P7 требуют двух дополнительных столбцов (ниже).

Таблица журнала с автоматической статистикой: плановое и реальное исполнение, формулы доли прибыльных сделок, профит-фактора и матожидания, панель показателей
Главное за 60 секунд
  • 26 столбцов в пяти группах: идентификация, контекст, план/исполнение, издержки/результат, процесс. Формулы лишь для производных величин (slippage, r_net, execution_drag)
  • Панель из девяти формул: число сделок, доля прибыльных, профит-фактор, матожидание, сумма R, максимальная просадка R, средние MAE/MFE, доля исполнения без ошибок. Результативность считается по r_net, процесс — по отдельным столбцам; рамки MAE/MFE ниже
  • Два варианта формул: Excel PL (ŚREDNIA, LICZ.JEŻELI, точки с запятой) и Excel EN (AVERAGE, COUNTIF, запятые); переключатель и кнопки копирования каждого блока
  • Показатели описывают выборку с первой записи: около 50 сделок — пример точки обзора курса, не универсальный минимум или доказательство преимущества. Выводы зависят от разброса, зависимости результатов и плана теста. Нарушение лимита или ошибка данных требуют немедленной реакции; изменение стратегии — отдельной гипотезы и валидации

Готовый журнал XLSX

Скачать торговый журнал — XLSX RU

Файл содержит три листа — Statistics, Journal, Instructions, 999 строк и формулы чистого P&L, R, проскальзывания и просадки. A–Z сохраняют формат ниже; также есть AA–AC (самооценка 15.9), AD (заметки), AE–AF (кривая и просадка), AG (исполнение без ошибок). CSV для скриптов включает A:Z. Жёлтые ячейки — ввод; не перезаписывайте формулы экспортом брокера. Для действительно нулевых свопа/комиссии введите 0; отсутствие данных остаётся отсутствием.

Примеры инструкции не входят в статистику файла. Просадка включает начальные 0 R: первый убыток −1 R даёт просадку 1 R. Расположите сделки по закрытию, при одинаковом времени сохраняйте единый порядок. Не сортируйте одну C: вся запись должна оставаться вместе. После перестановки проверьте накопление AE/AF от строки 2. Дополнительный вспомогательный столбец coded_clean не считает пустой код ошибки исполнением без ошибок.

Файл показывает средние MAE/MFE всех введённых измерений, включая нули; дополнительные варианты для прибыльных/убыточных сделок ниже. Профит-фактор считается в R, не валюте счёта. Плановый P&L в T заполняйте только для одинакового типа выхода: SL со SL, TP с TP. Без эквивалента оставьте пустым.

Версия PL использует PLN в полях *_pln . Английская версия имеет тот же порядок столбцов и нейтральные денежные имена без суффикса _pln ; валюта задаётся в инструкции. При переносе CSV между языками сопоставьте заголовки и проверьте валюту. Изменение метки валюты не пересчитывает значения.

Готовая таблица или собственная сборка

  • Два пути к одному журналу: готовый XLSX с видимыми формулами и инструкция для самостоятельной сборки. Макросов и связи с брокером нет. Стартовый CSV создаётся локально браузером. Версия файла на листе Instructions: сейчас 1.2 от 21 сентября 2026; у статьи отдельная версия.
  • Собственную таблицу вы знаете досконально: если спустя годы формула даст ошибку из-за новой пары или формата экспорта, причину проще найти, зная расчёт. «Волшебный» шаблон ломается молча, а лживый журнал хуже отсутствующего.
  • Имена столбцов едины во всём курсе: они взяты из мини-спецификации CSV в 15.9 (таблица охватывает около 20 из 29 логических полей 15.9; пропуски в источниках). Эти имена ожидают S1–S3 из приложение I и скрипт P5. Аудитам P6–P7 мастерской ИИ дополнительно нужны статус соблюдения и заметка состояния. Добавьте status = «plan» для error_code 0, «breach» для 1–9, а строки 10 (инфраструктура) либо исключите из экспорта P6, либо пометьте «infrastructure» и объясните в промпте; заметку состояния получите из AA–AC. Единый формат минимизирует преобразования между инструментами.
  • Облако удобно, но это данные счёта: объёмы, результаты, ошибки процесса. Выбирайте облачное или локальное хранение сознательно, по тем же критериям, что вставку данных в ИИ (гигиена данных в приложение H).
Строка журнала: идентификация, контекст, план и исполнение, издержки и результаты, процесс; R рассчитывается по чистому P&L и плановому риску 1. ИдентификацияID · время · пара направление 2. Контекстсетап · класс · сессия 3. План и исполнениеплановый/фактический вход/SL/TP проскальзывание 4. Издержки и результатысвоп · комиссия PnL · r_net 5. Процессerror_code состояние · качество r_net = чистый P&L / плановый риск один столбец питает всю панель — поэтому используется ЧИСТЫЙ P&L

Структура: 26 столбцов в 5 группах

Буквы A–Z соответствуют формулам ниже: меняя порядок, обновляйте ссылки. Технические заголовки оставьте на английском для совместимости P5 без сопоставления. Можно добавить mental_state, sleep_hours, decision_quality из 15.9 в AA–AC (уже есть в файле); формулы их не требуют.

Столб.ЗаголовокГруппа 1: идентификацияПример
Atrade_idпорядковый номер или идентификатор платформы2026-041
Bopen_time_utcдата/время открытия UTC; MT4/MT5 экспортирует время сервера брокера, например GMT+2/+3 (проверьте спецификацию). Пересчитайте из серверного пояса (15.9); формат YYYY-MM-DD HH:MM2026-07-08 07:42
Cclose_time_utcдата/время закрытия UTC, как в B; настоящее значение таблицы, не текст. Пусто = открытая сделка вне показателей; некорректная дата или закрытие раньше введённого открытия не дают R2026-07-08 13:15
Dpairинструмент: 6 символов без разделителя/суффикса (EURUSD, не EUR/USD или EURUSD.m). Формула пипса только для FX (0.0001 или 0.01 у JPY по окончанию). Для другого инструмента задайте размер пипса из спецификации и измените множительEURUSD
Edirectionlong / short (строчными: формула проскальзывания сравнивает текст)long
Столб.ЗаголовокГруппа 2: контекстПример
Fsetupимя сетапа плейбука (приложение E)asia-london-breakout
Gsetup_classA+ / A / B / C: класс при входе по списку 15.9, не по последующему исходуA+
Hsessionсессия входа (Asia / London / NY / overlap)London
Столб.ЗаголовокГруппа 3: план и исполнениеПример
Iplanned_entryплановый вход, записанный ДО размещения ордера1.0850
Jactual_entryреальная цена исполнения с платформы1.0852
Kplanned_slплановый стоп-лосс1.0820
Lplanned_tpплановый тейк-профит1.0910
Mactual_exitреальная цена закрытия1.0907
Nspread_pipsспред при входе0.7
Oslippage_entry_pipsформула — проскальзывание входа в пипсах, положительное = худшее исполнение2.0
Столб.ЗаголовокГруппа 4: издержки и результатыПример
Pswapсвоп в валюте счёта со знаком (отрицательный — издержки)−3.20
Qcommissionкомиссия как неотрицательные издержки; 0 без комиссии. Отрицательную комиссию экспорта преобразуйте в положительную, чтобы формула не прибавила её к прибыли7.00
Rbroker_gross_pnlваловой P&L платформы: после спреда и ценового исполнения, до свопа и комиссии201.67
Sbroker_net_pnlформула (или ручной ввод, если брокер даёт чистый P&L)191.47
Tplanned_gross_pnlплановый P&L для того же типа выхода (сумма): TP для выхода по TP, SL для стопа; пусто для ручного/временного выхода. W тогда пуст, а 15.9 считает drag суммой проскальзывания, комиссии и свопа в R: (O × цена пипса + Q − P) / U, где своп P со знаком (отрицательный — издержки); вручную, вне формулы220.00
Uplanned_riskплановый риск в валюте счёта (примеры USD; расстояние от планового входа до SL в пипсах × цена пипса для планового объёма). Фиксированный знаменатель R без поздней подгонки под убыток. Не гарантированный максимум: гэпы, проскальзывание и издержки могут его увеличить110.00
Vr_netформула — чистый P&L в R: источник показателей результата1.74
Wexecution_drag_Rформула — разница планового валового и фактического чистого P&L в R; отрицательна, если результат лучше плана0.26
Столб.ЗаголовокГруппа 5: процессПример
Xmae_rмаксимальное неблагоприятное движение за жизнь позиции, в R (15.9, раздел 7)0.35
Ymfe_rмаксимальное благоприятное движение за жизнь позиции, в R2.10
Zerror_code0 = исполнение без ошибок; 1–9 = ошибки решения; 10 = инфраструктура (каталог 15.9)0

Формулы строк — вычисляемые столбцы

Вариант формулы:

Настройки: PL использует польские имена и точки с запятой, EN — английские имена и запятые. Разделитель зависит от региональных настроек; в Google Sheets язык функций задаётся отдельно. При импорте задайте B/C как дату/время, затем проверьте =CZY.LICZBA(C2) (EN: =ISNUMBER(C2)): правильный результат PRAWDA/TRUE. Одного изменения вида ячейки недостаточно.

Введите формулы в строку 2 и заполните вниз или скопируйте в диапазон. Диапазоны до строки 1000; для длинного журнала расширьте формулы, проверки ввода и все диапазоны панели, включая проверки полноты.

O2 · slippage_entry_pips положительное = исполнение хуже плана; множитель для JPY — 100
=JEŻELI(ORAZ(CZY.LICZBA(I2);CZY.LICZBA(J2);DŁ(D2)=6;LUB(E2="long";E2="short"));JEŻELI(E2="long";J2-I2;I2-J2)*JEŻELI(PRAWY(D2;3)="JPY";100;10000);"")
=IF(AND(ISNUMBER(I2),ISNUMBER(J2),LEN(D2)=6,OR(E2="long",E2="short")),IF(E2="long",J2-I2,I2-J2)*IF(RIGHT(D2,3)="JPY",100,10000),"")
S2 · broker_net_pnl при чистом P&L брокера введите вручную вместо формулы
=JEŻELI(ORAZ(ILE.LICZB(P2:R2)=3;Q2>=0);R2+P2-Q2;"")
=IF(AND(COUNT(P2:R2)=3,Q2>=0),R2+P2-Q2,"")
V2 · r_net чистый P&L в R: пусто до даты закрытия C, чистого P&L S и риска U; открытые сделки не входят в показатели
=JEŻELI(ORAZ(CZY.LICZBA(C2);CZY.LICZBA(S2);CZY.LICZBA(U2));JEŻELI(ORAZ(C2>=1;C2<2958466;U2>0;LUB(B2="";ORAZ(CZY.LICZBA(B2);B2>=1;B2<=C2)));S2/U2;"");"")
=IF(AND(ISNUMBER(C2),ISNUMBER(S2),ISNUMBER(U2)),IF(AND(C2>=1,C2<2958466,U2>0,OR(B2="",AND(ISNUMBER(B2),B2>=1,B2<=C2))),S2/U2,""),"")
W2 · execution_drag_R сравнение с планом того же выхода T; ручной/временной выход оставляет T/W пустыми (15.9: тогда drag = (O × цена пипса + Q − P) / U, вручную)
=JEŻELI(ORAZ(CZY.LICZBA(V2);CZY.LICZBA(T2));(T2-S2)/U2;"")
=IF(AND(ISNUMBER(V2),ISNUMBER(T2)),(T2-S2)/U2,"")

Панель: 9 показателей и их смысл

Вставьте показатели на отдельном листе, как в файле: перед диапазонами задайте имя листа, например 'Journal'!V2:V1000, либо над таблицей: заголовки смещаются со строки 1, ссылки нужно исправить. Копирование блока даёт формулы отдельными строками: каждой нужна своя ячейка. AE2, AF2, AG2 относятся к Journal, а не Statistics.

Пустой журнал: N = 0, сумма R = 0, макс. просадка = 0; WR, PF, матожидание и средние без измерений пусты. PF пуст и без убытков: отношение не имеет конечного значения. Для R нужны чистый P&L в S, положительный U и числовая дата/время C в диапазоне Excel. Заполненная B должна быть распознаваемой датой не позже C. Excel хранит даты числами; формат ячейки не превращает текст в дату и не проверяет реальный ввод UTC.

Файл 1.2 использует проверку Stop для дат, направления, класса, комиссии, риска, MAE/MFE и кода. Вставка может её обойти: V отклоняет текстовые даты и неположительный риск, S — отрицательную комиссию, AG принимает лишь целые 0–10. Строки Statistics 16–19 показывают закрытия без R, сделки с R без корректного кода, некорректные MAE/MFE. Формула даты с пустым текстом — отсутствующее закрытие, не некорректная закрытая сделка. Любое число выше нуля объясните до оценки всей выборки.

Показатели результата используют V. Средние MAE/MFE всех введённых измерений имеют отдельную выборку: неотрицательные числа с нулями, даже при пустом V. Отрицательное, текст (включая текст «0.5»), пробел или логическое значение блокируют среднее до исправления, а не тихо искажают итог. Число некорректных ячеек: Statistics B18 для MAE, B19 для MFE; ошибка одного столбца не блокирует корректное среднее другого. Не приравнивайте их выборку к числу закрытых сделок. Измеряйте неотрицательно за один определённый период жизни позиции, пропуски оставляйте пустыми. Варианты прибыльных/убыточных ниже выбирают подмножество по V.

Показатели 1–5 число сделок · доля прибыльных · профит-фактор · матожидание · сумма R
Число сделок:  =ILE.LICZB(V2:V1000)
Доля прибыльных:           =JEŻELI(ILE.LICZB(V2:V1000)=0;"";LICZ.JEŻELI(V2:V1000;">0")/ILE.LICZB(V2:V1000))
Профит-фактор:      =JEŻELI(LICZ.JEŻELI(V2:V1000;"<0")=0;"";SUMA.JEŻELI(V2:V1000;">0")/-SUMA.JEŻELI(V2:V1000;"<0"))
Матожидание (R):     =JEŻELI(ILE.LICZB(V2:V1000)=0;"";ŚREDNIA(V2:V1000))
Сумма R:             =SUMA(V2:V1000)
Число сделок:  =COUNT(V2:V1000)
Доля прибыльных:           =IF(COUNT(V2:V1000)=0,"",COUNTIF(V2:V1000,">0")/COUNT(V2:V1000))
Профит-фактор:      =IF(COUNTIF(V2:V1000,"<0")=0,"",SUMIF(V2:V1000,">0")/-SUMIF(V2:V1000,"<0"))
Матожидание (R):     =IF(COUNT(V2:V1000)=0,"",AVERAGE(V2:V1000))
Сумма R:             =SUM(V2:V1000)
Показатель 6 · максимальная просадка R вспомогательные AE (кривая) и AF (текущая просадка): заполните оба вниз
AE2 (кривая):       =JEŻELI(CZY.LICZBA(V2);SUMA($V$2:V2);"")
AF2 (просадка):   =JEŻELI(CZY.LICZBA(AE2);MAX(0;$AE$2:AE2)-AE2;"")
Макс. просадка (R): =MAX(AF2:AF1000)
AE2 (кривая):       =IF(ISNUMBER(V2),SUM($V$2:V2),"")
AF2 (просадка):   =IF(ISNUMBER(AE2),MAX(0,$AE$2:AE2)-AE2,"")
Макс. просадка (R): =MAX(AF2:AF1000)
Показатели 7–9 · MAE/MFE и исполнение без ошибок (+ средний drag) аудит стопов, выходов и процесса
Среднее MAE (все):  =JEŻELI(WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0")>0;"";JEŻELI(ILE.LICZB(X2:X1000)=0;"";ŚREDNIA(X2:X1000)))   (как в файле, B11)
Среднее MFE (все):  =JEŻELI(WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")>0;"";JEŻELI(ILE.LICZB(Y2:Y1000)=0;"";ŚREDNIA(Y2:Y1000)))   (как в файле, B12)
Среднее MAE прибыльных:    =JEŻELI(WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0")>0;"";JEŻELI.BŁĄD(ŚREDNIA.JEŻELI(V2:V1000;">0";X2:X1000);""))
Среднее MFE убыточных:  =JEŻELI(WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")>0;"";JEŻELI.BŁĄD(ŚREDNIA.JEŻELI(V2:V1000;"<0";Y2:Y1000);""))
AG2 (coded_clean):    =JEŻELI(ORAZ(CZY.LICZBA(V2);CZY.LICZBA(Z2));JEŻELI(ORAZ(Z2>=0;Z2<=10;Z2=LICZBA.CAŁK(Z2));JEŻELI(Z2=0;1;0);"");"")
Исполнение без ошибок:     =JEŻELI(ILE.LICZB(AG2:AG1000)=0;"";ŚREDNIA(AG2:AG1000))
Средний drag исполнения:   =JEŻELI(ILE.LICZB(W2:W1000)=0;"";ŚREDNIA(W2:W1000))   (необязательно, в файле нет)
Среднее MAE (все):  =IF(ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0")>0,"",IF(COUNT(X2:X1000)=0,"",AVERAGE(X2:X1000)))   (как в файле, B11)
Среднее MFE (все):  =IF(ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")>0,"",IF(COUNT(Y2:Y1000)=0,"",AVERAGE(Y2:Y1000)))   (как в файле, B12)
Среднее MAE прибыльных:    =IF(ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0")>0,"",IFERROR(AVERAGEIF(V2:V1000,">0",X2:X1000),""))
Среднее MFE убыточных:  =IF(ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")>0,"",IFERROR(AVERAGEIF(V2:V1000,"<0",Y2:Y1000),""))
AG2 (coded_clean):    =IF(AND(ISNUMBER(V2),ISNUMBER(Z2)),IF(AND(Z2>=0,Z2<=10,Z2=INT(Z2)),IF(Z2=0,1,0),""),"")
Исполнение без ошибок:     =IF(COUNT(AG2:AG1000)=0,"",AVERAGE(AG2:AG1000))
Средний drag исполнения:   =IF(COUNT(W2:W1000)=0,"",AVERAGE(W2:W1000))   (необязательно, в файле нет)
Проверки полноты — как Statistics B16:B19 число выше нуля требует проверки записей
Закрытие без R: =WIERSZE(C2:C1000)-LICZ.PUSTE(C2:C1000)-ILE.LICZB(V2:V1000)
R без кода:       =ILE.LICZB(V2:V1000)-ILE.LICZB(AG2:AG1000)
Некорректное MAE:       =WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0")
Некорректное MFE:       =WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")
Закрытие без R: =ROWS(C2:C1000)-COUNTBLANK(C2:C1000)-COUNT(V2:V1000)
R без кода:       =COUNT(V2:V1000)-COUNT(AG2:AG1000)
Некорректное MAE:       =ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0")
Некорректное MFE:       =ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")
Две единицы R: пример проверки. Сделка с риском U = USD 50 и чистым P&L −USD 50 даёт −1R; другая с U = USD 200 и P&L +USD 200 даёт +1R. Сумма r_net — 0R, но счёт вырос на USD 150. Если базовый 1R плана в периоде USD 100, результат относительно его лимита +1.5 базовых R. PF тоже разный: 1 в R сделок, 4 в USD. Это разные меры, не противоречие. Период выбирайте по поясу и границам недели плана; исходное время журнала остаётся UTC. Итог закрытых позиций не заменяет контроль текущих средств и убытков открытых. При смене базового R следуйте документированному правилу, а не делите весь период на произвольную сумму с его конца.
ПоказательКак читать результаты и ограничения
Доля прибыльных сделокСама по себе не говорит о преимуществе: график ниже. Без закрытых сделок пуста; 0% означает выборку без прибыльных. Сравнивайте с допущениями плейбука, не оценивайте «хороший ли я трейдер»
Профит-факторНиже 1.0 — отрицательный итог R выборки; значим лишь вместе с числом сделок и просадкой. Отсутствие убытков означает деление на ноль, не «бесконечное преимущество»
Матожидание (R)Главное число журнала: средний чистый результат сделки. Положительное после издержек описывает выборку, но само не доказывает преимущество. Оценивайте разброс, зависимость результатов, стабильность условий и валидацию по протоколу тестирования (N). 50 — пример точки обзора; масштабирование также требует соблюдения плана риска
Макс. просадка (R)Мера всей истории: AF считает просадку от высшего пика кривой, а не недельный убыток. Недельный лимит плана E задан базовым R или процентом капитала. Не сравнивайте его прямо с суммой r_net при разных U. При постоянной денежной базе R итог периода в единице плана — сумма чистого P&L S за период, делённая на базовый R. Процентному лимиту нужна база капитала из плана. AF описывает путь R сделок, не просадку баланса/средств. Необычная просадка требует проверки данных, условий и допущений теста
Среднее MAE прибыльных сделокНизкое (например, < 0.4R) — гипотеза избыточной ширины стопа для новой выборки, не немедленного сужения (15.9); близкое к 1R означает движение против прибыльных почти на весь риск. Проверьте входы и стопы до вывода об ошибке исполнения
Среднее MFE убыточныхВысокое: сделки шли в вашу сторону и развернулись. Проверьте выходы и частичную фиксацию
Drag исполнения (среднее)Необязательная формула выше только по сделкам с заполненной T. Устойчиво высокое значение — разрыв планового валового и реального чистого P&L сопоставимых выходов, включая издержки и отличия цен. Ручные/ранние выходы без эквивалента в среднее не входят. Не смешивайте с их упрощённой оценкой издержек
Исполнение без ошибокДоля закрытых сделок с error_code = 0. AG считает лишь корректный R с целым кодом 0–10; пустой код не чистое исполнение. Около 90% — возможный рабочий порог конкретного плана, не стандарт качества. Проверьте число оценённых сделок и пустые коды: 100% от одного кода 0 при множестве пропусков не описывает журнал. Критическое нарушение требует действий независимо от процента. Нарушающие правила сделки не являются чистым тестом правил
Две системы: доля прибыльных 60 процентов даёт отрицательное матожидание при плохом отношении прибыли к убытку; 40 процентов с прибылью 2R дают положительное Доля прибыльных A: 60% B: 40% средняя прибыль 0.5R · убыток 1R средняя прибыль 2R · убыток 1R Матожидание сделки A: −0.10R B: +0.20R поэтому начните с матожидания, а долю прибыльных читайте только вместе с распределением R

Стартовый CSV и импорт

Кнопка создаёт CSV целиком в браузере без передачи данных или отдельного сетевого запроса: 26 заголовков и две примерные строки, прибыльную и убыточную, для демонстрации формул. PL использует точки с запятой и десятичную запятую: явно выбирайте разделитель импорта, поведение двойного щелчка зависит от системы. EN — запятые и десятичную точку. После импорта замените O, S, V, W примеров формулами выше и удалите примеры до первой записи либо храните отдельно. Экспорт может сохранять отображаемую точность. XLSX 1.2 использует шесть десятичных знаков V/W; стартовый CSV тоже, рассчитывая из сумм строки. При таком округлении ошибка R не выше 0.0000005 R; PF чувствительнее при малой сумме убытков. Модуль меньше 0.0000005 R может округлиться до нуля, изменив прибыльность/убыточность и WR; увеличьте точность перед экспортом. Для точного анализа увеличивайте её до экспорта, а не только позже в скрипте.

Стартовый файл журнала создаётся локально в варианте переключателя формул
Экспорт в приложения H и I пошагово: скопируйте заголовки и заполненные A:Z листа Journal в новый файл через «Вставить значения». Задайте B/C формат yyyy-mm-dd hh:mm (польский интерфейс может показывать rrrr-mm-dd gg:mm), V/W — минимум шесть знаков без разделителя тысяч. Сохраните CSV UTF-8. Перед объединением проверьте уникальность trade_id: S1 не удаляет дубликаты. Частичные исполнения позиции объединяйте по своей единице сделки с издержками, сохраняя исходный U; не считайте сделку и отдельными исполнениями, и общим итогом. В текстовом редакторе проверьте 26 полей записи, разделитель, даты UTC и числа. CSV хранит значения, не формулы и другие листы: сохраняйте XLSX. Для S1 задайте PL: CSV_SEP=";", DECIMAL=","; EN: CSV_SEP=",", DECIMAL=".". UTF-8 с BOM читается как utf-8-sig.

Проверка двух примеров: чистый P&L USD 191.47 при риске USD 110 даёт 1.740636 R; P&L −USD 113.10 при риске USD 105 даёт −1.077143 R. По шести знакам скрипт должен дать N = 2, WR = 50%, сумму 0.663493 R, матожидание 0.3317465 R, PF около 1.615974852 и макс. DD 1.077143 R. S2 округляет: WR 0.5; PF 1.62; матожидание 0.332 R; сумма 0.66 R; макс. DD 1.08 R. Формулы XLSX считают неокруглённые отношения: последние цифры могут отличаться. S1 останавливается на некорректной закрытой сделке; P5 требует исключить и описать её. Сравнивайте после сверки выборок. P5 — инструкция генерации, не готовый файл с гарантированным результатом.

Пошаговая сборка

  1. Создайте пустую таблицу в Excel/LibreOffice Calc или облаке; это данные счёта, выбирайте сознательно.
  2. Импортируйте стартовый CSV или скопируйте заголовки структуры. Проверьте, что числа стали числами: текст «1.0850» указывает на несовпадение разделителей с настройками.
  3. Вставьте формулы строк в O2, S2, V2, W2, заполните вниз с запасом строк.
  4. Вставьте панель показателей (показатели 1–9) над таблицей или на отдельном листе. AE, AF, AG заполните вниз так же до последней подготовленной строки.
  5. Задайте распорядок: запись после каждой закрытой сделки (чек-лист EOD в приложение J это включает), недельный обзор показателей, квартальные решения плейбука (приложение E).
Панель журнала: доля прибыльных, профит-фактор, матожидание и максимальная просадка R над записями, сбоку кривая капитала вспомогательного столбца
Панель журнала: доля прибыльных, профит-фактор, матожидание и максимальная просадка R над записями, сбоку кривая капитала вспомогательного столбца

Вопросы и ответы

Excel, LibreOffice или облако?

Базовые функции доступны Excel, LibreOffice Calc и Google Sheets. Имена и разделители зависят от программы/файла: PL — польские с точкой с запятой, EN — английские с запятой. Облаку могут требоваться английские с точкой с запятой. Все версии программ не тестировались. Главное различие: объёмы, результаты и каталог ошибок в облаке хранятся вне вашего диска по правилам провайдера. Принцип раздела — локальное хранение по умолчанию; облако выбирайте сознательно и экспортируйте резервную копию. То же решение требует гигиена данных приложения H до вставки журнала в чат.

Сколько сделок нужно для смысла показателей?

Показатели описывают выборку с первой сделки. Около пятидесяти — рабочий пример первого обзора системы, не порог значимости. Ранее матожидание и доля прибыльных сильно меняются после серий и больше описывают последнюю серию, чем систему; важны разброс и зависимость результатов. В курсе это число также встречается в плейбуке E как порог A+. До этого журнал полезен: исполнение без ошибок и полнота работают с первой записи и определяют будущую надёжность показателей системы. Сначала процесс, затем выборка, потом оценка системы. Уточнение для текущей версии E: упомянутые примерно пятьдесят сделок — пример момента для проверки, а не порог A+ в актуальном плейбуке. Класс определяется заранее заданными необходимыми условиями и критериями качества; один лишь размер выборки не присваивает класс.

Зачем error_code, если виден результат?

Результат и качество решения различны: прибыльная сделка может нарушать план (опаснейший случай подкреплённого нарушения), а образцовое исполнение дать убыток. Error_code 0–10 позволяет отдельно считать матожидание чистого исполнения. Прибыль после фильтрации нарушений указывает искать проблему исполнения, но разница групп ещё не доказывает причину. Отделяйте инфраструктуру 10 от решений; процедуры — в приложение K, каталог 1–9 — в 15.9.

Excel не принимает формулы: что проверить?

Обычно три причины. Вариант: язык функций и разделитель аргументов независимы; PL/EN — распространённые сочетания, но проверьте региональные настройки. В Google Sheets также опцию английских имён. Десятичный разделитель: система с запятой прочитает «1.0850» текстом, отсюда два CSV. Кавычки: мессенджеры могут заменить прямые типографскими. Копируйте кнопкой без посредника. Не помогло — P3 приложения H проверяет и формулы, и код.

Условный сценарий: система «прибыльна» до учёта издержек. Журнал аккуратен, но P&L скопирован ВАЛОВЫМ без комиссии и свопа. Через квартал матожидание +0.12R привело к росту частоты: больше сделок — больше прибыли. После издержек и пересчёта r_net по чистому P&L результат −0.04R. Система не зарабатывала, а создавала оборот; частота углубляла убыток ровно на издержки каждой новой сделки. Поэтому в группе 4 издержки и чистый P&L отдельно, а r_net только из чистого P&L.
Модельный сценарий: MAE выявляет слишком узкий стоп. При WR явно ниже бэктеста трейдер подозревал охоту брокера за стопами. mae_r/mfe_r показали иное: на убыточных MAE заканчивалось чуть за 1.0R, а MFE тех же входов раньше достигало 1.5R+. Позиция шла в нужную сторону, разворачивалась и достигала стопа. MAE/MFE измеряют только жизнь позиции: после стопа потребовалось отдельное измерение заданного окна, показавшее возврат нужного направления. Возникла гипотеза, что SL внутри обычных колебаний, а выходы не захватывают часть движения. ATR задаёт масштаб волатильности, но сам не определяет оптимальный стоп. В модели вынос за структуру с уменьшением объёма при том же денежном риске проверили на отдельной выборке; только её итог обосновал дальнейшую оценку изменения. Без MAE/MFE гипотеза не появляется, остаётся теория заговора о брокере.
Примечание: страница учебная, не инвестиционная рекомендация. Формулы измеряют ваши результаты, не предсказывают. Примерные строки иллюстрируют формат, не ожидаемые исходы. Малая выборка или валовой результат ведут к плохим решениям: r_net берётся из чистого P&L, оценке системы нужны план теста, неопределённость и зависимость результатов. Само превышение 50 сделок ничего не подтверждает.

Источники

  1. Van K. Tharp, Trade Your Way to Financial Freedom, 2-е изд., McGraw-Hill 2007: результаты в R и матожидание как основные показатели системы, на которых основаны r_net и панель.
  2. Внутренние источники: 15.9 Журнал и показатели (структура полей, коды ошибок, MAE/MFE) и 15.10 Аудит стратегии (обоснованные выводы по выборке): 26 столбцов A–Z и 3 самооценки дают 29 столбцов файла, но это около 20 из 29 логических полей 15.9. Отсутствуют regime, actual_tp, slippage_exit_pips и четыре, которые сама 15.9 просит добавить («таблица предшествует разделу»): lots, pip_value_at_open, strategy_version, evidence_link ; для скрипта 15.9 добавьте необязательными с AH, не перезаписывая AA–AG. Для скриптов A:Z экспортируйте лишь этот диапазон.
  3. Документация: Microsoft — разделитель аргументов и CSV, Microsoft — импорт/экспорт CSV, Google Sheets — региональные настройки и язык функций. Проверено 21 сентября 2026; правила настройки, не утверждение о тестах каждой программы.
  4. NIST — неопределённость среднего: зависимость от размера выборки и разброса, не обоснование универсального порога 50. Проверено 21 сентября 2026.

Jarosław Wasiński

Главный редактор, ForexMechanics.com • Макро- и валютный аналитик

Независимый аналитик и профессионал с более чем 20-летним опытом работы на финансовых рынках. Активно работает на Форексе с 2004 года, специализируется на фундаментальном анализе, структуре внебиржевого (OTC) рынка и дисциплинированном управлении риском капитала.

  • Основатель и главный редактор MyBank.pl, который с 2004 года предоставляет надёжное финансовое образование.
  • Автор сотен глубоких рыночных комментариев, структурных аналитических материалов и обучающих пособий для трейдеров и инвесторов.
  • Сторонник прозрачности рынка, продвигает обучение, основанное на конкретных данных и институциональных отчётах (BIS, ESMA, CFTC).

Все материалы носят исключительно образовательный и информационный характер – они не являются инвестиционной рекомендацией или каким-либо советом. Помните: торговля с кредитным плечом (Форекс/CFD) сопряжена с высоким риском быстрой потери капитала.