feat: Config 모듈 추가 (Notion 연동 포함)
Made-with: Cursor
This commit is contained in:
29
src/config.py
Normal file
29
src/config.py
Normal file
@@ -0,0 +1,29 @@
|
||||
import os
|
||||
from dataclasses import dataclass
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
|
||||
@dataclass
|
||||
class Config:
|
||||
api_key: str = ""
|
||||
api_secret: str = ""
|
||||
symbol: str = "XRPUSDT"
|
||||
leverage: int = 10
|
||||
risk_per_trade: float = 0.02
|
||||
max_positions: int = 3
|
||||
stop_loss_pct: float = 0.015 # 1.5%
|
||||
take_profit_pct: float = 0.045 # 4.5% (3:1 RR)
|
||||
trailing_stop_pct: float = 0.01 # 1%
|
||||
notion_token: str = ""
|
||||
notion_database_id: str = ""
|
||||
|
||||
def __post_init__(self):
|
||||
self.api_key = os.getenv("BINANCE_API_KEY", "")
|
||||
self.api_secret = os.getenv("BINANCE_API_SECRET", "")
|
||||
self.symbol = os.getenv("SYMBOL", "XRPUSDT")
|
||||
self.leverage = int(os.getenv("LEVERAGE", "10"))
|
||||
self.risk_per_trade = float(os.getenv("RISK_PER_TRADE", "0.02"))
|
||||
self.notion_token = os.getenv("NOTION_TOKEN", "")
|
||||
self.notion_database_id = os.getenv("NOTION_DATABASE_ID", "")
|
||||
21
tests/test_config.py
Normal file
21
tests/test_config.py
Normal file
@@ -0,0 +1,21 @@
|
||||
import os
|
||||
import pytest
|
||||
from src.config import Config
|
||||
|
||||
|
||||
def test_config_loads_symbol():
|
||||
os.environ["SYMBOL"] = "XRPUSDT"
|
||||
os.environ["LEVERAGE"] = "10"
|
||||
os.environ["RISK_PER_TRADE"] = "0.02"
|
||||
cfg = Config()
|
||||
assert cfg.symbol == "XRPUSDT"
|
||||
assert cfg.leverage == 10
|
||||
assert cfg.risk_per_trade == 0.02
|
||||
|
||||
|
||||
def test_config_notion_keys():
|
||||
os.environ["NOTION_TOKEN"] = "secret_test"
|
||||
os.environ["NOTION_DATABASE_ID"] = "db_test_id"
|
||||
cfg = Config()
|
||||
assert cfg.notion_token == "secret_test"
|
||||
assert cfg.notion_database_id == "db_test_id"
|
||||
Reference in New Issue
Block a user