Files
zhutoutoutousan 98a87a69ca Update
2026-02-13 08:03:25 +01:00

59 lines
1.7 KiB
Python

#!/usr/bin/env python3
"""
Command-line interface for running Polymarket backtests
"""
import argparse
from datetime import datetime
from strategies.examples import SimpleProbabilityStrategy
from backtesting.engine import BacktestEngine
def parse_args():
"""Parse command line arguments"""
parser = argparse.ArgumentParser(description='Run Polymarket strategy backtest')
parser.add_argument('--strategy', type=str, default='SimpleProbability',
help='Strategy name')
parser.add_argument('--start', type=str, required=True,
help='Start date (YYYY-MM-DD)')
parser.add_argument('--end', type=str, required=True,
help='End date (YYYY-MM-DD)')
parser.add_argument('--balance', type=float, default=1000.0,
help='Initial balance in USDC')
parser.add_argument('--threshold', type=float, default=0.15,
help='Probability deviation threshold')
return parser.parse_args()
def main():
"""Main entry point"""
args = parse_args()
# Parse dates
start_date = datetime.strptime(args.start, '%Y-%m-%d')
end_date = datetime.strptime(args.end, '%Y-%m-%d')
# Create strategy
if args.strategy == 'SimpleProbability':
strategy = SimpleProbabilityStrategy(
initial_balance=args.balance,
threshold=args.threshold
)
else:
raise ValueError(f"Unknown strategy: {args.strategy}")
# Create and run backtest
engine = BacktestEngine(strategy, start_date, end_date, args.balance)
results = engine.run()
# Generate report
engine.generate_report()
return results
if __name__ == '__main__':
main()