linux fixes

This commit is contained in:
Dobromir Popov
2025-08-29 18:26:35 +03:00
parent 64371678ca
commit 20112ed693
9 changed files with 124 additions and 67 deletions

View File

@@ -3,8 +3,9 @@
# To use the custom OpenAI-compatible endpoint from hyperbolic.xyz # To use the custom OpenAI-compatible endpoint from hyperbolic.xyz
# Set the model and the API base URL. # Set the model and the API base URL.
model: Qwen/Qwen3-Coder-480B-A35B-Instruct # model: Qwen/Qwen3-Coder-480B-A35B-Instruct
openai-api-base: https://api.hyperbolic.xyz/v1 model: lm_studio/gpt-oss-120b
openai-api-base: http://127.0.0.1:1234/v1
openai-api-key: "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" openai-api-key: "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"
model-metadata-file: .aider.model.metadata.json model-metadata-file: .aider.model.metadata.json

View File

@@ -3,5 +3,10 @@
"context_window": 262144, "context_window": 262144,
"input_cost_per_token": 0.000002, "input_cost_per_token": 0.000002,
"output_cost_per_token": 0.000002 "output_cost_per_token": 0.000002
},
"lm_studio/gpt-oss-120b":{
"context_window": 106858,
"input_cost_per_token": 0.00000015,
"output_cost_per_token": 0.00000075
} }
} }

4
.env
View File

@@ -1,4 +1,6 @@
# MEXC API Configuration (Spot Trading) # export LM_STUDIO_API_KEY=dummy-api-key # Mac/Linux
# export LM_STUDIO_API_BASE=http://localhost:1234/v1 # Mac/Linux
# MEXC API Configuration (Spot Trading)
MEXC_API_KEY=mx0vglhVPZeIJ32Qw1 MEXC_API_KEY=mx0vglhVPZeIJ32Qw1
MEXC_SECRET_KEY=3bfe4bd99d5541e4a1bca87ab257cc7e MEXC_SECRET_KEY=3bfe4bd99d5541e4a1bca87ab257cc7e
#3bfe4bd99d5541e4a1bca87ab257cc7e 45d0b3c26f2644f19bfb98b07741b2f5 #3bfe4bd99d5541e4a1bca87ab257cc7e 45d0b3c26f2644f19bfb98b07741b2f5

7
.gitignore vendored
View File

