Source code for tradeexecutor.backtest.preprocessed_backtest_exporter
"""Prebuilt backtest dataset generation entry point.
For usage see :py:mod:`preprocessed_backtest`.
"""
import datetime
import logging
import os
import sys
from pathlib import Path
from tradeexecutor.backtest.preprocessed_backtest import PREPACKAGED_SETS, prepare_dataset
from tradeexecutor.cli.log import setup_logging
from tradingstrategy.client import Client
logger = logging.getLogger(__name__)
[docs]def export_all_main():
"""Export all preprocessed backtest sets.
- Main entry point
"""
setup_logging()
client = Client.create_live_client(api_key=os.environ["TRADING_STRATEGY_API_KEY"])
output_path = Path(sys.argv[1])
if len(sys.argv) == 3:
slug = sys.argv[2]
else:
slug = None
assert output_path.exists(), f"{output_path} does not exist"
assert output_path.is_dir(), f"{output_path} is not a directory"
started = datetime.datetime.utcnow()
# Export newly added sets first
PREPACKAGED_SETS.reverse()
for ds in PREPACKAGED_SETS:
# filter by slug
if slug:
if ds.slug != slug:
continue
prepare_dataset(
client=client,
dataset=ds,
output_folder=output_path,
write_csv=False,
)
logger.info("All done in %s", datetime.datetime.utcnow() - started)
if __name__ == "__main__":
export_all_main()