Як читати цей розбір. Формул тут дві, обидві розібрані словами й на числах. Головний висновок у розділі «Метод в один рядок», а найцікавіше в шостому розділі: там показано, де заголовковий результат роботи не витримує перерахунку.
1. Як влаштований тест
Питання те саме, що в бар'єрній моделі Villahermosa, але підхід зворотний. Замість того щоб вивести ймовірність проходження з геометрії правил, автор бере завідомо безглузду стратегію, проганяє її через запрограмовані правила конкретної фірми й дивиться, що вийде з грошима.
Робота з самого початку ділить дві величини, які в цій темі постійно плутають.
Симульований результат проти реального. Прибутки й збитки на рахунку визначають, чи пройдена оцінка, чи живий рахунок і чи належить виплата. Це симульовані гроші. Реальний грошовий потік клієнта складається рівно з двох речей: він платить підписку й отримує виплати. Економічний результат це виплати мінус вартість рахунків, а не зміна симульованого балансу.
Звідси випливає важливе для читання. Комісії за угодами списуються із симульованого балансу й впливають на ймовірність проходження, але не є реальним видатком клієнта. Тому в чистий результат $+1 490 вони не входять, і це методологічно правильно. Формулювання автора вводить в оману: "the modeled proprietary framework generated +\$1,490.19 of mean net economic P&L per account after account-related costs and trading costs were incorporated". Насправді , і жодних торгових витрат у цій різниці немає.
Правила Topstep, які запрограмовані
| Симульований результат | Реальний грошовий потік |
|---|---|
| Ціль оцінки: $3 000 | Вартість рахунку: $85 на місяць |
| Максимальний ліміт збитку $2 000; повзе за максимумом балансу | Стеля виплати: $6 000 на один запит |
| Консистентність оцінки: найкращий день не більше 50 % прибутку, потрібного для проходження | Максимальний запит: 50 % прибуткового балансу |
| Денний ліміт збитку: $1 000 | Мінімальний запит: $125 |
| Кредит скидання: за провалу дозволяє не купувати рахунок заново, а зсунути списання на 30 днів | Розподіл прибутку: 90 % клієнтові, 10 % фірмі |
| Вимога до виплати: щонайменше три торгові дні хоча б з однією угодою | |
| Консистентність на фондованій стадії: жоден день не дає більше 40 % прибутку за цикл |
Стратегія
- Інструмент: Micro E-mini Nasdaq-100 (MNQ)
- Розмір: 8 контрактів
- Частота: одна угода на заліковий день
- Вхід: 10:00 за Нью-Йорком
- Напрям: випадково лонг або шорт із рівною ймовірністю
- Стоп: 100 тиків (25 пунктів індексу)
- Ціль: 100 тиків, відношення 1:1
- Грошове значення цілі й стопа: ±$400 брутто на 8 MNQ
- Витрати: $1.22 за оберт на контракт, тобто $9.76 на угоду з восьми
- Вихід за часом: не зачеплені бар'єри закриваються о 16:00
- Фільтр сесій: свята, скорочені дні й дні без бара 10:00 виключені
- Неоднозначні спостереження: дні, де ціль і стоп зачеплені всередині однієї хвилини, виключені
Перевірка грошової арифметики. Тик MNQ це 0.25 пункту індексу і $0.50 на контракт. Сто тиків це 25 пунктів, тобто $50 на контракт. На восьми контрактах $400. Сходиться.
Виключено 87 скорочених святкових днів, один день без бара 10:00 і чотири дні, де ціль і стоп зачеплені в одну хвилину, що склало 0.16 % від 2 485 угод.
Застереження автора, яке варто прочитати уважно. Десять тисяч шляхів це не десять тисяч незалежних десятирічних історій ринку. Кожна симуляція використовує одні й ті самі 2 485 історичних днів і рандомізує лише напрям на кожну дату. Вправа вимірює, як різні послідовності угод змінюють результат усередині спостереженої вибірки, і не претендує представляти всі можливі майбутні шляхи. Автор ставить це застереження сам, і воно нижче виявиться ключем до всієї критики.
2. Метод в один рядок
Що це таке. Уся економічна частина роботи. Симульований баланс сюди не входить узагалі: він лише визначає, чи дійде справа до виплати.
Рахунок за кроками. Склади всі отримані виплати. Відніми все, що заплачено за підписки й покупки рахунків.
Приклад на числах роботи. Виплати $9 368.50, вартість рахунків $7 878.30, чистий результат $+1 490.20.
А ось друга формула, заради якої роботу написано, і вона ж найвразливіше її місце:
Рахунок за кроками. Поділи виплати на витрати. Помнож поточну ціну підписки на це відношення.
Приклад на числах роботи. . Тоді , і рахунок «дешевший за справедливу ціну на $16».
Чому арифметика сходиться. Вартість рахунків $7 878.30 за підписки $85 означає 92.69 оплачених місяців, що точно дорівнює 61.68 продовжень плюс 31.01 покупки оцінки. Якщо підняти ціну до $101.08, ті самі 92.69 місяці обійдуться в $9 368, тобто рівно в суму виплат. Внутрішньо розрахунок коректний.
Чого він не враховує. Того, що ціну визначає не ця стратегія, а вся популяція клієнтів.
3. Базова стратегія: чи справді нуль

