realtime client, timeseries storage

This commit is contained in:
Dobromir Popov
2025-03-18 22:52:24 +02:00
parent 3871afd4b8
commit c1ad6cddd6
23 changed files with 59777 additions and 206 deletions

View File

@ -1,6 +1,5 @@
#!/usr/bin/env python
import asyncio
import argparse
import logging
from main import live_trading, setup_logging
@ -9,32 +8,22 @@ 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')
"""Run a simplified demo trading session with mock data"""
logger.info("Starting simplified demo trading session")
args = parser.parse_args()
logger.info(f"Starting live trading demo with {args.symbol} on {args.timeframe} timeframe")
# Run live trading in demo mode
# Run live trading in demo mode with simplified parameters
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
symbol="ETH/USDT",
timeframe="1m",
model_path="models/trading_agent_best_pnl.pt",
demo=True,
initial_balance=1000,
update_interval=10, # Update every 10 seconds for faster feedback
max_position_size=0.1,
risk_per_trade=0.02,
stop_loss_pct=0.02,
take_profit_pct=0.04,
)
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}")
asyncio.run(main())