Стратегії
ETH Deribit Weekly Put-Credit-Spread — збирання премії за ризик волатильності + асиметрію з боку зниження (опціони з визначеним ризиком, вхід за сигналом асиметрії, 3-параметрична)
Результат: Відхилено
EthDeribitWeeklyPutCreditSpreadSkewVrp
ETH Deribit Weekly Put-Credit-Spread — збирання премії за ризик волатильності + асиметрію з боку зниження (опціони з визначеним ризиком, вхід за сигналом асиметрії, 3-параметрична)
Гіпотеза
DEFINED-RISK, одновеню опціонна стратегія на тижневих експіраціях DERIBIT ETH, що продає стійко переоцінений даунсайд крипто-волатильної поверхні. Раз на тижневий цикл (фронтальна експірація ~5-7 DTE), і ONLY, коли даунсайд-страхування доказово дороге (25-дельта пут IV багатший, ніж ATM IV, на ск'ю-маржу AND ATM IV вище трейлінг реалізованої волатильності), вона відкриває PUT CREDIT SPREAD: SELL один ~25-дельта пут і BUY один ~10-дельта пут того самого експіра. Макс. збиток обмежено на (ширина страйків − чистий……Показати більшеПоказати менше
DEFINED-RISK, одновеню опціонна стратегія на тижневих експіраціях DERIBIT ETH, що продає стійко переоцінений даунсайд крипто-волатильної поверхні. Раз на тижневий цикл (фронтальна експірація ~5-7 DTE), і ONLY, коли даунсайд-страхування доказово дороге (25-дельта пут IV багатший, ніж ATM IV, на ск'ю-маржу AND ATM IV вище трейлінг реалізованої волатильності), вона відкриває PUT CREDIT SPREAD: SELL один ~25-дельта пут і BUY один ~10-дельта пут того самого експіра. Макс. збиток обмежено на (ширина страйків − чистий кредит), тому рахунок не може бути ліквідований хвостовим рухом — це прямо закриває найбільше занепокоєння ризик-рев'ю щодо шорт-вол стратегій. Це свідомо закриває єдиний найбільший портфельний геп фабрики: опціони становлять 4.7% книги проти квоти ≥15%, з практично нульовим попереднім покриттям. Вона навмисно відмінна від простого шорт-стренглу — інший базовий актив (ETH), інша структура (вертикаль з визначеним ризиком, а не непокрита двостороння), і інший сигнал (багатство пут-SKEW + VRP, а не сирий IV/RV). Лише 3 регульованих параметрів, щоб протистояти оверфітингу, який убив 259 попередніх гіпотез. NOT фандинг-кері (L33), NOT портфель імпульс/тренд-конфлюенс (вичерпаний), NOT розворот/фейд ціни — джерело P&L — це структурна страхова премія плюс крипто пут-ск'ю премія, а не направлений ціновий прогноз.
Шар-3 «No trades produced / 0 evaluated bars» мав дві конкретні причини, і жодною з них не був поріг входу (у зворотному зв'язку правильно зазначено не послаблювати пороги). По-перше, рядок «0 evaluated bars» є хибним слідом для цього сімейства: RollingOptionsStrategy.on_bar повністю перевизначає FactoryStrategy.on_bar і ніколи не досягає _process_primary, тому bars_seen дорівнює 0 для кожної rolling-options стратегії, включно з тими, що торгують нормально, — я підтвердив це, прочитавши……Показати більшеПоказати менше
Шар-3 «No trades produced / 0 evaluated bars» мав дві конкретні причини, і жодною з них не був поріг входу (у зворотному зв'язку правильно зазначено не послаблювати пороги). По-перше, рядок «0 evaluated bars» є хибним слідом для цього сімейства: RollingOptionsStrategy.on_bar повністю перевизначає FactoryStrategy.on_bar і ніколи не досягає _process_primary, тому bars_seen дорівнює 0 для кожної rolling-options стратегії, включно з тими, що торгують нормально, — я підтвердив це, прочитавши rolling_options_template.py та base_template.py, а не додаючи виклик super().on_bar(), який спрямував би первинні бари у базовий бар'єр вирівнювання між ногами, де переривчасті опціонні ноги (той самий таймфрейм 1-DAY, що й у первинного) блокували б обробку назавжди. По-друге, фактичні блокери: (a) ANNUALIZATION MISMATCH — успадковані налаштування реалізованої волатильності були годинними (rv_window=168, bars_per_year=8760), тоді як прогін виконується на барах 1-DAY, тому денні логарифмічні дохідності аннуалізувалися з sqrt(8760) замість sqrt(365), завищуючи RV у 4.90x рази (нормальна стрічка 3%/день ETH читається як 281% замість 57%); фільтр VRP iv >= rv*(1+margin) потім порівнював ~60% IV проти ~281% RV і був False на кожному циклі. Виправлено шляхом виведення bars_per_year з налаштованого типу барів і вираження вікна RV у календарних днях, щоб дрейф не міг повторитися на жодному інтервалі (перевірено: 1-DAY -> 365, 1-HOUR -> 8760, 4-HOUR -> 2190, і фільтр тепер проходить на нормальній стрічці). (b) ROLE MAPPING — успадкований каркас ключував ноги за видом опціону і вимагав один кол плюс один пут (стренгл), тому дві P-ноги пут-спреду зіштовхувалися на одному ключі, друга відхилялася як дублікат, перевірка готовності вимагала неіснуючу кол-ногу, і кожна нога подавалася SELL (два непокриті короткі пути, а не вертикаль з визначеним ризиком). Ноги тепер відображаються за страйком на шорт/лонг, шорт продається, а лонг купується за тією самою кешованою кількістю контрактів, атомарно. Я також видалив успадкований стоп за кратним премії: довге крило вже обмежує збиток, тому стоп на кепованій структурі лише реалізує обмежений збиток дочасно і додає комісії. Арифметика сайзингу перевірена наскрізно (спред шириною 150, кредит $22, макс. збиток $128 -> 15 контрактів = 1.9% ризику капіталу). Я залишив без змін усе, що пройшло Шари 1-2: чисті імпорти, вільну функцію _bar_ts на рівні модуля, що виправляє TypeError переприв'язування staticmethod Шару-2, парсер DVOL, інверсію IV за Блеком-Шоулзом і безперервний calculate_signal. lookback_days дорівнює 49 (7 циклів, 14 опціонних ніг), оскільки завантажувач каталогу за типом барів коштує ~10 с на ногу, а більший ланцюг ризикує вичерпати стінний годинник Шару-3; це обмежує початкову вибірку і є властивістю завантажувача, а не властивістю гіпотези.
verification_loop: Верифікацію не пройдено (Шар 4 — перевірка QA) [class=code_defect]: - [edge_concern] Пісочниця avg_trade_return_pct становить -45.45% на 2 угодах з metrics_reliable=false та data_days=1 — це не вердикт про ефективність (дохідність на нотіонал не є значущою для опціонних ніг, де преміальний нотіонал << нотіоналу крила, а пісочниця є 1-денним смоук-тестом). Це переноситься лише як контекст: якщо наведену нижче проблему завантажувача/лукбеку буде вирішено і накопичиться реальна вибірка тижневих……Показати більшеПоказати менше
verification_loop: Верифікацію не пройдено (Шар 4 — перевірка QA) [class=code_defect]: - [edge_concern] Пісочниця avg_trade_return_pct становить -45.45% на 2 угодах з metrics_reliable=false та data_days=1 — це не вердикт про ефективність (дохідність на нотіонал не є значущою для опціонних ніг, де преміальний нотіонал << нотіоналу крила, а пісочниця є 1-денним смоук-тестом). Це переноситься лише як контекст: якщо наведену нижче проблему завантажувача/лукбеку буде вирішено і накопичиться реальна вибірка тижневих опціонів, аналітик має перепроверити, чи чистий зібраний кредит перекриває раунд-тріп Deribit 0.03%/сторона по 4 ногах (open+close x short+long) плюс будь-яке прослизання при асайнменті, оскільки перевага пут-кредит-спреду в перерахунку на нотіонал структурно тонка. - [critical] rolling_options.lookback_days=49 обмежує ENTIRE розв'язуваний ланцюг опціонів бектесту ANY приблизно 49 днями до 'now' = ~7 тижневих циклів / ~14 опціонних ніг, незалежно від 6.5-річної історії опціонів ETH Deribit. Стратегія стоїть без позицій решту вікна і торгує лише в хвості. Пісочниця підтверджує це емпірично: bars_processed=2400 (~6.5 років), але data_days=1 і total_trades=2 (trades_count=4). Перевагу премії за ризик дисперсії + ск'ю не можна відрізнити від шуму на ~7 циклах / ~14 ногах — значно нижче ~30-100 угод, потрібних для вимірної опціонної вибірки. Це саме та пастка співвідношення вартості завантаження та розміру вибірки-22, через яку майже ідентичний BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (той самий майданчик, той самий lookback_days=49) було покинуто на Шарі 4 кілька днів тому. Власне обґрунтування розробника визнає обмеження ('lookback_days становить 49 (7 циклів, 14 опціонних ніг), оскільки завантажувач каталогу за типом барів коштує ~10 с на ногу, а більший ланцюг ризикує вичерпати стінний годинник Шару-3'). У такій конфігурації стратегія ніколи не може дати вимірний повний бектест. — виправлення: Не пропускати на ~7 циклах. Вирішіть пастку співвідношення вартості завантаження та розміру вибірки-22 перед повторним поданням: батчуйте/паралелізуйте або кешуйте завантаження catalog.bars() для кожної ноги між барами, щоб lookback_days міг охопити багато років тижневих циклів (~200-300 циклів) без порушення стінного годинника пісочниці, потім встановіть lookback_days так, щоб покрити повне тестове вікно. Якщо завантажувач справді не може розв'язати вимірну історію тижневих опціонів у межах бюджету часу, це сімейство не є тестованим у поточному харнесі на тижневій каденції і має бути перепроєктоване (напр., менше, довших місячних циклів на весь діапазон), радше
Реалізація
Пут-кредит-спред з визначеним ризиком на тижневих опціонах Deribit ETH. Кожного тижневого циклу експірації (~7 DTE) rolling-options фреймворк розв'язує дві пут-ноги (~5% і ~10% OTM); стратегія відображає їх за страйком на шорт (вищий страйк, ~25-дельта) і лонг (нижчий страйк, ~10-дельта) ноги, SELLS шорт і BUYS лонг за ідентичною кількістю контрактів 1:1, і тримає до рол-буфера перед європейським грошовим розрахунком. Вхід відфільтровано двома тестами багатства, виміряними у вхідному вікні циклу: нижній ск'ю……Показати більшеПоказати менше
Пут-кредит-спред з визначеним ризиком на тижневих опціонах Deribit ETH. Кожного тижневого циклу експірації (~7 DTE) rolling-options фреймворк розв'язує дві пут-ноги (~5% і ~10% OTM); стратегія відображає їх за страйком на шорт (вищий страйк, ~25-дельта) і лонг (нижчий страйк, ~10-дельта) ноги, SELLS шорт і BUYS лонг за ідентичною кількістю контрактів 1:1, і тримає до рол-буфера перед європейським грошовим розрахунком. Вхід відфільтровано двома тестами багатства, виміряними у вхідному вікні циклу: нижній ск'ю (шорт-пут IV >= Deribit DVOL ATM IV x (1 + skew_margin)) і премія за ризик дисперсії (ATM IV >= трейлінг 14-денна реалізована волатильність x (1 + vrp_margin)). IV ніг інвертуються з власного USD-преміального бару кожної ноги за Блеком-Шоулзом. Макс. збиток на спред становить (ширина страйків − чистий кредит), зафіксований на вході, а сайзинг ризикує саме цим: контракти = floor(еквіті x risk_frac / max_loss), обмежено так, щоб валова ширина спреду залишалася в межах 50% еквіті, і з нижньою межею на мінімумі Deribit 1-контрактного ETH. 3 регульованих параметрів (skew_margin, vrp_margin, risk_frac); леверидж 1.0; немає шляху торгівлі perp/базовим активом.
Результати перевірки
Перевірку не пройдено (Рівень 4 — огляд QA) [class=code_defect]: - [edge_concern] Пісочниця avg_trade_return_pct є -45.45% на 2 угодах з metrics_reliable=false та data_days=1 — це не вердикт щодо результативності (дохідність на нотіонал не є значущою для опціонних ніг, де преміальний нотіонал << нотіоналу крил, а пісочниця є 1-денним смоук-тестом). Вона переноситься далі лише як контекст: якщо наведену нижче проблему завантажувача/ретроспективи вирішено і накопичиться реальна вибірка тижневих опціонів, аналітик……Показати більшеПоказати менше
Перевірку не пройдено (Рівень 4 — огляд QA) [class=code_defect]: - [edge_concern] Пісочниця avg_trade_return_pct є -45.45% на 2 угодах з metrics_reliable=false та data_days=1 — це не вердикт щодо результативності (дохідність на нотіонал не є значущою для опціонних ніг, де преміальний нотіонал << нотіоналу крил, а пісочниця є 1-денним смоук-тестом). Вона переноситься далі лише як контекст: якщо наведену нижче проблему завантажувача/ретроспективи вирішено і накопичиться реальна вибірка тижневих опціонів, аналітик має повторно перевірити, чи зібраний чистий кредит покриває раунд-тріп 0.03%/side на Deribit для 4 ніг (open+close x short+long) плюс будь-яке прослизання при виконанні, оскільки перевага пут-кредит-спреду на нотіонал є структурно тонкою. - [критично] rolling_options.lookback_days=49 обмежує ENTIRE доступний ланцюжок опціонів бектесту ANY приблизно 49 днями до 'now' = ~7 тижневих циклів / ~14 опціонних ніг, незалежно від 6.5-річної історії опціонів ETH на Deribit. Стратегія залишається у флеті решту вікна і торгує лише в хвості. Пісочниця підтверджує це емпірично: bars_processed=2400 (~6.5 років), але data_days=1 і total_trades=2 (trades_count=4). Перевагу variance-risk-premium + skew неможливо відрізнити від шуму на ~7 циклах / ~14 ногах — значно нижче ~30-100 угод, необхідних для вимірюваної опціонної вибірки. Це саме та пастка вартості завантажувача проти розміру вибірки loader-cost-vs-sample-size catch-22, через яку майже ідентичну BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (той самий майданчик, той самий lookback_days=49) було відхилено на Рівні 4 кілька днів тому. Власне обґрунтування розробника визнає обмеження ('lookback_days становить 49 (7 циклів, 14 опціонних ніг), оскільки завантажувач каталогу per-bar-type коштує ~10s на ногу, а більший ланцюжок ризикує перевищити wall clock Рівня-3'). У такій конфігурації стратегія ніколи не може дати вимірюваний повний бектест. — виправлення: Не пропускайте з ~7 циклами. Вирішіть проблему loader-cost vs sample-size catch-22 перед повторним поданням: пакетуйте/паралелізуйте або кешуйте завантаження per-leg catalog.bars() між барами, щоб lookback_days міг охопити багато років тижневих циклів (~200-300 циклів) без порушення wall-clock пісочниці, потім встановіть lookback_days для покриття повного тестового вікна. Якщо завантажувач справді не може обробити вимірювану історію тижневих опціонів у межах бюджету часу, це сімейство не підлягає тестуванню в поточному харнесі на тижневій частоті і має бути перепроєктоване (наприклад, менше, довших місячних циклів на весь період), а не
Історія ітерацій
Перевірку не пройдено (Рівень 2 — синтетичні сценарії): Використані параметри: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'atm_offset', 'skew_margin', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'long_put_offset', 'rolling_options', 'short_put_offset', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Перевірте, що __init__ встановлює всі атрибути з self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts()……Показати більшеПоказати менше
Перевірку не пройдено (Рівень 2 — синтетичні сценарії): Використані параметри: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'atm_offset', 'skew_margin', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'long_put_offset', 'rolling_options', 'short_put_offset', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Перевірте, що __init__ встановлює всі атрибути з self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000) - zero_volume: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000) - price_gap: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000)
Перевірку не пройдено (Рівень 2 — синтетичні сценарії): Використані параметри: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'stop_mult', 'put_offset', 'call_offset', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'max_delta_ratio', 'rolling_options', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Перевірте, що __init__ встановлює всі атрибути з self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() приймає……Показати більшеПоказати менше
Перевірку не пройдено (Рівень 2 — синтетичні сценарії): Використані параметри: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'stop_mult', 'put_offset', 'call_offset', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'max_delta_ratio', 'rolling_options', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Перевірте, що __init__ встановлює всі атрибути з self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000) - zero_volume: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000) - price_gap: TypeError: FactoryStrategy._bar_ts() приймає 1 позиційний аргумент, але надано 2 (мітка часу бару: 1735691040000)
Перевірку не пройдено (Рівень 3 — пісочний бектест): Угод не створено Тип барів: ETH-PERPETUAL.DERIBIT-1-DAY-LAST-EXTERNAL, Оброблено барів: 2400 Діагностика: calculate_signal() жодного разу не обчислювався (0 обчислених барів) -> жоден первинний бар не досяг сигнального шляху базового шаблону -> якщо ви перевизначаєте on_bar(), викличте super().on_bar(bar); перевірте, чи bar_type відповідає даним інструмента. NOT послаблюйте пороги входу — логіка входу жодного разу не запускалась. Переконайтеся, що ваша стратегія створює угоди з наданими даними та параметрами.
Верифікацію не пройдено (Шар 4 — перевірка QA) [class=hypothesis_mismatch]: - [edge_concern] Не є підставою для вердикту — блокером є фіделіті, а не ефективність. (Для протоколу пісочниця також негативна: -2.9%, PF 0.13, вінрейт 0.125, хвіст -$2,149 на нібито зупиненій книзі — але це результат не тієї стратегії.) - WHOLE-STRATEGY SWAP / MISLINK. Гіпотеза — це ETH тижневий PUT CREDIT SPREAD Deribit (продати пут ~25d, BUY пут ~10d — вертикаль з визначеним ризиком). Код — це BTC тижневий дельта-нейтральний SHORT……Показати більшеПоказати менше
Верифікацію не пройдено (Шар 4 — перевірка QA) [class=hypothesis_mismatch]: - [edge_concern] Не є підставою для вердикту — блокером є фіделіті, а не ефективність. (Для протоколу пісочниця також негативна: -2.9%, PF 0.13, вінрейт 0.125, хвіст -$2,149 на нібито зупиненій книзі — але це результат не тієї стратегії.) - WHOLE-STRATEGY SWAP / MISLINK. Гіпотеза — це ETH тижневий PUT CREDIT SPREAD Deribit (продати пут ~25d, BUY пут ~10d — вертикаль з визначеним ризиком). Код — це BTC тижневий дельта-нейтральний SHORT STRANGLE Deribit (назва класу, докстрінг, обґрунтування iter-3 і кожен механізм — це стренгл). Інструмент AND і механізм обидва відрізняються → неправильно згенерований/прив'язаний артефакт, а не ця гіпотеза. Перегенеруйте/переприв'яжіть правильний пут-кредит-спред ETH. - Неправильний інструмент: гіпотеза — ETH, але instrument_id і bar_type — це BTC-PERPETUAL.DERIBIT і rolling_options.underlying — це 'BTC'. Ніде немає ETH. - Неправильна структура / не визначений ризик: гіпотеза обмежує макс. збиток крилом PURCHASED ~10d пут. Код подає TWO SELL ноги без купленого крила NO; хвіст обмежений лише м'яким стопом за премією наступного бару (пісочниця largest_loss -$2,149 проти avg_win ~$214 показує, що він не обмежує хвіст) — саме той непокритий профіль, якого гіпотеза уникає. - Відсутнє ядро переваги: сигнал гіпотези — багатство нижнього SKEW (25d-пут IV проти ATM IV) плюс IV>RV. Код не обчислює ск'ю — лише середній IV/RV стренглу VRP. Пут-ск'ю врожай, що відрізняє цю гіпотезу, не реалізовано.
Причина відмови
verification_loop: Верифікацію не пройдено (Шар 4 — перевірка QA) [class=code_defect]: - [edge_concern] Пісочниця avg_trade_return_pct становить -45.45% на 2 угодах з metrics_reliable=false та data_days=1 — це не вердикт про ефективність (дохідність на нотіонал не є значущою для опціонних ніг, де преміальний нотіонал << нотіоналу крила, а пісочниця є 1-денним смоук-тестом). Це переноситься лише як контекст: якщо наведену нижче проблему завантажувача/лукбеку буде вирішено і накопичиться реальна вибірка тижневих……Показати більшеПоказати менше
verification_loop: Верифікацію не пройдено (Шар 4 — перевірка QA) [class=code_defect]: - [edge_concern] Пісочниця avg_trade_return_pct становить -45.45% на 2 угодах з metrics_reliable=false та data_days=1 — це не вердикт про ефективність (дохідність на нотіонал не є значущою для опціонних ніг, де преміальний нотіонал << нотіоналу крила, а пісочниця є 1-денним смоук-тестом). Це переноситься лише як контекст: якщо наведену нижче проблему завантажувача/лукбеку буде вирішено і накопичиться реальна вибірка тижневих опціонів, аналітик має перепроверити, чи чистий зібраний кредит перекриває раунд-тріп Deribit 0.03%/сторона по 4 ногах (open+close x short+long) плюс будь-яке прослизання при асайнменті, оскільки перевага пут-кредит-спреду в перерахунку на нотіонал структурно тонка. - [critical] rolling_options.lookback_days=49 обмежує ENTIRE розв'язуваний ланцюг опціонів бектесту ANY приблизно 49 днями до 'now' = ~7 тижневих циклів / ~14 опціонних ніг, незалежно від 6.5-річної історії опціонів ETH Deribit. Стратегія стоїть без позицій решту вікна і торгує лише в хвості. Пісочниця підтверджує це емпірично: bars_processed=2400 (~6.5 років), але data_days=1 і total_trades=2 (trades_count=4). Перевагу премії за ризик дисперсії + ск'ю не можна відрізнити від шуму на ~7 циклах / ~14 ногах — значно нижче ~30-100 угод, потрібних для вимірної опціонної вибірки. Це саме та пастка співвідношення вартості завантаження та розміру вибірки-22, через яку майже ідентичний BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (той самий майданчик, той самий lookback_days=49) було покинуто на Шарі 4 кілька днів тому. Власне обґрунтування розробника визнає обмеження ('lookback_days становить 49 (7 циклів, 14 опціонних ніг), оскільки завантажувач каталогу за типом барів коштує ~10 с на ногу, а більший ланцюг ризикує вичерпати стінний годинник Шару-3'). У такій конфігурації стратегія ніколи не може дати вимірний повний бектест. — виправлення: Не пропускати на ~7 циклах. Вирішіть пастку співвідношення вартості завантаження та розміру вибірки-22 перед повторним поданням: батчуйте/паралелізуйте або кешуйте завантаження catalog.bars() для кожної ноги між барами, щоб lookback_days міг охопити багато років тижневих циклів (~200-300 циклів) без порушення стінного годинника пісочниці, потім встановіть lookback_days так, щоб покрити повне тестове вікно. Якщо завантажувач справді не може розв'язати вимірну історію тижневих опціонів у межах бюджету часу, це сімейство не є тестованим у поточному харнесі на тижневій каденції і має бути перепроєктоване (напр., менше, довших місячних циклів на весь діапазон), радше
Stratmill — це інструмент для дослідження та паперової торгівлі, а не фінансова консультація чи брокер. Результати бектестів і паперової торгівлі є гіпотетичними. Торгівля пов'язана з ризиком втрати коштів.