Як його читати. По горизонталі результат одного рандомізованого шляху в доларах, від −$80 000 до +$80 000. По вертикалі скільки шляхів із десяти тисяч потрапило в цей стовпець. Розподіл приблизно нормальний і центрований біля нуля, трохи лівіше.
Що треба побачити. Симетрію й центр біля нуля. Це і є доказ, що стратегія справді без переваги: напрям обирався монеткою, і підсумок одного шляху визначається тим, чи пощастило монетці.
Практичний висновок. Розкид величезний відносно центру: шлях може закінчити і на −$50 000, і на +$50 000 за нульового очікування. Саме ця дисперсія і є сировиною, з якої далі робиться «цінність» проп-рахунку.
Числа за базовою стратегією:
| Величина | Значення |
|---|---|
| Середнє число виграшів за ціллю | 1 143.98 |
| Середнє число програшів за стопом | 1 145.02 |
| Виходи за часом | 196 |
| Частка виграшів серед розв'язаних бар'єром | 49.98 % |
| Середній брутто-результат на угоду | −$0.1678 |
| Середній брутто-результат за шлях | −$416.86 |
| Медіана за шлях | −$568 |
| Витрати за шлях (2 485 × $9.76) | −$24 253.60 |
| Чистий результат окремої стратегії | −$24 670.46 |
Звірка сходиться: , частка виграшів , а проти заявлених −$416.86.
Розбивка за п'ятирічками. Перший період (серпень 2016 по серпень 2021, 1 246 днів): частка виграшів 49.99 %, −$0.0408 на угоду, −$50.78 за шлях. Другий (серпень 2021 по серпень 2026, 1 239 днів): 49.96 %, −$0.2955 на угоду, −$366.08 за шлях. Сума двох періодів дає −$416.86 і збігається з повною вибіркою.
4. Та сама стратегія всередині правил Topstep

Як його читати. По горизонталі чистий економічний результат одного шляху, від −$30 000 до +$110 000. По вертикалі число шляхів. Порівняйте з попереднім рисунком: там шкала симетрична, тут лівий край обрізано, а правий довгий.
Що треба побачити. Скіс праворуч. Маса, як і раніше, сидить біля нуля, але лівий хвіст коротко обрубано. Обрубаність ліворуч і є механіка продукту: клієнт не може втратити більше, ніж заплатив за підписки.
Практичний висновок. Додатне середнє береться не з того, що стратегія стала кращою. Вона та сама. Воно береться з того, що розподіл збитків усічено, а розподіл прибутків ні.
| Величина | Значення |
|---|---|
| Середні виплати клієнтові | $9 368.50 |
| Середня вартість рахунків | $7 878.30 |
| Середнє чисте | +$1 490.19 |
| Медіана чистого | +$1 036.83 |
| Відношення виплат до витрат | ≈ 1.19 |
| Стандартне відхилення | $3 926.12 |
| 5-й / 95-й процентиль | −$3 995.42 / +$8 612.82 |
| Частка прибуткових симуляцій | 60.30 % |
Життєвий цикл рахунку активний, а не зведений до кількох вдалих виплат: у середньому на симуляцію 31.01 покупки оцінки, 61.68 продовження, 56.31 використаний кредит скидання, 17.62 пройдених оцінки, 17.47 провалів фондованого рахунку і 14.95 виплат.
Чому кілька правил виявилися неробочими. Денний ліміт збитку $1 000 недосяжний, якщо ціль і стоп не перевищують $400, а угода одна на день. Консистентність на стадії оцінки (найкращий день не більше 50 % від цілі $3 000, тобто не більше $1 500) недосяжна з тієї самої причини. Автор це чесно називає: параметри системи добиралися з огляду на правила Topstep, і $400 не оптимізована величина, а та, що зручно лягла нижче за денний ліміт і обнулила кілька правил.
Звідси перший із двох головних змістовних висновків роботи, і він хороший:
Правила проп-фірм відсіюють поведінку з керування розміром позиції, а не торгову навичку. Фіксований розмір робить частину правил недійсними, і це не лазівка, а властивість конструкції: правила написані проти людини, яка нарощує розмір після серії, а не проти того, хто його не змінює ніколи.
5. Розбивка за п'ятирічками, де все й ламається

