From 292ecc3e33073fa6e9d4180db688417ba559edd1 Mon Sep 17 00:00:00 2001 From: 21in7 Date: Tue, 3 Mar 2026 20:09:03 +0900 Subject: [PATCH] feat: update ML threshold and configuration for improved model performance - Added ML_THRESHOLD to .env.example and updated Config class to include ml_threshold with a default value of 0.55. - Modified MLFilter initialization in bot.py to utilize the new ml_threshold configuration. - Updated Jenkinsfile to change the registry URL for Docker image management. These changes enhance the model's adaptability by allowing for a configurable machine learning threshold, improving overall performance. --- .env.example | 1 + Jenkinsfile | 4 ++-- src/bot.py | 2 +- src/config.py | 2 ++ src/ml_filter.py | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.env.example b/.env.example index aeab2ba..45bae13 100644 --- a/.env.example +++ b/.env.example @@ -4,3 +4,4 @@ SYMBOL=XRPUSDT LEVERAGE=10 RISK_PER_TRADE=0.02 DISCORD_WEBHOOK_URL= +ML_THRESHOLD=0.55 diff --git a/Jenkinsfile b/Jenkinsfile index 014706d..3487fdd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,7 +2,7 @@ pipeline { agent any environment { - REGISTRY = '10.1.10.28:3000' + REGISTRY = 'git.gihyeon.com' IMAGE_NAME = 'gihyeon/cointrader' IMAGE_TAG = "${env.BUILD_NUMBER}" FULL_IMAGE = "${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}" @@ -29,7 +29,7 @@ pipeline { steps { git branch: 'main', credentialsId: 'gitea-cred', - url: 'http://10.1.10.28:3000/gihyeon/cointrader.git' + url: 'https://git.gihyeon.com/gihyeon/cointrader.git' } } diff --git a/src/bot.py b/src/bot.py index 7e6ed28..75f0038 100644 --- a/src/bot.py +++ b/src/bot.py @@ -18,7 +18,7 @@ class TradingBot: self.exchange = BinanceFuturesClient(config) self.notifier = DiscordNotifier(config.discord_webhook_url) self.risk = RiskManager(config) - self.ml_filter = MLFilter() + self.ml_filter = MLFilter(threshold=config.ml_threshold) self.current_trade_side: str | None = None # "LONG" | "SHORT" self._entry_price: float | None = None self._entry_quantity: float | None = None diff --git a/src/config.py b/src/config.py index 7914e5e..86bee31 100644 --- a/src/config.py +++ b/src/config.py @@ -19,6 +19,7 @@ class Config: margin_max_ratio: float = 0.50 margin_min_ratio: float = 0.20 margin_decay_rate: float = 0.0006 + ml_threshold: float = 0.55 def __post_init__(self): self.api_key = os.getenv("BINANCE_API_KEY", "") @@ -29,3 +30,4 @@ class Config: self.margin_max_ratio = float(os.getenv("MARGIN_MAX_RATIO", "0.50")) self.margin_min_ratio = float(os.getenv("MARGIN_MIN_RATIO", "0.20")) self.margin_decay_rate = float(os.getenv("MARGIN_DECAY_RATE", "0.0006")) + self.ml_threshold = float(os.getenv("ML_THRESHOLD", "0.55")) diff --git a/src/ml_filter.py b/src/ml_filter.py index d33b430..0fca131 100644 --- a/src/ml_filter.py +++ b/src/ml_filter.py @@ -33,7 +33,7 @@ class MLFilter: self, onnx_path: str = str(ONNX_MODEL_PATH), lgbm_path: str = str(LGBM_MODEL_PATH), - threshold: float = 0.60, + threshold: float = 0.55, ): self._disabled = os.environ.get("NO_ML_FILTER", "").lower() in ("1", "true", "yes") self._onnx_path = Path(onnx_path)