@@ -22,7 +22,6 @@ cache/
realtime_chart.log realtime_chart.log
training_results.png training_results.png
training_stats.csv training_stats.csv
__pycache__/realtime.cpython-312.pyc
cache/BTC_USDT_1d_candles.csv cache/BTC_USDT_1d_candles.csv
cache/BTC_USDT_1h_candles.csv cache/BTC_USDT_1h_candles.csv
cache/BTC_USDT_1m_candles.csv cache/BTC_USDT_1m_candles.csv
@@ -47,3 +46,9 @@ chrome_user_data/*
!.aider.model.metadata.json !.aider.model.metadata.json
.env .env
venv/*
wandb/
*.wandb
*__pycache__/*
NN/__pycache__/__init__.cpython-312.pyc

View File

@@ -20,7 +20,7 @@ import logging
from typing import Dict, List, Optional, Tuple, Any from typing import Dict, List, Optional, Tuple, Any
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from models import ModelInterface from .model_interfaces import ModelInterface
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

67
TODO.md
View File

@@ -1,60 +1,7 @@
# 🚀 GOGO2 Enhanced Trading System - TODO - [ ] Load MCP documentation
- [ ] Read existing cline_mcp_settings.json
## 📈 **PRIORITY TASKS** (Real Market Data Only) - [ ] Create directory for new MCP server (e.g., .clie_mcp_servers/filesystem)
- [ ] Add server config to cline_mcp_settings.json with name "github.com/modelcontextprotocol/servers/tree/main/src/filesystem"
### **1. Real Market Data Enhancement** - [x] Install the server (use npx or docker, choose appropriate method for Linux)
- [ ] Optimize live data refresh rates for 1s timeframes - [x] Verify server is running
- [ ] Implement data quality validation checks - [x] Demonstrate server capability using one tool (e.g., list_allowed_directories)
- [ ] Add redundant data sources for reliability
- [ ] Enhance WebSocket connection stability
### **2. Model Architecture Improvements**
- [ ] Optimize 504M parameter model for faster inference
- [ ] Implement dynamic model scaling based on market volatility
- [ ] Add attention mechanisms for price prediction
- [ ] Enhance multi-timeframe fusion architecture
### **3. Training Pipeline Optimization**
- [ ] Implement progressive training on expanding real datasets
- [ ] Add real-time model validation against live market data
- [ ] Optimize GPU memory usage for larger batch sizes
- [ ] Implement automated hyperparameter tuning
### **4. Risk Management & Real Trading**
- [ ] Implement position sizing based on market volatility
- [ ] Add dynamic leverage adjustment
- [ ] Implement stop-loss and take-profit automation
- [ ] Add real-time portfolio risk monitoring
### **5. Performance & Monitoring**
- [ ] Add real-time performance benchmarking
- [ ] Implement comprehensive logging for all trading decisions
- [ ] Add real-time PnL tracking and reporting
- [ ] Optimize dashboard update frequencies
### **6. Model Interpretability**
- [ ] Add visualization for model decision making
- [ ] Implement feature importance analysis
- [ ] Add attention visualization for CNN layers
- [ ] Create real-time decision explanation system
## Implemented Enhancements1. **Enhanced CNN Architecture** - [x] Implemented deeper CNN with residual connections for better feature extraction - [x] Added self-attention mechanisms to capture temporal patterns - [x] Implemented dueling architecture for more stable Q-value estimation - [x] Added more capacity to prediction heads for better confidence estimation2. **Improved Training Pipeline** - [x] Created example sifting dataset to prioritize high-quality training examples - [x] Implemented price prediction pre-training to bootstrap learning - [x] Lowered confidence threshold to allow more trades (0.4 instead of 0.5) - [x] Added better normalization of state inputs3. **Visualization and Monitoring** - [x] Added detailed confidence metrics tracking - [x] Implemented TensorBoard logging for pre-training and RL phases - [x] Added more comprehensive trading statistics4. **GPU Optimization & Performance** - [x] Fixed GPU detection and utilization during training - [x] Added GPU memory monitoring during training - [x] Implemented mixed precision training for faster GPU-based training - [x] Optimized batch sizes for GPU training5. **Trading Metrics & Monitoring** - [x] Added trade signal rate display and tracking - [x] Implemented counter for actions per second/minute/hour - [x] Added visualization of trading frequency over time - [x] Created moving average of trade signals to show trends6. **Reward Function Optimization** - [x] Revised reward function to better balance profit and risk - [x] Implemented progressive rewards based on holding time - [x] Added penalty for frequent trading (to reduce noise) - [x] Implemented risk-adjusted returns (Sharpe ratio) in reward calculation
## Future Enhancements1. **Multi-timeframe Price Direction Prediction** - [ ] Extend CNN model to predict price direction for multiple timeframes - [ ] Modify CNN output to predict short, mid, and long-term price directions - [ ] Create data generation method for back-propagation using historical data - [ ] Implement real-time example generation for training - [ ] Feed direction predictions to RL agent as additional state information2. **Model Architecture Improvements** - [ ] Experiment with different residual block configurations - [ ] Implement Transformer-based models for better sequence handling - [ ] Try LSTM/GRU layers to combine with CNN for temporal data - [ ] Implement ensemble methods to combine multiple models3. **Training Process Improvements** - [ ] Implement curriculum learning (start with simple patterns, move to complex) - [ ] Add adversarial training to make model more robust - [ ] Implement Meta-Learning approaches for faster adaptation - [ ] Expand pre-training to include extrema detection4. **Trading Strategy Enhancements** - [ ] Add position sizing based on confidence levels (dynamic sizing based on prediction confidence) - [ ] Implement risk management constraints - [ ] Add support for stop-loss and take-profit mechanisms - [ ] Develop adaptive confidence thresholds based on market volatility - [ ] Implement Kelly criterion for optimal position sizing5. **Training Data & Model Improvements** - [ ] Implement data augmentation for more robust training - [ ] Simulate different market conditions - [ ] Add noise to training data - [ ] Generate synthetic data for rare market events6. **Model Interpretability** - [ ] Add visualization for model decision making - [ ] Implement feature importance analysis - [ ] Add attention visualization for key price patterns - [ ] Create explainable AI components7. **Performance Optimizations** - [ ] Optimize data loading pipeline for faster training - [ ] Implement distributed training for larger models - [ ] Profile and optimize inference speed for real-time trading - [ ] Optimize memory usage for longer training sessions8. **Research Directions** - [ ] Explore reinforcement learning algorithms beyond DQN (PPO, SAC, A3C) - [ ] Research ways to incorporate fundamental data - [ ] Investigate transfer learning from pre-trained models - [ ] Study methods to interpret model decisions for better trust
## Implementation Timeline
### Short-term (1-2 weeks)
- Run extended training with enhanced CNN model
- Analyze performance and confidence metrics
- Implement the most promising architectural improvements
### Medium-term (1-2 months)
- Implement position sizing and risk management features
- Add meta-learning capabilities
- Optimize training pipeline
### Long-term (3+ months)
- Research and implement advanced RL algorithms
- Create ensemble of specialized models
- Integrate fundamental data analysis

98
models.py Normal file
View File

@@ -0,0 +1,98 @@
"""
Models Module
Provides model registry and interfaces for the trading system.
This module acts as a bridge between the core system and the NN models.
"""
import logging
from typing import Dict, Any, Optional, List
from NN.models.model_interfaces import ModelInterface, CNNModelInterface, RLAgentInterface, ExtremaTrainerInterface
logger = logging.getLogger(__name__)
class ModelRegistry:
"""Registry for managing trading models"""
def __init__(self):
self.models: Dict[str, ModelInterface] = {}
self.model_performance: Dict[str, Dict[str, Any]] = {}
def register_model(self, name: str, model: ModelInterface):
"""Register a model in the registry"""
self.models[name] = model
self.model_performance[name] = {
'correct': 0,
'total': 0,
'accuracy': 0.0,
'last_used': None
}
logger.info(f"Registered model: {name}")
def get_model(self, name: str) -> Optional[ModelInterface]:
"""Get a model by name"""
return self.models.get(name)
def get_all_models(self) -> Dict[str, ModelInterface]:
"""Get all registered models"""
return self.models.copy()
def update_performance(self, name: str, correct: bool):
"""Update model performance metrics"""
if name in self.model_performance:
self.model_performance[name]['total'] += 1
if correct:
self.model_performance[name]['correct'] += 1
self.model_performance[name]['accuracy'] = (
self.model_performance[name]['correct'] /
self.model_performance[name]['total']
)
def get_best_model(self, model_type: str = None) -> Optional[str]:
"""Get the best performing model"""
if not self.model_performance:
return None
best_model = None
best_accuracy = -1.0
for name, perf in self.model_performance.items():
if model_type and not name.lower().startswith(model_type.lower()):
continue
if perf['accuracy'] > best_accuracy:
best_accuracy = perf['accuracy']
best_model = name
return best_model
# Global model registry instance
_model_registry = ModelRegistry()
def get_model_registry() -> ModelRegistry:
"""Get the global model registry instance"""
return _model_registry
def register_model(name: str, model: ModelInterface):
"""Register a model in the global registry"""
_model_registry.register_model(name, model)
def get_model(name: str) -> Optional[ModelInterface]:
"""Get a model from the global registry"""
return _model_registry.get_model(name)
def get_all_models() -> Dict[str, ModelInterface]:
"""Get all models from the global registry"""
return _model_registry.get_all_models()
# Export the interfaces
__all__ = [
'ModelRegistry',
'get_model_registry',
'register_model',
'get_model',
'get_all_models',
'ModelInterface',
'CNNModelInterface',
'RLAgentInterface',
'ExtremaTrainerInterface'
]

View File

@@ -9,9 +9,8 @@ psutil>=5.9.0
tensorboard>=2.15.0 tensorboard>=2.15.0
torch>=2.0.0 torch>=2.0.0
torchvision>=0.15.0 torchvision>=0.15.0
torchaudio>=2.0.0 torchaudio>=2.0.0n
scikit-learn>=1.3.0 scikit-learn>=1.3.0
matplotlib>=3.7.0 matplotlib>=3.7.0
seaborn>=0.12.0 seaborn>=0.12.0
asyncio-compat>=0.1.2
wandb>=0.16.0 wandb>=0.16.0