Earnings Quality Factor (C#)
Earnings Quality Factor Правила торговли Качество прибыли определено как (OperatingCashFlow − NetIncome) / TotalAssets. На первой подходящей синхронной свече месяца RebalanceMonth выбрать новейший фин...
Earnings Quality Factor
Правила торговли
Качество прибыли определено как (OperatingCashFlow − NetIncome) / TotalAssets. На первой подходящей синхронной свече месяца RebalanceMonth выбрать новейший финансовый период и последнюю редакцию, опубликованную к закрытию сигнальной свечи. Купить верхний и продать нижний Deciles-бакет: floor(число подходящих бумаг / Deciles) инструментов на сторону. Перебалансировка проводится раз в год; позиции сохраняются до следующего пересмотра. Возраст отчёта от PeriodEnd ограничен MaxReportAgeDays.
Ребалансировка выполняется один раз в год, в RebalanceMonth, на первой подходящей общей завершённой свече. Поздние публикации не влияют на прошлые решения. MaxReportAgeDays отсчитывается от PeriodEnd.
Все наблюдения должны быть опубликованы к закрытию сигнальной свечи. При внутридневном исполнении дневные цены берутся строго до текущей UTC-даты; завершённая дневная свеча учитывает собственную завершённую дату. Будущие CSV-даты не прогревают решение.
Граница доступности публикаций — последний фактический CloseTime среди синхронизированных завершённых свечей. Торговая сессия может закончиться раньше полного заданного интервала свечи.
Входные данные
FundamentalsFile — обязательный CSV: SecurityId,PeriodEnd,PublishedAt,TotalAssets,NetIncome,OperatingCashFlow,BookEquity,SharesOutstanding. PeriodEnd: yyyy-MM-dd; PublishedAt: yyyy-MM-ddTHH:mm:ssZ (UTC). Активы и число акций положительны. Выбирается последний отчётный период и последняя его редакция, опубликованная к моменту сигнала. Повторы редакций и публикации до окончания периода запрещены. Отчётность не вычисляется из свечей.
Параметры
| Параметр | По умолчанию |
|---|---|
Universe |
обязательный |
Capital |
100000 |
Leverage |
1 |
MinTradeUsd |
100 |
CandleType |
TimeSpan.FromMinutes(5).TimeFrame() |
Deciles |
10 |
RebalanceMonth |
7 |
MaxReportAgeDays |
550 |
FundamentalsFile |
обязательный |
Исполнение
Universe задаётся явно. Цены и Capital выражены в USD: одна единица цены соответствует одной торгуемой единице. Capital — фиксированный бюджет; Leverage задаёт валовую экспозицию. Стоп-лосс и тейк-профит не добавляются.
На длинную и короткую корзины выделяется по половине Capital × Leverage. Внутри стороны капитал делится поровну, переводится в количество по цене закрытия сигнальной свечи и округляется к нулю по VolumeStep. Корректировка опирается на исполненные позиции, ждёт активные заявки, учитывает MinVolume/MaxVolume и разбивает крупные объёмы на последующие свечи. MinTradeUsd отсекает малые корректировки; полное закрытие проходит без этого фильтра.
Проверка
Оба языка проверяются на исполнениях из имеющегося BTC/TON-архива с явными фикстурами ставок, финансовых отчётов, оценок, текстов и прогрева. Календарные фикстуры переносят даты архивных OHLC/объёмов и задают котировки исполнения; это не многолетняя рыночная история. Проверяются независимые формулы, направление/объём заявок, фактические сделки, остатки позиций и запрещённые даты решений. Два бакета, K=1 и AssetDecile=1 — явные профили механики, а не доказательство работы полного торгового универсума. Доходность не заявляется.
Отвечаю по тому, что написано на этой странице. Про остальное подскажу, где смотреть в документации.