-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.py
More file actions
56 lines (41 loc) · 1.76 KB
/
config.py
File metadata and controls
56 lines (41 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
"""Bot orchestrator configuration."""
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
"""Bot orchestrator settings."""
# API
api_base_url: str = "http://oltinchain-api:8000"
redis_url: str = "redis://localhost:6379/0"
# Bot counts by type (total ~50)
investor_count: int = 10 # 20% - buy & hold
trader_count: int = 20 # 40% - active trading
dca_count: int = 12 # 25% - daily purchases
whale_count: int = 3 # 5% - large transactions
suspicious_count: int = 5 # 10% - trigger fraud alerts
# Timing
min_action_interval: int = 60 # seconds between actions
max_action_interval: int = 300 # seconds between actions
activity_cycle_hours: int = 24 # daily cycle
# Amounts (in UZS)
min_transaction_uzs: int = 10_000
max_transaction_uzs: int = 1_000_000
whale_min_uzs: int = 5_000_000
whale_max_uzs: int = 50_000_000
# Starting balances
bot_initial_uzs: int = 10_000_000 # 10M UZS
whale_initial_uzs: int = 100_000_000 # 100M UZS
# ========================================
# STRATEGY SETTINGS (NEW)
# ========================================
# Strategy selection: "random" or "replay"
strategy: str = "price_flow"
# Market Replay settings (only used when strategy = "replay")
replay_data_file: str = "data/xau_usd.json"
replay_speed: float = 1.0 # 1.0 = real time, 2.0 = 2x speed
# Supply constraints
max_supply_grams: float = 0.0 # 0 = no limit # Maximum OLTIN supply
supply_warning_threshold: float = 0.7 # 70% - start reducing buys
supply_critical_threshold: float = 0.9 # 90% - almost stop buying
class Config:
env_file = ".env"
env_prefix = "BOT_"
settings = Settings()