27 lines
924 B
Python
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() |