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