-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
98 lines (86 loc) · 2.85 KB
/
.env.example
File metadata and controls
98 lines (86 loc) · 2.85 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# CTA_FORGE_ENV=development
# DATA_DIR=./data
# Service ports (defaults: 8001-8005)
# DATA_SERVICE_PORT=8001
# ALPHA_SERVICE_PORT=8002
# STRATEGY_SERVICE_PORT=8003
# EXECUTOR_PORT=8004
# REPORT_SERVICE_PORT=8005
# Service URLs (override for k8s/docker-compose networking)
# DATA_SERVICE_URL=http://data-service:8001
# ALPHA_SERVICE_URL=http://alpha-service:8002
# STRATEGY_SERVICE_URL=http://strategy-service:8003
# EXECUTOR_URL=http://executor:8004
# REPORT_SERVICE_URL=http://report-service:8005
# Binance (no key needed for public klines)
# BINANCE_API_KEY=
# BINANCE_API_SECRET=
# Hyperliquid (live trading)
# HL_PRIVATE_KEY=
# HL_ACCOUNT_ADDRESS=
# HL_NETWORK=testnet
# Telegram notifications
# TG_BOT_TOKEN=
# TG_CHAT_ID=
# Lark/Feishu notifications (webhook bot)
# LARK_WEBHOOK_URL=
# LARK_WEBHOOK_SECRET=
# Local PostgreSQL container (Docker Compose production)
# These are private deployment values on EC2, not public repo defaults.
# Keeping DATABASE_URL configured is safe while PERSISTENCE_BACKEND=file; it is
# only used by import/migration/parity tooling or future dual-write mode.
# POSTGRES_DB=cta_forge_live
# POSTGRES_USER=cta_forge_live
# POSTGRES_PASSWORD=
# DATABASE_URL=postgresql://cta_forge_live:<password>@postgres:5432/cta_forge_live
# LIVE_INSTANCE_ID=mainnet-pilot
# PERSISTENCE_BACKEND=file
# LIVE_PERSISTENCE_SHADOW_FAILURE_POLICY=warn
# Execution
# Code default is the v10g live executor profile. Production testnet may explicitly
# promote v16a in docker-compose.prod.yml; mainnet v16a remains blocked in code.
# DRY_RUN=false
# STRATEGY_PROFILE=v10g-engine-6h
# MIN_ORDER_NOTIONAL=10
# MAX_ORDER_NOTIONAL=
# MIN_EQUITY=100
# MIN_AVAILABLE_BALANCE=
# MAX_EQUITY=
# TARGET_GROSS_CAP=1
# HL_LEVERAGE=5
# LIVE_SYMBOLS=
# STATE_FILE=engine-state.json
# JOURNAL_DIR=journal
# v16a shadow observation override example (always dry-run):
# DRY_RUN=true
# STRATEGY_PROFILE=v16a-badscore-overlay
# V16A_MAX_STALENESS_HOURS=8
# V16A_CORE_PHASE_HOURS=0
# V16A_COMPARE_CORE_PHASE_HOURS=2
# PHASE_COMPARISON_JOURNAL_DIR=journal/phase-shadow
# STATE_FILE=engine-state-shadow.json
# JOURNAL_DIR=journal/shadow-v16a
# v16a testnet live enablement requires all of these explicit safeguards:
# HL_NETWORK=testnet
# DRY_RUN=false
# STRATEGY_PROFILE=v16a-badscore-overlay
# ALLOW_V16A_TESTNET_LIVE=true
# v16a mainnet pilot is a separate guarded profile. Start with DRY_RUN=true and
# run executor.run_mainnet_preflight before enabling live orders. Keep exact live
# sizing, symbol universe, paths, and caps in private deployment configuration.
# HL_NETWORK=mainnet
# DRY_RUN=true
# STRATEGY_PROFILE=v16a-mainnet-pilot
# ALLOW_MAINNET_PILOT_LIVE=false
# V16A_CORE_PHASE_HOURS=
# TARGET_SCALE=
# TARGET_GROSS_CAP=
# MIN_EQUITY=
# MIN_AVAILABLE_BALANCE=
# MAX_EQUITY=
# MAX_ORDER_NOTIONAL=
# ALLOW_MAINNET_PILOT_UNCAPPED_ORDERS=false
# HL_LEVERAGE=
# LIVE_SYMBOLS=
# STATE_FILE=
# JOURNAL_DIR=