linux fixes
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
4
.env
@@ -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
7
.gitignore
vendored
@@ -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
|
||||||
|
|||||||
Binary file not shown.
@@ -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
67
TODO.md
@@ -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
98
models.py
Normal 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'
|
||||||
|
]
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user