40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
#!/usr/bin/env python
|
|
import asyncio
|
|
import argparse
|
|
import logging
|
|
from main import live_trading, setup_logging
|
|
|
|
# Set up logging
|
|
setup_logging()
|
|
logger = logging.getLogger(__name__)
|
|
|
|
async def main():
|
|
parser = argparse.ArgumentParser(description='Run live trading in demo mode')
|
|
parser.add_argument('--symbol', type=str, default='ETH/USDT', help='Trading pair symbol')
|
|
parser.add_argument('--timeframe', type=str, default='1m', help='Timeframe for trading')
|
|
parser.add_argument('--model_path', type=str, default='data/best_model.pth', help='Path to the trained model')
|
|
parser.add_argument('--initial_balance', type=float, default=1000, help='Initial balance')
|
|
parser.add_argument('--update_interval', type=int, default=30, help='Interval to update data in seconds')
|
|
|
|
args = parser.parse_args()
|
|
|
|
logger.info(f"Starting live trading demo with {args.symbol} on {args.timeframe} timeframe")
|
|
|
|
# Run live trading in demo mode
|
|
await live_trading(
|
|
symbol=args.symbol,
|
|
timeframe=args.timeframe,
|
|
model_path=args.model_path,
|
|
demo=True, # Always use demo mode in this script
|
|
initial_balance=args.initial_balance,
|
|
update_interval=args.update_interval,
|
|
# Using default values for other parameters
|
|
)
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
asyncio.run(main())
|
|
except KeyboardInterrupt:
|
|
logger.info("Live trading demo stopped by user")
|
|
except Exception as e:
|
|
logger.error(f"Error in live trading demo: {e}") |