linux fixes
This commit is contained in:
@@ -3,8 +3,9 @@
|
||||
|
||||
# To use the custom OpenAI-compatible endpoint from hyperbolic.xyz
|
||||
# Set the model and the API base URL.
|
||||
model: Qwen/Qwen3-Coder-480B-A35B-Instruct
|
||||
openai-api-base: https://api.hyperbolic.xyz/v1
|
||||
# model: Qwen/Qwen3-Coder-480B-A35B-Instruct
|
||||
model: lm_studio/gpt-oss-120b
|
||||
openai-api-base: http://127.0.0.1:1234/v1
|
||||
openai-api-key: "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"
|
||||
model-metadata-file: .aider.model.metadata.json
|
||||
|
||||
|
||||
@@ -3,5 +3,10 @@
|
||||
"context_window": 262144,
|
||||
"input_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_SECRET_KEY=3bfe4bd99d5541e4a1bca87ab257cc7e
|
||||
#3bfe4bd99d5541e4a1bca87ab257cc7e 45d0b3c26f2644f19bfb98b07741b2f5
|
||||
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -22,7 +22,6 @@ cache/
|
||||
realtime_chart.log
|
||||
training_results.png
|
||||
training_stats.csv
|
||||
__pycache__/realtime.cpython-312.pyc
|
||||
cache/BTC_USDT_1d_candles.csv
|
||||
cache/BTC_USDT_1h_candles.csv
|
||||
cache/BTC_USDT_1m_candles.csv
|
||||
@@ -47,3 +46,9 @@ chrome_user_data/*
|
||||
!.aider.model.metadata.json
|
||||
|
||||
.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 abc import ABC, abstractmethod
|
||||
|
||||
from models import ModelInterface
|
||||
from .model_interfaces import ModelInterface
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
67
TODO.md
67
TODO.md
@@ -1,60 +1,7 @@
|
||||
# 🚀 GOGO2 Enhanced Trading System - TODO
|
||||
|
||||
## 📈 **PRIORITY TASKS** (Real Market Data Only)
|
||||
|
||||
### **1. Real Market Data Enhancement**
|
||||
- [ ] Optimize live data refresh rates for 1s timeframes
|
||||
- [ ] Implement data quality validation checks
|
||||
- [ ] 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
|
||||
- [ ] Load MCP documentation
|
||||
- [ ] Read existing cline_mcp_settings.json
|
||||
- [ ] 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"
|
||||
- [x] Install the server (use npx or docker, choose appropriate method for Linux)
|
||||
- [x] Verify server is running
|
||||
- [x] Demonstrate server capability using one tool (e.g., list_allowed_directories)
|
||||
|
||||
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
|
||||
torch>=2.0.0
|
||||
torchvision>=0.15.0
|
||||
torchaudio>=2.0.0
|
||||
torchaudio>=2.0.0n
|
||||
scikit-learn>=1.3.0
|
||||
matplotlib>=3.7.0
|
||||
seaborn>=0.12.0
|
||||
asyncio-compat>=0.1.2
|
||||
wandb>=0.16.0
|
||||
Reference in New Issue
Block a user