diff --git a/scripts/run_paper_trading.py b/scripts/run_paper_trading.py index 6eb0d6a..a31a581 100644 --- a/scripts/run_paper_trading.py +++ b/scripts/run_paper_trading.py @@ -20,6 +20,7 @@ Esempio: from __future__ import annotations import argparse +import importlib.resources import time from dataclasses import dataclass from datetime import UTC, datetime, timedelta @@ -28,14 +29,16 @@ from pathlib import Path from multi_swarm_core.cerbero.client import CerberoClient from multi_swarm_core.config import load_settings from multi_swarm_core.data.cerbero_ohlcv import CerberoOHLCVLoader, OHLCVRequest -from multi_swarm_core.paper_trading.executor import PaperExecutor -from multi_swarm_core.paper_trading.persistence import PaperRepository -from multi_swarm_core.paper_trading.portfolio import Portfolio -from multi_swarm_core.persistence.repository import Repository +from strategy_crypto.backend import PaperExecutor, PaperRepository, Portfolio PROJECT_ROOT = Path(__file__).resolve().parent.parent +def _default_strategies_dir() -> Path: + """Cartella JSON shippata col package strategy_crypto.""" + return Path(str(importlib.resources.files("strategy_crypto") / "strategies")) + + @dataclass(frozen=True) class AssetConfig: symbol: str # es. "BTC-PERPETUAL" @@ -54,8 +57,8 @@ def parse_args() -> argparse.Namespace: p.add_argument("--lookback-bars", type=int, default=500, help="Quante bar fetchare per indicatori") p.add_argument( "--strategies-dir", - default=str(PROJECT_ROOT / "strategies"), - help="Cartella contenente btc_*.json e eth_*.json", + default=str(_default_strategies_dir()), + help="Cartella contenente btc_*.json e eth_*.json (default: package strategy_crypto/strategies)", ) return p.parse_args() @@ -77,9 +80,6 @@ def main() -> None: args = parse_args() settings = load_settings() - # Inizializza schema (idempotente). - Repository(settings.db_path).init_schema() - token = ( settings.cerbero_mainnet_token.get_secret_value() if settings.cerbero_mainnet_token @@ -105,7 +105,8 @@ def main() -> None: fees_bp=args.fees_bp, n_sleeves=len(assets), ) - repo = PaperRepository(settings.db_path) + repo = PaperRepository(settings.strategy_crypto_db_path) + repo.init_schema() config = { "assets": [ {"symbol": a.symbol, "strategy": a.strategy_file.name, "exchange": a.exchange} diff --git a/strategies/btc_fb63e851.json b/src/strategy_crypto/strategy_crypto/strategies/btc_fb63e851.json similarity index 100% rename from strategies/btc_fb63e851.json rename to src/strategy_crypto/strategy_crypto/strategies/btc_fb63e851.json diff --git a/strategies/eth_facd6af85d5d.json b/src/strategy_crypto/strategy_crypto/strategies/eth_facd6af85d5d.json similarity index 100% rename from strategies/eth_facd6af85d5d.json rename to src/strategy_crypto/strategy_crypto/strategies/eth_facd6af85d5d.json