Обеспечить детерминизм бэктеста #6
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
project:backtest
project:futures
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
trading/tradebot-ng#6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Описание
Сейчас два прогона
backtest.Runс одинаковыми параметрами могут дать слегка разный результат из-за:Для оптимизатора это шум: генетический алгоритм не может отличить улучшение от артефакта недетерминизма. Особенно критично при сравнении геномов с близким фитнесом.
Предлагаемое решение
Добавить
pkg/backtest.Options.RNGSeed *int64:Конкретные источники недетерминизма:
internal/environment/simulated_stops.go— random для slippagecore/application/ensemble/— map iteration (можно заменить на ordered map или сортировку ключей)core/application/regime/— те же проблемы с mapЗатрагиваемые файлы
pkg/backtest/run.go— передача seedcore/application/ensemble/— ordered iterationcore/application/regime/— ordered iterationinternal/environment/simulated_stops.go— seeded randomСвязи
strategy-optimizerсможет передавать seed для воспроизводимости