e51f357b48
Co-authored-by: Cursor <cursoragent@cursor.com>
53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from functools import lru_cache
|
|
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
model_config = SettingsConfigDict(
|
|
env_file=(".env", "../.env"),
|
|
env_file_encoding="utf-8",
|
|
extra="ignore",
|
|
)
|
|
|
|
mode: str = "SIM"
|
|
tz: str = "Asia/Shanghai"
|
|
env_name: str = "test" # test / prod
|
|
|
|
api_host: str = "0.0.0.0"
|
|
api_port: int = 5155
|
|
|
|
# Web 登录(仅本机 .env,勿提交真密码)
|
|
auth_username: str = "admin"
|
|
auth_password: str = "admin123"
|
|
auth_secret: str = "change-me-eth-hedge-sim-secret"
|
|
auth_token_ttl_sec: int = 60 * 60 * 24 * 7
|
|
|
|
okx_api_key: str = ""
|
|
okx_api_secret: str = ""
|
|
okx_api_passphrase: str = ""
|
|
okx_rest_base: str = "https://www.okx.com"
|
|
okx_ws_public: str = "wss://ws.okx.com:8443/ws/v5/public"
|
|
okx_http_proxy: str = ""
|
|
|
|
perp_inst_id: str = "ETH-USDT-SWAP"
|
|
option_inst_family: str = "ETH-USD_UM"
|
|
index_inst_id: str = "ETH-USD"
|
|
|
|
fee_rate: float = 0.0005
|
|
initial_equity: float = 100_000.0
|
|
max_rounds: int = 3
|
|
open_hhmm: str = "16:00"
|
|
stop_open_hhmm: str = "08:00"
|
|
|
|
@property
|
|
def is_sim(self) -> bool:
|
|
return self.mode.strip().upper() != "LIVE"
|
|
|
|
|
|
@lru_cache
|
|
def get_settings() -> Settings:
|
|
return Settings()
|