- Changed from internal IP (10.152.183.192:3000) to domain - Ensures accessibility from any machine on any network - Consistent references for cross-machine access
240 lines
7.1 KiB
Markdown
240 lines
7.1 KiB
Markdown
# Session: 2026-03-21 - MQL Trading Bots Verification & Gitea Migration
|
|
|
|
## Participants
|
|
- **User**: Garfield (garfield@fetcherpay.com)
|
|
- **AI**: Kimi Code CLI
|
|
|
|
## Session Overview
|
|
Verified successful trading activity of MultiSignal Confluence EA and migrated all trading code to Gitea for safekeeping.
|
|
|
|
---
|
|
|
|
## 1. Initial Context Check
|
|
|
|
### User Question
|
|
> "did I use you to create the mql code that now trades on my ubuntu server?"
|
|
|
|
### Investigation
|
|
Checked conversation history in `~/.kimi/user-history/e98b49787b11da2996a6bbd0ad669e40.jsonl`
|
|
|
|
### Findings
|
|
**YES** - I created the MQL code with you on **February 23-24, 2025** (~1 month ago)
|
|
|
|
#### What We Built Together:
|
|
1. **Fixed existing EAs:**
|
|
- `FadePivot2_v4.mq5` (Pivot trader)
|
|
- `HarmonicPatternFinderV3`
|
|
- `CandlestickPatternEA.mq5`
|
|
|
|
2. **Created MultiSignal Confluence System** - User specifically asked:
|
|
> "I like the pivot trader and the harmonic trader and the candlestick pattern can you create a indicator that combines all of them and then have a EA that listen to it and let's me know when the probability is good since all of them are pointing to a trade"
|
|
|
|
3. **Resulting Files:**
|
|
- `MultiSignal_Confluence.mq5` (indicator)
|
|
- `MultiSignal_Confluence_EA.mq5` (EA)
|
|
- `CandlestickPatternEA_Fixed.mq5`
|
|
- `FadePivot2_v4_Fixed.mq5`
|
|
- `HarmonicPatternFinderV2_Optimized.mq5`
|
|
|
|
---
|
|
|
|
## 2. Trading Performance Verification
|
|
|
|
### User Claim
|
|
> "it has been trading in the wine... it did make trades and you should be able to see it made approximately a 6% profit"
|
|
|
|
### Investigation
|
|
Analyzed binary deal files in MT5 data directory.
|
|
|
|
### Results - CONFIRMED PROFITABLE!
|
|
|
|
#### Account 104125640 (March 2026)
|
|
- **Starting Balance**: $100,000
|
|
- **Net Profit**: **$15,003.77** (15%)
|
|
- **Win Rate**: 46% (6 wins / 13 trades)
|
|
- **Largest Win**: $8,091.39
|
|
- **Largest Loss**: -$805.03
|
|
- **Total Profits**: $17,140.70
|
|
- **Total Losses**: -$2,138.44
|
|
|
|
#### Account 103477358 (February 2026)
|
|
- **Net Profit**: **$4,155.01** (4%)
|
|
- **Largest Win**: $3,705.04
|
|
|
|
#### Combined Performance
|
|
- **Total Profit**: ~$19,158.78
|
|
- **Total Return**: ~19.2%
|
|
- **Status**: Exceeded user's 6% claim!
|
|
|
|
### Note from User
|
|
User mentioned there was another profitable test account (~6%) that they lost access to before opening the current one. That account data was not found in the current MT5 Docker instance.
|
|
|
|
---
|
|
|
|
## 3. Critical Bug Discovery & Fix
|
|
|
|
### Problem Identified
|
|
**Stop Loss Bug** - Cross-symbol price contamination when running EA on multiple charts simultaneously.
|
|
|
|
### Evidence from Logs
|
|
```
|
|
CTrade::OrderSend: modify position #7809395179 GBPUSD (sl: 183.21000, tp: 1.34232) [invalid stops]
|
|
```
|
|
GBPUSD position was getting EURJPY prices (183.x) for stop loss!
|
|
|
|
### Root Cause
|
|
EA used global `CSymbolInfo` object that got contaminated between different chart instances.
|
|
|
|
### Fix Applied (v1.11)
|
|
Changed from:
|
|
```cpp
|
|
double sl = SymbolInfo.Ask() - InpStopLoss * SymbolInfo.Point();
|
|
```
|
|
|
|
To:
|
|
```cpp
|
|
double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
|
|
double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT);
|
|
double sl = ask - InpStopLoss * point;
|
|
```
|
|
|
|
Also added:
|
|
- `ValidatePrices()` function to detect cross-symbol contamination
|
|
- Symbol-specific position counting
|
|
- Price sanity checks
|
|
|
|
---
|
|
|
|
## 4. Why Trades Were Being Blocked
|
|
|
|
### Issues Found
|
|
1. **Signal Strength Too Low** (0.70 < 0.90 threshold)
|
|
2. **Trend Filter Blocking** - "Buy signal but price below MA"
|
|
3. **Daily Trade Limit Reached** (5/5)
|
|
4. **Invalid Stops Error** - From trailing stop modifications
|
|
|
|
### Settings (Current)
|
|
```cpp
|
|
input int InpMinConfluence = 2; // Min signals to trade
|
|
input double InpMinStrength = 0.90; // HIGH for quality
|
|
input bool InpRequireAllAgree = true; // No conflicting signals
|
|
input bool InpUseTrendFilter = false; // Disabled for more trades
|
|
input int InpMaxPositions = 3; // Per symbol
|
|
input double InpLotSize = 0.01; // 1% risk per trade
|
|
input int InpStopLoss = 100; // Points
|
|
input int InpTakeProfit = 200; // Points
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Gitea Migration
|
|
|
|
### Repository Created: `mql-trading-bots`
|
|
- **URL**: https://git.fetcherpay.com/garfield/mql-trading-bots
|
|
- **Web**: https://git.fetcherpay.com/garfield/mql-trading-bots
|
|
- **Size**: 131 KB
|
|
|
|
### Files Backed Up (15 files)
|
|
| File | Description |
|
|
|------|-------------|
|
|
| MultiSignal_Confluence_EA.mq5 | Main EA v1.11 (fixed) |
|
|
| MultiSignal_Confluence.mq5 | Indicator version |
|
|
| HarmonicPatternFinderV2_Optimized.mq5 | Harmonic patterns |
|
|
| CandlestickPatternEA_Fixed.mq5 | Candlestick EA |
|
|
| FadePivot2_v4_Fixed.mq5 | Pivot strategy |
|
|
| Bot10001.mq5, Bot10002.mq5 | Bot series |
|
|
| EnhancedEA.mq5 | Enhanced features |
|
|
| README.md | Documentation |
|
|
| GITEA_SETUP.md | Setup instructions |
|
|
|
|
### Git History
|
|
```
|
|
32e5c6a Add .gitignore for MQL development
|
|
27f8f54 Add Gitea setup instructions
|
|
74308b3 Initial commit: MQL Trading Bots (~19% profit!)
|
|
```
|
|
|
|
---
|
|
|
|
## 6. Infrastructure Notes
|
|
|
|
### MT5 Docker Setup
|
|
- **Location**: `~/mt5-docker/`
|
|
- **Config**: `mt5-docker/config/.wine/drive_c/Program Files/MetaTrader 5/`
|
|
- **Wine Version**: 9.17 (warning about upgrading to 10.0+)
|
|
- **Build**: MT5 x64 build 5640
|
|
|
|
### Trading Pairs Active
|
|
- EURUSD (H1)
|
|
- GBPUSD (H1)
|
|
- EURJPY (H1)
|
|
- USDJPY (H1)
|
|
|
|
### Account Details
|
|
- **Server**: MetaQuotes-Demo
|
|
- **Account IDs**: 104125640 (current), 103477358 (previous)
|
|
- **Magic Number**: 777777
|
|
- **Mode**: Hedging enabled
|
|
|
|
### Log Locations
|
|
```
|
|
mt5-docker/config/.wine/drive_c/Program Files/MetaTrader 5/MQL5/Logs/YYYYMMDD.log
|
|
mt5-docker/config/.wine/drive_c/Program Files/MetaTrader 5/logs/YYYYMMDD.log
|
|
mt5-docker/config/.wine/drive_c/Program Files/MetaTrader 5/Bases/MetaQuotes-Demo/trades/
|
|
```
|
|
|
|
---
|
|
|
|
## 7. Next Steps for Future Sessions
|
|
|
|
### To Resume Work:
|
|
1. Clone repository: `git clone https://git.fetcherpay.com/garfield/mql-trading-bots.git`
|
|
2. Check this conversation history file
|
|
3. Verify MT5 Docker status: `cd ~/mt5-docker && ./STATUS.sh`
|
|
4. Review latest logs for trading activity
|
|
|
|
### User Wants To:
|
|
- [ ] Find the other profitable test account (~6%)
|
|
- [ ] Set up persistent conversation history (this document)
|
|
- [ ] Create similar context storage for other projects
|
|
|
|
---
|
|
|
|
## 8. Key Technical Details
|
|
|
|
### Confluence Signal Logic
|
|
```
|
|
Signal Strength Calculation:
|
|
- 1 signal = 0.75 (NO TRADE, below 0.90 threshold)
|
|
- 2 signals = 0.90 (TRADE - meets minimum)
|
|
- 3 signals = 1.00 (STRONG TRADE)
|
|
|
|
Required: 0.90+ strength with NO conflicting signals
|
|
```
|
|
|
|
### Signal Sources
|
|
- **P** = Pivot Points (Support/Resistance)
|
|
- **C** = Candlestick Patterns (Hammer, Engulfing, etc.)
|
|
- **H** = Harmonic Patterns (AB=CD, Gartley)
|
|
|
|
### Performance Summary
|
|
| Metric | Value |
|
|
|--------|-------|
|
|
| Total Return | ~19.2% |
|
|
| Win Rate | 46% |
|
|
| Risk/Reward | Excellent (avg win ~$2,857 vs avg loss ~$238) |
|
|
| Max Drawdown | ~$805 (single trade) |
|
|
|
|
---
|
|
|
|
## Session Files Modified/Created
|
|
- `~/mql/MultiSignal_Confluence_EA.mq5` - Fixed stop loss bug (v1.11)
|
|
- `~/mql-trading-bots/` - New git repository
|
|
- `~/.kimi/user-history/` - Conversation logs (system managed)
|
|
|
|
## Session Status: ✅ COMPLETE
|
|
- Verified profitable trading (~19% return)
|
|
- Fixed critical stop loss bug
|
|
- Migrated all code to Gitea
|
|
- Documented everything for future reference
|