Як його читати. Ті самі осі, що на попередньому рисунку, але два набори стовпців: один це перша п'ятирічка (2016 по 2021), другий друга (2021 по 2026).
Що треба побачити. Ранні стовпці зміщені ліворуч відносно пізніх. У кошику −$10 000 вищий ранній, а в кошиках від +$10 000 і правіше вищий пізній майже всюди. Пізній розподіл цілком зсунуто в плюс.
Практичний висновок. Це два різні бізнеси, а не один із шумом. Перша п'ятирічка дає від'ємну медіану, друга додатну, при тому що правила рахунку й ціна підписки не змінювалися.
| Величина | 2016–2021 | 2021–2026 |
|---|---|---|
| Середнє чисте | +$253.08 | +$913.49 |
| Медіана чистого | −$214.23 | +$403.34 |
| Частка прибуткових симуляцій | 46.45 % | 56.05 % |
| Виплати | $4 155.81 | $5 108.40 |
| Вартість рахунків | $3 902.73 | $4 194.91 |
| Відношення виплат до витрат | 1.06 | 1.22 |
| Виходи за часом за шлях | 196 | 0 |
У першій п'ятирічці медіана від'ємна, і більшість шляхів втрачає гроші. Додатне середнє за від'ємної медіани це чистий скіс: працює меншість шляхів, що зайшли далеко праворуч.
Пояснення автора про виходи за часом. У першому блоці в середньому 196 угод за шлях не доходили ні до цілі, ні до стопа й закривалися о 16:00, у другому таких не було жодної. Більше виходів за часом означає більше угод із малим за модулем результатом, а якщо рахунку довше проходити чи відвалюватися, він платить більше підписок без збільшення шансу на виплату.
Пояснення правильне, але автор спиняється рівно там, де починається головне.
6. Що в роботі не сходиться
6.1 Бар'єр зафіксовано в пунктах, а індекс зріс у п'ять разів
Ось джерело різниці між п'ятирічками, і воно не назване в роботі жодного разу.
Ціль і стоп задані як 25 пунктів індексу. Nasdaq-100 за період зріс приблизно з 4 800 до 24 000. Отже один і той самий «незмінний» бар'єр означав:
| Момент | Рівень індексу | 25 пунктів у відсотках |
|---|---|---|
| 2016 | ≈ 4 800 | 0.52 % |
| 2026 | ≈ 24 000 | 0.10 % |
Це не одна стратегія на двох режимах ринку. Це дві різні стратегії: у 2016 році вона ризикувала половиною відсотка індексу, у 2026 однією десятою. Звідси й нуль виходів за часом у другому блоці: бар'єр у 0.1 % шестигодинна сесія зачіпає практично завжди, бар'єр у 0.52 % далеко не завжди, у 15.7 % випадків (196 із 1 246) не зачіпала.
Автор приписує різницю між періодами ринку: "showing that value fluctuates between different market regimes". Насправді коливається не ринок, а сама тестована конструкція, бо її єдиний параметр не нормований ні на ціну, ні на волатильність. Для порівняння: бар'єрна модель Villahermosa стикається з тим самим ефектом і проговорює його явно, зазначаючи, що на вікнах, де контракт торгувався значно дешевше, той самий доларовий брекет був широкий відносно діапазону сесії, частка нерозв'язаних угод зростала й перевірка переставала бути інформативною. Тобто раніша й акуратніша робота діагностує рівно той дефект, на якому тут побудовано головний висновок про «різні режими».
Практичний наслідок: твердження «відношення виплат до витрат зросло з 1.06 до 1.22» не можна читати як «продукт став цінніший». Правильне читання таке: чим вужчий бар'єр відносно денного діапазону, тим вища цінність проп-обгортки, бо угоди розв'язуються швидше й рахунок платить менше підписок на результат. Це, до речі, значно корисніший висновок, ніж той, який зроблено в роботі, і він перевірний напряму.
6.2 Сума п'ятирічок не дорівнює повній вибірці
| Величина | 2016–2021 | 2021–2026 | Сума | Повна вибірка | Розбіжність |
|---|---|---|---|---|---|
| Виплати | $4 155.81 | $5 108.40 | $9 264.21 | $9 368.50 | +$104.29 |
| Вартість рахунків | $3 902.73 | $4 194.91 | $8 097.64 | $7 878.30 | −$219.34 |
| Чисте | +$253.08 | +$913.49 | +$1 166.57 | +$1 490.19 | +$323.62 |
Повна десятирічна вибірка дає результат на $323.62 кращий, ніж сума своїх же половин. Це 21.7 % від заголовкового числа $1 490.
Строго кажучи, це не зобов'язане бути помилкою: прогін двох блоків окремо перезапускає послідовність рахунків на межі, і зайвий старт з нуля законно змінює витрати. Але наслідок змістовний і в роботі не обговорюється жодним словом. Твердження "the stronger full-sample result was driven by the second five-year period rather than by consistently strong outcomes across both subperiods" хибне в буквальному сенсі: повний результат перевищує обидві п'ятирічки разом узяті. П'ята частина заголовкової цифри створюється неперервністю прогону, тобто накопиченням кредитів скидання й перенесенням стану через межу, а не тим, що відбувалося на ринку.
6.3 Десять тисяч шляхів це одна історія ринку
Автор ставить застереження сам, а потім ним не користується. Стандартне відхилення чистого результату $3 926 за середнього $1 490 дає відношення 0.38. За десятьма тисячами шляхів стандартна похибка середнього становила б $39, тобто середнє відстоїть від нуля на 38 стандартних похибок і виглядає незламним.
Але шляхи не незалежні: усі вони лежать на тих самих 2 485 днях. Ефективний розмір вибірки за ринковим виміром дорівнює одиниці, а не десяти тисячам. Справжня невизначеність це невизначеність ринкового режиму, і її масштаб робота сама ж і показує: поділивши вибірку навпіл, вона отримує в одній половині від'ємну медіану й 46.45 % прибуткових шляхів, у другій додатну медіану й 56.05 %. Ось це і є істинний розкид, а не $39.
6.4 Розділ про п'ять рахунків не містить інформації
| Величина | Один рахунок | П'ять рахунків | Відношення |
|---|---|---|---|
| Середнє, повна вибірка | +$1 490.19 | +$7 450.95 | рівно ×5 |
| Медіана, повна вибірка | +$1 036.83 | +$5 184.15 | рівно ×5 |
| Середнє, 2016–2021 | +$253.08 | +$1 265.40 | рівно ×5 |
| Медіана, 2016–2021 | −$214.23 | −$1 071.15 | рівно ×5 |
| Середнє, 2021–2026 | +$913.49 | +$4 567.45 | рівно ×5 |
| Медіана, 2021–2026 | +$403.34 | +$2 016.70 | рівно ×5 |
Усі шість величин це множення на п'ять. Автор це визнає: "all five accounts followed the same synchronized trading path, and therefore the results multiply P&L without altering the probability of profitability", і все одно наводить числа у трьох місцях тексту. Для читача, який переглядає роботу за цифрами, створюється враження більшого масштабу, ніж є. Бар'єрна модель Villahermosa в аналогічному місці робить протилежне: моделює рахунки проти спільного пулу сесій із незалежними боками й показує, що політика розподілу між рахунками змінює результат радикально (медіана 44.7 L проти 2.82 L і ймовірність збитку 2.0 % проти 39.7 % залежно від того, чи беруть рахунки один бік, чи різні).
6.5 Масштаб результату скромніший, ніж звучить
$1 490 за десять років це $149 на рік. Відносно $7 878, що пройшли через підписки, це 18.9 % за десятиліття, близько 1.75 % річних, за п'ятого процентиля −$3 995. Заголовок "suggesting each account is \$16 cheaper than its efficient market valuation" технічно правильний і водночас описує підприємство, яке десять років щодня вимагає уваги заради півтора відсотка річних на оборотний капітал, із чотирма шансами з десяти закінчити в мінусі.
6.6 Що не перевірено в моделі правил
Консистентність на фондованій стадії (жоден день не більше 40 % прибутку за виплатний цикл) це єдине правило консистентності, яке тут справді зв'язує, і робота не показує, як його змодельовано. За фіксованих ±$400 вимога «найкращий день не більше 40 % прибутку» означає , тобто прибуток циклу щонайменше $1 000 і щонайменше три виграшні дні. Це відчутний бар'єр. Автор пише, що порушення консистентності «може призвести до закриття рахунку», але в більшості операторів порушення консистентності на фондованій стадії блокує виплату, а не вбиває рахунок. Різниця між цими двома трактуваннями велика, а з тексту неясно, яке запрограмовано. Код відкритий, тож питання розв'язне, і це варто перевірити перед тим, як спиратися на цифри.
Що в роботі зроблено добре. Код викладено публічно, фірму названо, правила виписані повністю, є програма-аудитор, яка перевіряє коректність нарахувань, відсутність дублів продовжень, збереження кредитів скидання, стелі виплат і коефіцієнти консистентності. Неоднозначні дні не вгадані, а виключені із зазначенням їхньої частки.
7. Що з цього випливає на практиці
Ширина бар'єра відносно денного діапазону це керівний параметр цінності проп-рахунку. Головне, що з роботи можна забрати, хоча сам автор цього не формулює. Чим швидше угода розв'язується, тим менше підписок оплачено на один результат. Перевіряється напряму: взяти стоп у частках ATR і побудувати залежність відношення виплат до витрат від цієї частки.
Фіксований розмір позиції обнуляє частину правил. Денний ліміт збитку й правило консистентності на стадії оцінки зв'язують тим слабше, чим жорсткіше зафіксовано розмір. Зворотний бік: така конструкція не може взяти ціль однією угодою, і захисту від повзучої підлоги в неї немає.
Усічення збитку ліворуч і є все джерело «цінності». Жодної переваги продукт не створює. Він переносить лівий хвіст на баланс оператора за фіксовану ціну. Будь-яке обговорення недооціненості це обговорення ціни опціону, і порівнювати треба з ціною того самого опціону в інших постачальників, а не з нулем.
Нормувати бар'єри на ціну або волатильність завжди. Ця робота готовий навчальний приклад того, як ненормований бар'єр за десять років перетворюється на іншу стратегію й видає себе за зміну ринкового режиму.
8. Тестовані ідеї
| № | Ідея | Тип | Де рахувати |
|---|---|---|---|
| 1 | Побудувати залежність відношення «виплати / вартість рахунків» від ширини бар'єра в частках ATR; гіпотеза в тому, що за звуження вона зростає монотонно | зміна конструкції | Python |
| 2 | Виразити всі бар'єри проп-правил у частках денного діапазону інструмента, а не в пунктах і не у валюті; перерахувати історію з плавучим бар'єром | аудит | бектестер |
| 3 | Виміряти частку угод, не розв'язаних бар'єром до закриття сесії, за роками: зростання цієї частки ознака того, що бар'єр поїхав відносно волатильності | метрика приймання | Python |
| 4 | Рахувати економічний результат проп-рахунку строго як «виплати мінус підписки», виносячи комісії в симульований баланс окремим рядком | метрика приймання | будь-яка |
| 5 | Перевіряти, що сума результатів за підперіодами сходиться з повною вибіркою: розбіжність указує на перенесення стану через межу | аудит | Python |
| 6 | Не звітувати середнім і стандартною похибкою за рандомізованими шляхами на одній історії: ефективний розмір вибірки за ринком дорівнює одиниці. Натомість ділити історію й показувати розкид між блоками | метрика приймання | Python |
| 7 | Перевірити, чим є порушення консистентності на фондованій стадії, блокуванням виплати чи смертю рахунку: ціна питання велика, код роботи відкритий | аудит | будь-яка |
| 8 | Порахувати мінімальний прибуток циклу, за якого правило «найкращий день не більше 40 % прибутку» здійсненне за фіксованого розміру: виходить ціль не менша за 2.5 денних прибутки й щонайменше три виграшні дні | діагностика | Python |
| 9 | Побудувати розподіл числа оплачених підписок на одну виплату: це і є справжня ціна, а не заявлена місячна | метрика приймання | Python |
| 10 | Не наводити багаторахункові результати множенням на число рахунків; моделювати рахунки проти спільного пулу сесій і перевіряти залежність від політики розподілу боків | аудит | Python |