pys.improved_pipeline package
Submodules
pys.improved_pipeline.grid_search module
- class pys.improved_pipeline.grid_search.GridSearch(data_file, output_dir, log_level=40, n_jobs=1)
Bases:
object- run_grid_search(signal_params, portfolio_params, risk_free_rates=None, periods=None, chunk_size=10)
Запускает Grid Search по заданным параметрам с поддержкой чанкинга и контрольных точек
Parameters:
- signal_paramsdict
Словарь с параметрами для SignalGenerator в формате {param_name: [values]}
- portfolio_paramsdict
Словарь с параметрами для PortfolioOptimizer в формате {param_name: [values]}
- risk_free_rateslist, optional
Список безрисковых ставок для тестирования
- periodslist, optional
Список периодов для тестирования в формате [(start_date, end_date)]
- chunk_sizeint
Размер чанка для обработки и сохранения промежуточных результатов
Returns:
DataFrame с результатами и лучшими параметрами
- pys.improved_pipeline.grid_search.run_grid_search_pipeline(data_file='/Users/aeshef/Desktop/FOR3.9TEST/kursach/data/df.csv', output_dir='/Users/aeshef/Desktop/FOR3.9TEST/kursach/data/grid_search_results', training_period=('2024-01-01', '2024-12-31'), n_jobs=4)
Запускает Grid Search для поиска оптимальных параметров пайплайна
- Parameters:
data_file (str) -- Путь к файлу с данными
output_dir (str) -- Директория для сохранения результатов
training_period (tuple) -- Период обучения в формате (start_date, end_date)
n_jobs (int) -- Количество параллельных процессов
- Return type:
(DataFrame, dict) - DataFrame с результатами и словарь с лучшими параметрами
pys.improved_pipeline.honest_backtest module
- class pys.improved_pipeline.honest_backtest.HonestBacktester(data_file='/Users/aeshef/Desktop/FOR3.9TEST/kursach/data/df.csv', best_params_file=None, train_period=('2024-01-01', '2024-12-31'), test_period=('2025-01-01', '2025-06-30'), output_dir='/Users/aeshef/Desktop/FOR3.9TEST/kursach/data/honest_backtest', risk_free_rate=0.075, use_grid_search_params=True)
Bases:
BaseLoggerКласс для проведения честного бэктеста на будущий период
- pys.improved_pipeline.honest_backtest.run_honest_backtest(data_file='/Users/aeshef/Desktop/FOR3.9TEST/kursach/data/df.csv', best_params_file=None, train_period=('2024-01-01', '2024-12-31'), test_period=('2025-01-01', '2025-06-30'), output_dir='/Users/aeshef/Desktop/FOR3.9TEST/kursach/data/honest_backtest', risk_free_rate=0.075, use_grid_search_params=True)
Запускает честный бэктест на будущий период используя класс HonestBacktester
- Parameters:
data_file (str) -- Путь к файлу с данными
best_params_file (str, optional) -- Путь к файлу с лучшими параметрами из Grid Search
train_period (tuple) -- Период обучения (начало, конец)
test_period (tuple) -- Период тестирования (начало, конец)
output_dir (str) -- Директория для сохранения результатов
risk_free_rate (float) -- Безрисковая ставка
use_grid_search_params (bool) -- Использовать ли параметры из Grid Search
- Return type:
dict с результатами бэктеста
pys.improved_pipeline.short_selling_support module
- pys.improved_pipeline.short_selling_support.apply_short_selling_support()
Применяет поддержку коротких позиций ко всем классам
- pys.improved_pipeline.short_selling_support.modify_backtester_for_shorts(backtester_class)
Модифицирует класс Backtester для поддержки коротких позиций
- pys.improved_pipeline.short_selling_support.modify_portfolio_optimizer_for_shorts(portfolio_optimizer_class)
Модифицирует класс PortfolioOptimizer для поддержки коротких позиций.
- pys.improved_pipeline.short_selling_support.modify_signal_generator_for_shorts(signal_generator_class)
Модифицирует класс SignalGenerator для поддержки коротких позиций.
- pys.improved_pipeline.short_selling_support.run_short_selling_pipeline(data_file='/Users/aeshef/Desktop/FOR3.9TEST/kursach/data/df.csv', output_dir='/Users/aeshef/Desktop/FOR3.9TEST/kursach/data/short_selling_results', risk_free_rate=0.075, period=('2024-01-01', '2025-04-15'), signal_params=None)