quant-platform/tests/run_backtest.py

27 lines
924 B
Python

import os
import argparse
import importlib.util
import pandas as pd
def run_strategy(file_path, output_dir):
spec = importlib.util.spec_from_file_location("strategy", file_path)
strategy = importlib.util.module_from_spec(spec)
spec.loader.exec_module(strategy)
results = strategy.run()
output_file = os.path.join(output_dir, os.path.basename(file_path).replace('.py', '_results.csv'))
results.to_csv(output_file, index=False)
print(f"Backtest results saved to {output_file}")
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--strategy", required=True)
parser.add_argument("--output", required=True)
args = parser.parse_args()
os.makedirs(args.output, exist_ok=True)
for file in os.listdir(args.strategy):
if file.endswith(".py"):
run_strategy(os.path.join(args.strategy, file), args.output)
if __name__ == "__main__":
main()