66 lines
1.9 KiB
Python
66 lines
1.9 KiB
Python
|
|
import asyncio
|
|
import logging
|
|
import os
|
|
import sys
|
|
|
|
# Add src to path
|
|
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
|
|
|
|
from src.data_collector.database import DatabaseManager
|
|
from src.data_collector.custom_timeframe_generator import CustomTimeframeGenerator
|
|
|
|
# Configure logging
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
|
)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
async def main():
|
|
logger.info("Starting custom timeframe generation...")
|
|
|
|
# DB connection settings from env or defaults
|
|
db_host = os.getenv('DB_HOST', 'localhost')
|
|
db_port = int(os.getenv('DB_PORT', 5432))
|
|
db_name = os.getenv('DB_NAME', 'btc_data')
|
|
db_user = os.getenv('DB_USER', 'btc_bot')
|
|
db_password = os.getenv('DB_PASSWORD', '')
|
|
|
|
db = DatabaseManager(
|
|
host=db_host,
|
|
port=db_port,
|
|
database=db_name,
|
|
user=db_user,
|
|
password=db_password
|
|
)
|
|
|
|
await db.connect()
|
|
|
|
try:
|
|
generator = CustomTimeframeGenerator(db)
|
|
await generator.initialize()
|
|
|
|
# Generate 37m from 1m
|
|
logger.info("Generating 37m candles from 1m data...")
|
|
count_37m = await generator.generate_historical('37m')
|
|
logger.info(f"Generated {count_37m} candles for 37m")
|
|
|
|
# Generate 148m from 37m
|
|
# Note: 148m generation relies on 37m data existing
|
|
logger.info("Generating 148m candles from 37m data...")
|
|
count_148m = await generator.generate_historical('148m')
|
|
logger.info(f"Generated {count_148m} candles for 148m")
|
|
|
|
logger.info("Done!")
|
|
|
|
except Exception as e:
|
|
logger.error(f"Error generating custom timeframes: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
finally:
|
|
await db.disconnect()
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|