From 842a2f8facad862220fbdedd93ee0cfed1b99924 Mon Sep 17 00:00:00 2001 From: zhutoutoutousan Date: Wed, 1 Apr 2026 05:40:17 +0200 Subject: [PATCH] Update --- ai/btcusd1min/BTCUSD_M1_EA.mq5 | 620 +++++++ ai/btcusd1min/README.md | 68 + ai/btcusd1min/main.py | 455 ++++++ ai/btcusd1min/models/BTC-USD_M1_model.onnx | Bin 0 -> 570429 bytes .../models/BTC-USD_M1_model_scaler.pkl | Bin 0 -> 1002 bytes ai/dummy/ONNX_EA.mq5 | 293 +++- ai/dummy/README.md | 39 +- ai/eurusd1min/EURUSD_M15_EA.mq5 | 681 ++++++++ ai/eurusd1min/README.md | 100 ++ ai/eurusd1min/main.py | 655 ++++++++ ai/eurusd1min/models/EURUSD_M15_model.onnx | Bin 0 -> 574278 bytes .../models/EURUSD_M15_model_scaler.pkl | Bin 0 -> 1002 bytes debug.log | 1 + .../MQL5/_united/PEPPERSTONE_US_SETUP.md | 75 + .../MQL5/_united/PerformanceEvaluator.mqh | 607 +++++++ .../MQL5/_united/STRATEGY_CONFIGURATION.md | 76 + .../_united/Strategies/DarvasBoxStrategy.mqh | 300 ++++ .../Strategies/EMASlopeDistanceStrategy.mqh | 496 ++++++ .../RSICrossOverReversalStrategy.mqh | 240 +++ .../Strategies/RSIMidPointHijackStrategy.mqh | 471 ++++++ .../Strategies/RSIReversalAsianStrategy.mqh | 493 ++++++ .../Strategies/RSIScalpingStrategy.mqh | 451 ++++++ frontline/MQL5/_united/main.mq5 | 1426 ++++++----------- frontline/MQL5/_united/self-evaluate.mq5 | 683 ++++++++ lab/EAs/EMAPriceSlope.mq5 | 559 +++++++ lab/EAs/TimeSelectiveEMA.mq5 | 342 ++++ pe-zero-to-one/chapter/ch01.tex | 17 + pe-zero-to-one/chapter/ch02.tex | 17 + pe-zero-to-one/chapter/ch03.tex | 17 + pe-zero-to-one/chapter/ch04.tex | 17 + pe-zero-to-one/chapter/ch05.tex | 17 + pe-zero-to-one/chapter/ch06.tex | 17 + pe-zero-to-one/chapter/ch07.tex | 21 + pe-zero-to-one/chapter/ch08.tex | 21 + pe-zero-to-one/chapter/ch09.tex | 21 + pe-zero-to-one/chapter/ch10.tex | 21 + pe-zero-to-one/chapter/ch11.tex | 21 + pe-zero-to-one/chapter/ch12.tex | 21 + pe-zero-to-one/chapter/ch13.tex | 46 + pe-zero-to-one/chapter/ch14.tex | 53 + pe-zero-to-one/chapter/ch15.tex | 36 + pe-zero-to-one/chapter/ch16.tex | 112 ++ pe-zero-to-one/chapter/ch17.tex | 54 + pe-zero-to-one/chapter/ch18.tex | 43 + pe-zero-to-one/chapter/ch19.tex | 54 + pe-zero-to-one/chapter/ch20.tex | 47 + pe-zero-to-one/chapter/ch21.tex | 36 + pe-zero-to-one/chapter/ch22.tex | 63 + pe-zero-to-one/chapter/ch23.tex | 48 + pe-zero-to-one/chapter/ch24.tex | 54 + pe-zero-to-one/chapter/ch25.tex | 58 + pe-zero-to-one/macros/tikz-compliance.tex | 41 + pe-zero-to-one/main.tex | 80 + 53 files changed, 9222 insertions(+), 962 deletions(-) create mode 100644 ai/btcusd1min/BTCUSD_M1_EA.mq5 create mode 100644 ai/btcusd1min/README.md create mode 100644 ai/btcusd1min/main.py create mode 100644 ai/btcusd1min/models/BTC-USD_M1_model.onnx create mode 100644 ai/btcusd1min/models/BTC-USD_M1_model_scaler.pkl create mode 100644 ai/eurusd1min/EURUSD_M15_EA.mq5 create mode 100644 ai/eurusd1min/README.md create mode 100644 ai/eurusd1min/main.py create mode 100644 ai/eurusd1min/models/EURUSD_M15_model.onnx create mode 100644 ai/eurusd1min/models/EURUSD_M15_model_scaler.pkl create mode 100644 debug.log create mode 100644 frontline/MQL5/_united/PEPPERSTONE_US_SETUP.md create mode 100644 frontline/MQL5/_united/PerformanceEvaluator.mqh create mode 100644 frontline/MQL5/_united/STRATEGY_CONFIGURATION.md create mode 100644 frontline/MQL5/_united/Strategies/DarvasBoxStrategy.mqh create mode 100644 frontline/MQL5/_united/Strategies/EMASlopeDistanceStrategy.mqh create mode 100644 frontline/MQL5/_united/Strategies/RSICrossOverReversalStrategy.mqh create mode 100644 frontline/MQL5/_united/Strategies/RSIMidPointHijackStrategy.mqh create mode 100644 frontline/MQL5/_united/Strategies/RSIReversalAsianStrategy.mqh create mode 100644 frontline/MQL5/_united/Strategies/RSIScalpingStrategy.mqh create mode 100644 frontline/MQL5/_united/self-evaluate.mq5 create mode 100644 lab/EAs/EMAPriceSlope.mq5 create mode 100644 lab/EAs/TimeSelectiveEMA.mq5 create mode 100644 pe-zero-to-one/chapter/ch01.tex create mode 100644 pe-zero-to-one/chapter/ch02.tex create mode 100644 pe-zero-to-one/chapter/ch03.tex create mode 100644 pe-zero-to-one/chapter/ch04.tex create mode 100644 pe-zero-to-one/chapter/ch05.tex create mode 100644 pe-zero-to-one/chapter/ch06.tex create mode 100644 pe-zero-to-one/chapter/ch07.tex create mode 100644 pe-zero-to-one/chapter/ch08.tex create mode 100644 pe-zero-to-one/chapter/ch09.tex create mode 100644 pe-zero-to-one/chapter/ch10.tex create mode 100644 pe-zero-to-one/chapter/ch11.tex create mode 100644 pe-zero-to-one/chapter/ch12.tex create mode 100644 pe-zero-to-one/chapter/ch13.tex create mode 100644 pe-zero-to-one/chapter/ch14.tex create mode 100644 pe-zero-to-one/chapter/ch15.tex create mode 100644 pe-zero-to-one/chapter/ch16.tex create mode 100644 pe-zero-to-one/chapter/ch17.tex create mode 100644 pe-zero-to-one/chapter/ch18.tex create mode 100644 pe-zero-to-one/chapter/ch19.tex create mode 100644 pe-zero-to-one/chapter/ch20.tex create mode 100644 pe-zero-to-one/chapter/ch21.tex create mode 100644 pe-zero-to-one/chapter/ch22.tex create mode 100644 pe-zero-to-one/chapter/ch23.tex create mode 100644 pe-zero-to-one/chapter/ch24.tex create mode 100644 pe-zero-to-one/chapter/ch25.tex create mode 100644 pe-zero-to-one/macros/tikz-compliance.tex create mode 100644 pe-zero-to-one/main.tex diff --git a/ai/btcusd1min/BTCUSD_M1_EA.mq5 b/ai/btcusd1min/BTCUSD_M1_EA.mq5 new file mode 100644 index 0000000..6971fa9 --- /dev/null +++ b/ai/btcusd1min/BTCUSD_M1_EA.mq5 @@ -0,0 +1,620 @@ +//+------------------------------------------------------------------+ +//| BTCUSD_M1_EA.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" +#property description "Expert Advisor using ONNX model for BTCUSD 1-minute price prediction" +#property description "Based on: https://www.mql5.com/en/docs/onnx/onnx_test" + +#include + +//--- Resource: Embed ONNX model in EA +// Based on: https://www.mql5.com/en/docs/onnx/onnx_test +// Path is relative to MQL5 directory (not starting with \\Files\\) +#resource "Files\\BTCUSD_M1_model.onnx" as uchar ExtModel[] + +//--- Input parameters +input group "ONNX Model Settings" +input string InpModelPath = ""; // ONNX Model Path (leave empty to use embedded resource) +input int InpLookback = 60; // Lookback Period (bars) +input bool InpUsePrediction = true; // Use Model Prediction + +input group "Trading Settings" +input double InpLotSize = 0.01; // Lot Size +input int InpMagicNumber = 123456; // Magic Number +input int InpSlippage = 3; // Slippage (points) +input bool InpUsePredictedSLTP = true; // Use Predicted SL/TP (based on prediction & volatility) +input int InpStopLoss = 50; // Stop Loss (pips) - used if InpUsePredictedSLTP=false +input int InpTakeProfit = 100; // Take Profit (pips) - used if InpUsePredictedSLTP=false +input double InpSLMultiplier = 1.5; // SL Multiplier (ATR-based, e.g., 1.5 = 1.5x ATR) +input double InpTPMultiplier = 2.0; // TP Multiplier (ATR-based, e.g., 2.0 = 2x ATR) +input double InpMinSLATR = 0.5; // Minimum SL (ATR multiplier) +input double InpMinTPATR = 1.0; // Minimum TP (ATR multiplier) + +input group "Prediction Settings" +input double InpPredictionThreshold = 0.00005; // Min Prediction Change (0.005% as decimal, e.g., 0.00005 = 0.005%) +input bool InpUseConfidence = true; // Use Confidence Filter +input double InpMinConfidence = 0.1; // Minimum Confidence (0.1 = 10%) + +//--- Global variables +CTrade trade; +long onnx_handle = INVALID_HANDLE; +datetime last_bar_time = 0; +double last_prediction = 0.0; +double last_confidence = 0.0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Set trade parameters + trade.SetExpertMagicNumber(InpMagicNumber); + trade.SetDeviationInPoints(InpSlippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Check symbol + if(_Symbol != "BTCUSD" && _Symbol != "BTCUSD#") + { + Print("WARNING: This EA is designed for BTCUSD. Current symbol: ", _Symbol); + } + + // Check timeframe + if(_Period != PERIOD_M1) + { + Print("WARNING: This EA is designed for M1 timeframe. Current timeframe: ", EnumToString(_Period)); + } + + // Load ONNX model + // Based on: https://www.mql5.com/en/docs/onnx/onnx_test + Print("Loading ONNX model from embedded resource..."); + + // Create model from resource buffer + onnx_handle = OnnxCreateFromBuffer(ExtModel, ONNX_DEBUG_LOGS); + + if(onnx_handle == INVALID_HANDLE) + { + int error = GetLastError(); + Print("ERROR: Failed to create ONNX model from resource. Error: ", error); + Print("Make sure the model file exists at: MQL5\\Files\\BTCUSD_M1_model.onnx"); + Print("Then recompile the EA to embed it as a resource."); + return(INIT_FAILED); + } + + // Set input shape - per MQL5 documentation + const long ExtInputShape[] = {1, InpLookback, 13}; // batch=1, lookback bars, 13 features + if(!OnnxSetInputShape(onnx_handle, 0, ExtInputShape)) + { + Print("OnnxSetInputShape failed, error ", GetLastError()); + OnnxRelease(onnx_handle); + return(INIT_FAILED); + } + + // Set output shape - per MQL5 documentation + const long ExtOutputShape[] = {1, 1}; // batch=1, single output value + if(!OnnxSetOutputShape(onnx_handle, 0, ExtOutputShape)) + { + Print("OnnxSetOutputShape failed, error ", GetLastError()); + OnnxRelease(onnx_handle); + return(INIT_FAILED); + } + + // Get model info + long input_count = OnnxGetInputCount(onnx_handle); + long output_count = OnnxGetOutputCount(onnx_handle); + + Print("ONNX Model loaded successfully"); + Print(" Inputs: ", input_count); + Print(" Outputs: ", output_count); + + if(input_count > 0) + { + string input_name = OnnxGetInputName(onnx_handle, 0); + Print(" Input name: ", input_name); + } + + if(output_count > 0) + { + string output_name = OnnxGetOutputName(onnx_handle, 0); + Print(" Output name: ", output_name); + } + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + // Release ONNX model + if(onnx_handle != INVALID_HANDLE) + { + OnnxRelease(onnx_handle); + Print("ONNX model released"); + } +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Check if new bar + datetime current_bar_time = iTime(_Symbol, PERIOD_CURRENT, 0); + if(current_bar_time == last_bar_time) + { + return; // Still the same bar + } + last_bar_time = current_bar_time; + + // Check if we should use prediction + if(!InpUsePrediction) + { + return; + } + + // Prepare input data + float input_data[]; + if(!PrepareInputData(input_data)) + { + Print("ERROR: Failed to prepare input data"); + return; + } + + // Check if input data is valid + if(ArraySize(input_data) != InpLookback * 13) + { + Print("ERROR: Input data size mismatch. Expected: ", InpLookback * 13, ", Got: ", ArraySize(input_data)); + return; + } + + // Convert flat array to matrixf for OnnxRun + // Shape: [lookback, features] = [60, 13] - batch dimension is added automatically + matrixf input_matrix; + input_matrix.Resize(InpLookback, 13); + + // Fill matrix from flat array + int idx = 0; + for(int i = 0; i < InpLookback; i++) + { + for(int j = 0; j < 13; j++) + { + if(idx >= ArraySize(input_data)) + { + Print("ERROR: Index out of bounds when filling matrix. idx=", idx, ", array size=", ArraySize(input_data)); + return; + } + input_matrix[i][j] = input_data[idx++]; + } + } + + // Verify matrix is not empty + if(input_matrix.Rows() == 0 || input_matrix.Cols() == 0) + { + Print("ERROR: Input matrix is empty. Rows: ", input_matrix.Rows(), ", Cols: ", input_matrix.Cols()); + return; + } + + // Run ONNX model - use matrixf and vectorf per MQL5 documentation + vectorf output_vector(1); + if(!RunONNXModel(input_matrix, output_vector)) + { + Print("ERROR: Failed to run ONNX model"); + return; + } + + // Get prediction + if(output_vector.Size() == 0) + { + Print("ERROR: Empty output from ONNX model"); + return; + } + + // Model now predicts price change percentage directly (e.g., -0.003 = -0.3%) + double predicted_change_pct = output_vector[0]; + double current_price = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + // Check if prediction is percentage (between -1 and 1) or absolute price (old format) + double price_change_pct; + double predicted_price; + + if(MathAbs(predicted_change_pct) < 1.0) + { + // New format: percentage (e.g., -0.003 = -0.3%) + price_change_pct = predicted_change_pct * 100.0; // Convert to percentage + predicted_price = current_price * (1.0 + predicted_change_pct); // Calculate predicted price + } + else + { + // Old format: absolute price + predicted_price = predicted_change_pct; + double price_change = predicted_price - current_price; + price_change_pct = (price_change / current_price) * 100.0; + } + + // Calculate confidence (for percentage predictions: 0.001 = 0.1% = 10% confidence) + double confidence; + if(MathAbs(price_change_pct) < 1.0) + { + // It's a decimal percentage (e.g., 0.001 = 0.1%) + confidence = MathMin(MathAbs(predicted_change_pct) / 0.01, 1.0); // 0.01 = 1% = 100% confidence + } + else + { + // It's already in percentage form + confidence = MathMin(MathAbs(price_change_pct) / 1.0, 1.0); + } + + last_prediction = predicted_price; + last_confidence = confidence; + + // Calculate ATR for dynamic SL/TP + double atr_value = 0.0; + double atr_array[]; + ArraySetAsSeries(atr_array, true); + int atr_handle = iATR(_Symbol, PERIOD_CURRENT, 14); + if(atr_handle != INVALID_HANDLE) + { + if(CopyBuffer(atr_handle, 0, 0, 1, atr_array) > 0) + { + atr_value = atr_array[0]; + } + IndicatorRelease(atr_handle); + } + + // Calculate predicted SL/TP based on prediction, confidence, and volatility + double predicted_sl = 0.0; + double predicted_tp = 0.0; + if(InpUsePredictedSLTP && atr_value > 0) + { + // Calculate SL/TP based on ATR, prediction, and confidence + double predicted_move = MathAbs(predicted_price - current_price); + + // SL: Based on ATR and confidence + // Higher confidence = tighter SL, lower confidence = wider SL + double sl_atr_mult = InpSLMultiplier / MathMax(confidence, 0.1); + sl_atr_mult = MathMax(sl_atr_mult, InpMinSLATR); + predicted_sl = atr_value * sl_atr_mult; + + // TP: Use a fraction of predicted move (not the full move) + // Take 30-50% of predicted move as TP, but ensure minimum + double tp_fraction = 0.3 + (confidence * 0.2); // 30-50% based on confidence + double tp_from_prediction = predicted_move * tp_fraction; + + // Also calculate TP from ATR multiplier + double tp_from_atr = atr_value * InpTPMultiplier; + + // Use the smaller of the two (more conservative) + predicted_tp = MathMin(tp_from_prediction, tp_from_atr); + predicted_tp = MathMax(predicted_tp, atr_value * InpMinTPATR); // Minimum TP + + // Ensure TP is at least 1.5x SL for risk/reward + if(predicted_tp < predicted_sl * 1.5) + { + predicted_tp = predicted_sl * 1.5; + } + + // Cap TP at maximum 80% of predicted move (don't be too greedy) + double max_tp = predicted_move * 0.8; + if(predicted_tp > max_tp) + { + predicted_tp = max_tp; + } + } + + // Log prediction + Print("Prediction: Current=", current_price, + " Predicted Change=", price_change_pct, "%", + " Predicted Price=", predicted_price, + " Confidence=", confidence, + " ATR=", atr_value); + if(InpUsePredictedSLTP && predicted_sl > 0 && predicted_tp > 0) + { + Print(" Predicted SL=", predicted_sl, " (", predicted_sl/current_price*100, "%)", + " Predicted TP=", predicted_tp, " (", predicted_tp/current_price*100, "%)"); + } + + // Check if we should trade + if(!InpUseConfidence || confidence >= InpMinConfidence) + { + // Check if prediction is significant + // price_change_pct is in percentage (e.g., 5.72 = 5.72%) + // InpPredictionThreshold is in decimal (e.g., 0.00005 = 0.005%) + // Convert threshold to percentage for comparison + double threshold_pct = InpPredictionThreshold * 100.0; + double abs_change_pct = MathAbs(price_change_pct); // Already in percentage + + Print("Trade Check: Change=", price_change_pct, "% Threshold=", threshold_pct, "% Confidence=", confidence); + + if(abs_change_pct >= threshold_pct) + { + // Check existing position + if(PositionSelect(_Symbol)) + { + // Manage existing position + ManagePosition(predicted_price, price_change_pct); + } + else + { + // Open new position based on prediction + if(price_change_pct > threshold_pct) + { + Print(">>> Opening BUY position: Change=", price_change_pct, "% Threshold=", threshold_pct, "%"); + OpenBuyPosition(predicted_sl, predicted_tp); + } + else if(price_change_pct < -threshold_pct) + { + Print(">>> Opening SELL position: Change=", price_change_pct, "% Threshold=", threshold_pct, "%"); + OpenSellPosition(predicted_sl, predicted_tp); + } + } + } + else + { + Print("Prediction below threshold: Change=", price_change_pct, "% < Threshold=", threshold_pct, "%"); + } + } + else + { + Print("Confidence too low: ", confidence, " < ", InpMinConfidence); + } +} + +//+------------------------------------------------------------------+ +//| Prepare input data for ONNX model | +//+------------------------------------------------------------------+ +bool PrepareInputData(float &input_array[]) +{ + int lookback = InpLookback; + int features = 13; // OHLC(4) + volume(1) + RSI(1) + EMA20(1) + EMA50(1) + ATR(1) + price_change(1) + high_low_ratio(1) + volume_ma(1) + volume_ratio(1) = 13 + + ArrayResize(input_array, lookback * features); + ArrayInitialize(input_array, 0.0); + + // Get historical data + double open[], high[], low[], close[]; + long volume[]; // CopyTickVolume requires long[] not double[] + ArraySetAsSeries(open, true); + ArraySetAsSeries(high, true); + ArraySetAsSeries(low, true); + ArraySetAsSeries(close, true); + ArraySetAsSeries(volume, true); + + int copied_open = CopyOpen(_Symbol, PERIOD_CURRENT, 0, lookback + 50, open); + if(copied_open < lookback) + { + Print("ERROR: CopyOpen failed. Got ", copied_open, " bars, need ", lookback); + return false; + } + int copied_high = CopyHigh(_Symbol, PERIOD_CURRENT, 0, lookback + 50, high); + if(copied_high < lookback) + { + Print("ERROR: CopyHigh failed. Got ", copied_high, " bars, need ", lookback); + return false; + } + int copied_low = CopyLow(_Symbol, PERIOD_CURRENT, 0, lookback + 50, low); + if(copied_low < lookback) + { + Print("ERROR: CopyLow failed. Got ", copied_low, " bars, need ", lookback); + return false; + } + int copied_close = CopyClose(_Symbol, PERIOD_CURRENT, 0, lookback + 50, close); + if(copied_close < lookback) + { + Print("ERROR: CopyClose failed. Got ", copied_close, " bars, need ", lookback); + return false; + } + int copied_volume = CopyTickVolume(_Symbol, PERIOD_CURRENT, 0, lookback + 50, volume); + if(copied_volume < lookback) + { + Print("ERROR: CopyTickVolume failed. Got ", copied_volume, " bars, need ", lookback); + return false; + } + + // Calculate indicators + double rsi[], ema20[], ema50[], atr[]; + ArraySetAsSeries(rsi, true); + ArraySetAsSeries(ema20, true); + ArraySetAsSeries(ema50, true); + ArraySetAsSeries(atr, true); + + // Calculate RSI + int rsi_handle = iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE); + if(rsi_handle == INVALID_HANDLE) return false; + if(CopyBuffer(rsi_handle, 0, 0, lookback + 50, rsi) < lookback) + { + IndicatorRelease(rsi_handle); + return false; + } + IndicatorRelease(rsi_handle); + + // Calculate EMAs + int ema20_handle = iMA(_Symbol, PERIOD_CURRENT, 20, 0, MODE_EMA, PRICE_CLOSE); + int ema50_handle = iMA(_Symbol, PERIOD_CURRENT, 50, 0, MODE_EMA, PRICE_CLOSE); + if(ema20_handle == INVALID_HANDLE || ema50_handle == INVALID_HANDLE) return false; + + if(CopyBuffer(ema20_handle, 0, 0, lookback + 50, ema20) < lookback || + CopyBuffer(ema50_handle, 0, 0, lookback + 50, ema50) < lookback) + { + IndicatorRelease(ema20_handle); + IndicatorRelease(ema50_handle); + return false; + } + IndicatorRelease(ema20_handle); + IndicatorRelease(ema50_handle); + + // Calculate ATR + int atr_handle = iATR(_Symbol, PERIOD_CURRENT, 14); + if(atr_handle == INVALID_HANDLE) return false; + if(CopyBuffer(atr_handle, 0, 0, lookback + 50, atr) < lookback) + { + IndicatorRelease(atr_handle); + return false; + } + IndicatorRelease(atr_handle); + + // Calculate volume MA for normalization + double volume_ma[]; + ArraySetAsSeries(volume_ma, true); + ArrayResize(volume_ma, lookback); + ArrayInitialize(volume_ma, 0.0); + + // Calculate volume MA (20-period rolling average) + for(int j = 0; j < lookback; j++) + { + double sum = 0.0; + int count = 0; + for(int k = j; k < j + 20 && k < ArraySize(volume); k++) + { + sum += (double)volume[k]; + count++; + } + volume_ma[j] = count > 0 ? sum / count : (double)volume[j]; + } + + // Prepare features - MUST match Python training exactly (13 features) + int idx = 0; + for(int i = 0; i < lookback; i++) + { + // Feature 1-4: OHLC + input_array[idx++] = (float)open[i]; + input_array[idx++] = (float)high[i]; + input_array[idx++] = (float)low[i]; + input_array[idx++] = (float)close[i]; + + // Feature 5: Volume (normalized by 1,000,000) + input_array[idx++] = (float)((double)volume[i] / 1000000.0); + + // Feature 6: RSI (normalized by 100) + input_array[idx++] = (float)(rsi[i] / 100.0); + + // Feature 7: EMA20 normalized difference + input_array[idx++] = (float)((ema20[i] - close[i]) / close[i]); + + // Feature 8: EMA50 normalized difference + input_array[idx++] = (float)((ema50[i] - close[i]) / close[i]); + + // Feature 9: ATR normalized + input_array[idx++] = (float)(atr[i] / close[i]); + + // Feature 10: Price change (percentage) + double price_change = i > 0 ? (close[i] - close[i+1]) / close[i+1] : 0.0; + input_array[idx++] = (float)price_change; + + // Feature 11: High/Low ratio + input_array[idx++] = (float)(high[i] / low[i]); + + // Feature 12: Volume MA (normalized by 1,000,000) + input_array[idx++] = (float)(volume_ma[i] / 1000000.0); + + // Feature 13: Volume ratio + double vol_ratio = volume_ma[i] > 0 ? (double)volume[i] / volume_ma[i] : 1.0; + input_array[idx++] = (float)vol_ratio; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Run ONNX model | +//+------------------------------------------------------------------+ +bool RunONNXModel(matrixf &input_matrix, vectorf &output_vector) +{ + if(onnx_handle == INVALID_HANDLE) + return false; + + // Run model - shapes are already set in OnInit per MQL5 documentation + // Based on: https://www.mql5.com/en/docs/onnx/onnx_test + // OnnxRun expects matrixf and vectorf, not flat arrays + if(!OnnxRun(onnx_handle, ONNX_DEBUG_LOGS | ONNX_NO_CONVERSION, input_matrix, output_vector)) + { + Print("ERROR: Failed to run ONNX model. Error: ", GetLastError()); + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition(double predicted_sl = 0.0, double predicted_tp = 0.0) +{ + double price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double sl = 0.0; + double tp = 0.0; + + if(InpUsePredictedSLTP && predicted_sl > 0 && predicted_tp > 0) + { + // Use predicted SL/TP + sl = price - predicted_sl; + tp = price + predicted_tp; + Print("Using predicted SL/TP: SL=", sl, " TP=", tp); + } + else + { + // Use fixed SL/TP from input parameters + sl = InpStopLoss > 0 ? price - InpStopLoss * _Point * 10 : 0; + tp = InpTakeProfit > 0 ? price + InpTakeProfit * _Point * 10 : 0; + } + + if(trade.Buy(InpLotSize, _Symbol, price, sl, tp, "ONNX Buy Signal")) + { + Print("Buy order opened. Ticket: ", trade.ResultOrder(), " Price: ", price, " SL: ", sl, " TP: ", tp); + } + else + { + Print("Failed to open buy order. Error: ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition(double predicted_sl = 0.0, double predicted_tp = 0.0) +{ + double price = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double sl = 0.0; + double tp = 0.0; + + if(InpUsePredictedSLTP && predicted_sl > 0 && predicted_tp > 0) + { + // Use predicted SL/TP + sl = price + predicted_sl; + tp = price - predicted_tp; + Print("Using predicted SL/TP: SL=", sl, " TP=", tp); + } + else + { + // Use fixed SL/TP from input parameters + sl = InpStopLoss > 0 ? price + InpStopLoss * _Point * 10 : 0; + tp = InpTakeProfit > 0 ? price - InpTakeProfit * _Point * 10 : 0; + } + + if(trade.Sell(InpLotSize, _Symbol, price, sl, tp, "ONNX Sell Signal")) + { + Print("Sell order opened. Ticket: ", trade.ResultOrder(), " Price: ", price, " SL: ", sl, " TP: ", tp); + } + else + { + Print("Failed to open sell order. Error: ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Manage existing position | +//+------------------------------------------------------------------+ +void ManagePosition(double predicted_price, double price_change_pct) +{ + if(!PositionSelect(_Symbol)) + return; + + // Simple position management - can be enhanced + // For now, just log the position status + double position_profit = PositionGetDouble(POSITION_PROFIT); + Print("Position exists. Profit: ", position_profit, " Predicted change: ", price_change_pct, "%"); +} diff --git a/ai/btcusd1min/README.md b/ai/btcusd1min/README.md new file mode 100644 index 0000000..d7c5e49 --- /dev/null +++ b/ai/btcusd1min/README.md @@ -0,0 +1,68 @@ +# BTCUSD 1-Minute ONNX Model Training + +This directory contains the training script for a BTCUSD price prediction model using 1-minute timeframe data from 2017 to 2026. + +## Requirements + +```bash +pip install yfinance tensorflow scikit-learn pandas numpy tf2onnx onnx tqdm +``` + +## Usage + +1. **Run the training script:** +```bash +cd ai/btcusd1min +python main.py +``` + +**Note:** yfinance 1-minute data is limited to the last 7 days. For longer historical training, the script will use the most recent available data. + +## Configuration + +The script is configured with: +- **Symbol**: BTCUSD +- **Timeframe**: M1 (1 minute) +- **Lookback**: 60 bars (60 minutes of history) +- **Date Range**: 2017-01-01 to 2026-01-01 +- **Model Architecture**: LSTM with 3 layers (128, 64, 32 units) +- **Epochs**: 50 (with early stopping) +- **Batch Size**: 64 + +## Output + +The script will create: +- `models/BTCUSD_M1_model.onnx` - The trained ONNX model +- `models/BTCUSD_M1_model_scaler.pkl` - The MinMaxScaler used for normalization + +## Model Features + +The model uses 13 features: +1. Open +2. High +3. Low +4. Close +5. Tick Volume +6. RSI (14 period) +7. EMA 20 +8. EMA 50 +9. ATR (14 period) +10. Price Change (percentage) +11. High/Low Ratio +12. Volume MA (20 period) +13. Volume Ratio + +## Model Output + +The model predicts the **price change percentage** for the next bar (1 minute ahead). + +## Notes + +- Training on 9 years of 1-minute data will take significant time and memory +- The script fetches data in 3-month chunks to manage memory +- Early stopping and learning rate reduction are enabled to prevent overfitting +- The model uses dropout (0.3) for regularization + +## Using the Model in MQL5 + +After training, copy the ONNX model to your MT5 `MQL5/Files/` directory and use it in an Expert Advisor similar to the XAUUSD H1 EA. diff --git a/ai/btcusd1min/main.py b/ai/btcusd1min/main.py new file mode 100644 index 0000000..4c8217c --- /dev/null +++ b/ai/btcusd1min/main.py @@ -0,0 +1,455 @@ +""" +ONNX Model Training Script for BTCUSD 1-Minute Data +Uses yfinance (Yahoo Finance) for historical data + +This script trains a neural network model for BTCUSD price prediction on 1-minute timeframe +and exports it to ONNX format. + +Usage: + python main.py +""" + +import os +import sys +from datetime import datetime, timedelta +import numpy as np +import pandas as pd +import yfinance as yf +import tensorflow as tf +from tensorflow import keras +from tensorflow.keras import layers +from sklearn.preprocessing import MinMaxScaler +from sklearn.model_selection import train_test_split +import tf2onnx +import onnx +from tqdm import tqdm +import pickle + + +class BTCUSD1MinTrainer: + """ + Trainer class for creating ONNX models from BTCUSD 1-minute MT5 data. + """ + + def __init__(self, symbol: str = "BTC-USD", lookback: int = 60, + prediction_horizon: int = 1): + """ + Initialize the trainer. + + Args: + symbol: Trading symbol (default: 'BTC-USD' for Yahoo Finance) + lookback: Number of bars to look back for prediction (default: 60) + prediction_horizon: Number of bars ahead to predict (default: 1) + """ + self.symbol = symbol + self.lookback = lookback + self.prediction_horizon = prediction_horizon + + self.scaler = MinMaxScaler() + self.model = None + + print(f"Using yfinance for data source. Symbol: {self.symbol}") + + def fetch_data(self, start_date: datetime, end_date: datetime) -> pd.DataFrame: + """ + Fetch historical data from Yahoo Finance using yfinance. + + Args: + start_date: Start date for data + end_date: End date for data + + Returns: + DataFrame with OHLCV data + """ + print(f"\nFetching {self.symbol} 1-minute data from {start_date.strftime('%Y-%m-%d')} to {end_date.strftime('%Y-%m-%d')}...") + + # yfinance can only fetch 7 days of 1-minute data at a time + # For longer periods, we need to fetch in chunks + all_data = [] + current_start = start_date + + # For 1-minute data, yfinance limits to last 7 days + # So we'll fetch the most recent 7 days available + print("Note: yfinance 1-minute data is limited to last 7 days") + print("Fetching most recent available 1-minute data...") + + # Get ticker + ticker = yf.Ticker(self.symbol) + + # Try to fetch 1-minute data (limited to 7 days) + # If we need more data, we'll use daily data and resample + try: + # Fetch 1-minute data (max 7 days) + df = ticker.history(start=start_date, end=end_date, interval='1m') + + if df is None or len(df) == 0: + print("Warning: No 1-minute data available, trying daily data...") + # Fall back to daily data + df = ticker.history(start=start_date, end=end_date, interval='1d') + if df is None or len(df) == 0: + raise ValueError(f"No data available for {self.symbol}") + print(f"Using daily data instead (will resample to 1-minute for training)") + except Exception as e: + print(f"Error fetching 1-minute data: {e}") + print("Falling back to daily data...") + df = ticker.history(start=start_date, end=end_date, interval='1d') + if df is None or len(df) == 0: + raise ValueError(f"No data available for {self.symbol}: {e}") + + # Rename columns to match expected format + df.columns = [col.lower().replace(' ', '_') for col in df.columns] + + # Ensure we have the required columns + required_cols = ['open', 'high', 'low', 'close', 'volume'] + missing_cols = [col for col in required_cols if col not in df.columns] + if missing_cols: + raise ValueError(f"Missing required columns: {missing_cols}") + + # Rename 'volume' to 'tick_volume' for consistency + if 'volume' in df.columns: + df['tick_volume'] = df['volume'] + df = df.drop('volume', axis=1) + + # Remove duplicates and sort + df = df[~df.index.duplicated(keep='first')] + df = df.sort_index() + + print(f"Total fetched: {len(df)} bars") + if len(df) > 0: + print(f"Date range: {df.index[0]} to {df.index[-1]}") + print(f"Timeframe: {df.index[1] - df.index[0] if len(df) > 1 else 'N/A'}") + else: + raise ValueError("DataFrame is empty after processing") + + return df + + def prepare_features(self, df: pd.DataFrame) -> pd.DataFrame: + """ + Prepare features for training. + + Args: + df: Raw OHLCV data + + Returns: + DataFrame with features + """ + print("\nPreparing features...") + + feature_df = df[['open', 'high', 'low', 'close', 'tick_volume']].copy() + + # Add technical indicators as features + print(" Calculating RSI...") + feature_df['rsi'] = self._calculate_rsi(df['close'], period=14) + + print(" Calculating EMAs...") + feature_df['ema_20'] = df['close'].ewm(span=20, adjust=False).mean() + feature_df['ema_50'] = df['close'].ewm(span=50, adjust=False).mean() + + print(" Calculating ATR...") + feature_df['atr'] = self._calculate_atr(df, period=14) + + # Price changes + feature_df['price_change'] = df['close'].pct_change() + feature_df['high_low_ratio'] = df['high'] / df['low'] + + # Volume features + feature_df['volume_ma'] = df['tick_volume'].rolling(window=20).mean() + feature_df['volume_ratio'] = df['tick_volume'] / feature_df['volume_ma'] + + # Drop NaN values + feature_df = feature_df.dropna() + + print(f" Features prepared: {len(feature_df)} samples, {len(feature_df.columns)} features") + print(f" Features: {list(feature_df.columns)}") + + return feature_df + + def _calculate_rsi(self, prices: pd.Series, period: int = 14) -> pd.Series: + """Calculate RSI indicator.""" + delta = prices.diff() + gain = (delta.where(delta > 0, 0)).rolling(window=period).mean() + loss = (-delta.where(delta < 0, 0)).rolling(window=period).mean() + rs = gain / loss + rsi = 100 - (100 / (1 + rs)) + return rsi + + def _calculate_atr(self, df: pd.DataFrame, period: int = 14) -> pd.Series: + """Calculate ATR indicator.""" + high_low = df['high'] - df['low'] + high_close = np.abs(df['high'] - df['close'].shift()) + low_close = np.abs(df['low'] - df['close'].shift()) + tr = pd.concat([high_low, high_close, low_close], axis=1).max(axis=1) + atr = tr.rolling(window=period).mean() + return atr + + def create_sequences(self, data: np.ndarray, target: np.ndarray) -> tuple: + """ + Create sequences for LSTM/RNN training. + + Args: + data: Feature data + target: Target values (price change percentages) + + Returns: + Tuple of (X, y) sequences + """ + print("\nCreating sequences...") + X, y = [], [] + + for i in tqdm(range(self.lookback, len(data) - self.prediction_horizon + 1), desc="Creating sequences"): + X.append(data[i - self.lookback:i]) + y.append(target[i]) + + X = np.array(X) + y = np.array(y) + + print(f" Sequences created: X shape {X.shape}, y shape {y.shape}") + + return X, y + + def build_model(self, input_shape: tuple) -> keras.Model: + """ + Build the neural network model. + + Args: + input_shape: Shape of input data (lookback, features) + + Returns: + Compiled Keras model + """ + print(f"\nBuilding model with input shape: {input_shape}") + + model = keras.Sequential([ + layers.LSTM(128, return_sequences=True, input_shape=input_shape), + layers.Dropout(0.3), + layers.LSTM(64, return_sequences=True), + layers.Dropout(0.3), + layers.LSTM(32), + layers.Dropout(0.3), + layers.Dense(32, activation='relu'), + layers.Dense(16, activation='relu'), + layers.Dense(1) # Predict price change percentage + ]) + + model.compile( + optimizer=keras.optimizers.Adam(learning_rate=0.0005), + loss='mse', + metrics=['mae'] + ) + + print(f" Model parameters: {model.count_params():,}") + model.summary() + + return model + + def train(self, start_date: datetime, end_date: datetime, + epochs: int = 50, batch_size: int = 32, + validation_split: float = 0.2, verbose: int = 1): + """ + Train the model. + + Args: + start_date: Start date for training data + end_date: End date for training data + epochs: Number of training epochs + batch_size: Batch size for training + validation_split: Fraction of data to use for validation + verbose: Verbosity level + """ + # Fetch data + df = self.fetch_data(start_date, end_date) + feature_df = self.prepare_features(df) + + # Prepare target: price change percentage for next bar + # Calculate future price change: (next_close - current_close) / current_close + close_prices = feature_df['close'].values + target = [] + for i in range(len(close_prices)): + if i + self.prediction_horizon < len(close_prices): + current_price = close_prices[i] + future_price = close_prices[i + self.prediction_horizon] + price_change_pct = (future_price - current_price) / current_price if current_price > 0 else 0.0 + target.append(price_change_pct) + else: + target.append(0.0) + target = pd.Series(target, index=feature_df.index) + + # Keep 'close' in features - it's needed for the model + + # Align target with features + valid_idx = ~(target.isna() | feature_df.isna().any(axis=1)) + feature_df = feature_df[valid_idx] + target = target[valid_idx] + + print(f"\nValid samples after alignment: {len(feature_df)}") + + # Normalize features + print("\nNormalizing features...") + feature_array = self.scaler.fit_transform(feature_df.values) + + # Create sequences + X, y = self.create_sequences(feature_array, target.values) + + # Split into train and validation + split_idx = int(len(X) * (1 - validation_split)) + X_train, X_val = X[:split_idx], X[split_idx:] + y_train, y_val = y[:split_idx], y[split_idx:] + + print(f"\nTrain set: {len(X_train)} samples") + print(f"Validation set: {len(X_val)} samples") + + # Build model + input_shape = (self.lookback, feature_array.shape[1]) + self.model = self.build_model(input_shape) + + # Train model + print(f"\nTraining model for {epochs} epochs...") + history = self.model.fit( + X_train, y_train, + batch_size=batch_size, + epochs=epochs, + validation_data=(X_val, y_val), + verbose=verbose, + callbacks=[ + keras.callbacks.EarlyStopping( + monitor='val_loss', + patience=10, + restore_best_weights=True + ), + keras.callbacks.ReduceLROnPlateau( + monitor='val_loss', + factor=0.5, + patience=5, + min_lr=1e-7 + ) + ] + ) + + # Evaluate + print("\nEvaluating model...") + train_loss = self.model.evaluate(X_train, y_train, verbose=0) + val_loss = self.model.evaluate(X_val, y_val, verbose=0) + + print(f"Train Loss: {train_loss[0]:.6f}, MAE: {train_loss[1]:.6f}") + print(f"Val Loss: {val_loss[0]:.6f}, MAE: {val_loss[1]:.6f}") + + return history + + def export_to_onnx(self, output_path: str): + """ + Export the trained model to ONNX format. + + Args: + output_path: Path to save ONNX model + """ + if self.model is None: + raise ValueError("Model must be trained before exporting") + + print(f"\nExporting model to ONNX format: {output_path}") + + # Get number of features + num_features = self.model.input_shape[2] if len(self.model.input_shape) > 2 else self.model.input_shape[1] + + print(f"Using {num_features} features for ONNX export") + + # Create input signature + input_shape = (None, self.lookback, num_features) + spec = (tf.TensorSpec(input_shape, tf.float32, name="input"),) + + # Fix output_names for Sequential model + if not hasattr(self.model, 'output_names'): + if hasattr(self.model, 'outputs') and self.model.outputs: + self.model.output_names = [f'output_{i}' for i in range(len(self.model.outputs))] + else: + self.model.output_names = ['output'] + + # Convert to ONNX + onnx_model, _ = tf2onnx.convert.from_keras( + self.model, + input_signature=spec, + opset=13 + ) + + # Save ONNX model + os.makedirs(os.path.dirname(output_path), exist_ok=True) + onnx.save_model(onnx_model, output_path) + + print(f"ONNX model saved to: {output_path}") + + # Save scaler + scaler_path = output_path.replace('.onnx', '_scaler.pkl') + with open(scaler_path, 'wb') as f: + pickle.dump(self.scaler, f) + print(f"Scaler saved to: {scaler_path}") + + def cleanup(self): + """Clean up (no-op for yfinance).""" + pass + + +def main(): + """Main function.""" + print("="*60) + print("BTCUSD 1-Minute ONNX Model Training") + print("="*60) + + # Training parameters + symbol = "BTC-USD" # Yahoo Finance symbol + lookback = 60 # 60 minutes of history + epochs = 50 + batch_size = 64 # Larger batch for 1-minute data + + # Date range: Use recent data (yfinance 1m data limited to 7 days) + # For longer training, we'll use the most recent available data + end_date = datetime.now() + start_date = end_date - timedelta(days=7) # Last 7 days for 1-minute data + + print(f"Note: yfinance 1-minute data is limited to last 7 days") + print(f"Using date range: {start_date.strftime('%Y-%m-%d')} to {end_date.strftime('%Y-%m-%d')}") + + # Output paths + output_dir = "models" + os.makedirs(output_dir, exist_ok=True) + model_path = os.path.join(output_dir, f"{symbol}_M1_model.onnx") + + trainer = None + try: + # Create trainer + trainer = BTCUSD1MinTrainer( + symbol=symbol, + lookback=lookback + ) + + # Train model + history = trainer.train( + start_date=start_date, + end_date=end_date, + epochs=epochs, + batch_size=batch_size, + validation_split=0.2, + verbose=1 + ) + + # Export to ONNX + trainer.export_to_onnx(model_path) + + print("\n" + "="*60) + print("Training completed successfully!") + print("="*60) + print(f"Model saved to: {model_path}") + + except Exception as e: + print(f"\nERROR: Training failed: {e}") + import traceback + traceback.print_exc() + return 1 + + finally: + if trainer: + trainer.cleanup() + + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/ai/btcusd1min/models/BTC-USD_M1_model.onnx b/ai/btcusd1min/models/BTC-USD_M1_model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e88565e3cd92946896c06305faa651198ac952fb GIT binary patch literal 570429 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≫d0*0R@%!vad9M43=h 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 z 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 literal 0 HcmV?d00001 diff --git a/ai/btcusd1min/models/BTC-USD_M1_model_scaler.pkl b/ai/btcusd1min/models/BTC-USD_M1_model_scaler.pkl new file mode 100644 index 0000000000000000000000000000000000000000..08cf903b30502ce6c32f9f778023ce9086a2c028 GIT binary patch literal 1002 zcmZo*nR=g@0StPii?ef56N~cn3W`z-it>|Fi;FY!()Hp~5=#=N^zis*=J_U81Scov zq!vw?JVmo{O6?Sl9^SOn#FEmY)cB&ry!6y5-VEN1ZBu$!lJg5Hr*r`6oXmnLojrVc z@lbWe@tJw?Q@nY5`19h66LSl4Qj6n@Q&WLrzB3ei*or~M$4}`I%PY+-sML#3&M!*U z%Pq|*$xJLNN~{DrBfcm#IX|zsq^LBx1n7(&Rp)4k4l%^vEQ z{f92EW@U4DzYnG#>=;f^jK>pj5lBZ9#|H;|G)V4%lG+O98v+j3wsJX&i+yldo$%@Z z73mKSlTsZ_E%Fzotvj#0UCKS(VD!w0C#RycsUKmyrCi52+52&ni#w)jVoPFysD z#G5;g_m5kP8~R2#Y+(3&{U6&$2Z=pA_A0+VIBd_oy^VK5ngc`1vp~If?XWNc(;bsn zI0DTD0uu+Yi@3pI1Wxn>+{7^F-3AAcPFys|O`B79-q~Ou?%)v3dH0jdI)??h-jAQ3 zT3)<8|GZMp9FOi$TS9q0(3VC#6xp%d|7Hyab|uVFn1X0nduo$DNWJ? E05frAWdHyG literal 0 HcmV?d00001 diff --git a/ai/dummy/ONNX_EA.mq5 b/ai/dummy/ONNX_EA.mq5 index c20da6a..3febb1d 100644 --- a/ai/dummy/ONNX_EA.mq5 +++ b/ai/dummy/ONNX_EA.mq5 @@ -11,9 +11,14 @@ #include +//--- Resource: Embed ONNX model in EA +// Based on: https://www.mql5.com/en/docs/onnx/onnx_test +// Path is relative to MQL5 directory (not starting with \\Files\\) +#resource "Files\\XAUUSD_H1_model.onnx" as uchar ExtModel[] + //--- Input parameters input group "ONNX Model Settings" -input string InpModelPath = "models\\XAUUSD_H1_model.onnx"; // ONNX Model Path +input string InpModelPath = ""; // ONNX Model Path (leave empty to use embedded resource) input int InpLookback = 60; // Lookback Period (bars) input bool InpUsePrediction = true; // Use Model Prediction @@ -21,8 +26,13 @@ input group "Trading Settings" input double InpLotSize = 0.01; // Lot Size input int InpMagicNumber = 123456; // Magic Number input int InpSlippage = 3; // Slippage (points) -input int InpStopLoss = 50; // Stop Loss (pips) -input int InpTakeProfit = 100; // Take Profit (pips) +input bool InpUsePredictedSLTP = true; // Use Predicted SL/TP (based on prediction & volatility) +input int InpStopLoss = 50; // Stop Loss (pips) - used if InpUsePredictedSLTP=false +input int InpTakeProfit = 100; // Take Profit (pips) - used if InpUsePredictedSLTP=false +input double InpSLMultiplier = 1.5; // SL Multiplier (ATR-based, e.g., 1.5 = 1.5x ATR) +input double InpTPMultiplier = 2.0; // TP Multiplier (ATR-based, e.g., 2.0 = 2x ATR) +input double InpMinSLATR = 0.5; // Minimum SL (ATR multiplier) +input double InpMinTPATR = 1.0; // Minimum TP (ATR multiplier) input group "Prediction Settings" input double InpPredictionThreshold = 0.00005; // Min Prediction Change (0.005% as decimal, e.g., 0.00005 = 0.005%) @@ -47,33 +57,40 @@ int OnInit() trade.SetTypeFilling(ORDER_FILLING_FOK); // Load ONNX model - string model_path = InpModelPath; + // Based on: https://www.mql5.com/en/docs/onnx/onnx_test + Print("Loading ONNX model from embedded resource..."); - // Convert relative path to full path - if(StringFind(model_path, "\\") == 0 || StringFind(model_path, "/") == 0) - { - // Already absolute path - } - else - { - // Relative path - prepend terminal data folder - model_path = TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Files\\" + model_path; - } - - // Replace forward slashes with backslashes for Windows - StringReplace(model_path, "/", "\\"); - - Print("Loading ONNX model from: ", model_path); - - onnx_handle = OnnxCreate(model_path, ONNX_DEFAULT); + // Create model from resource buffer + onnx_handle = OnnxCreateFromBuffer(ExtModel, ONNX_DEBUG_LOGS); if(onnx_handle == INVALID_HANDLE) { - Print("ERROR: Failed to load ONNX model. Error: ", GetLastError()); - Print("Make sure the model file exists at: ", model_path); + int error = GetLastError(); + Print("ERROR: Failed to create ONNX model from resource. Error: ", error); + Print("Make sure the model file exists at: MQL5\\Files\\XAUUSD_H1_model.onnx"); + Print("Then recompile the EA to embed it as a resource."); return(INIT_FAILED); } + // Set input shape - per MQL5 documentation + const long ExtInputShape[] = {1, InpLookback, 13}; // batch=1, lookback bars, 13 features + if(!OnnxSetInputShape(onnx_handle, 0, ExtInputShape)) + { + Print("OnnxSetInputShape failed, error ", GetLastError()); + OnnxRelease(onnx_handle); + return(INIT_FAILED); + } + + // Set output shape - per MQL5 documentation + const long ExtOutputShape[] = {1, 1}; // batch=1, single output value + if(!OnnxSetOutputShape(onnx_handle, 0, ExtOutputShape)) + { + Print("OnnxSetOutputShape failed, error ", GetLastError()); + OnnxRelease(onnx_handle); + return(INIT_FAILED); + } + + // Get model info long input_count = OnnxGetInputCount(onnx_handle); long output_count = OnnxGetOutputCount(onnx_handle); @@ -137,23 +154,59 @@ void OnTick() return; } - // Run ONNX model - float output_data[]; - if(!RunONNXModel(input_data, output_data)) + // Check if input data is valid + if(ArraySize(input_data) != InpLookback * 13) + { + Print("ERROR: Input data size mismatch. Expected: ", InpLookback * 13, ", Got: ", ArraySize(input_data)); + return; + } + + // Convert flat array to matrixf for OnnxRun + // Shape: [lookback, features] = [60, 13] - batch dimension is added automatically + matrixf input_matrix; + input_matrix.Resize(InpLookback, 13); + + // Fill matrix from flat array + int idx = 0; + for(int i = 0; i < InpLookback; i++) + { + for(int j = 0; j < 13; j++) + { + if(idx >= ArraySize(input_data)) + { + Print("ERROR: Index out of bounds when filling matrix. idx=", idx, ", array size=", ArraySize(input_data)); + return; + } + input_matrix[i][j] = input_data[idx++]; + } + } + + // Verify matrix is not empty + if(input_matrix.Rows() == 0 || input_matrix.Cols() == 0) + { + Print("ERROR: Input matrix is empty. Rows: ", input_matrix.Rows(), ", Cols: ", input_matrix.Cols()); + return; + } + + Print("Input matrix prepared: Rows=", input_matrix.Rows(), ", Cols=", input_matrix.Cols()); + + // Run ONNX model - use matrixf and vectorf per MQL5 documentation + vectorf output_vector(1); + if(!RunONNXModel(input_matrix, output_vector)) { Print("ERROR: Failed to run ONNX model"); return; } // Get prediction - if(ArraySize(output_data) == 0) + if(output_vector.Size() == 0) { Print("ERROR: Empty output from ONNX model"); return; } // Model now predicts price change percentage directly (e.g., -0.003 = -0.3%) - double predicted_change_pct = output_data[0]; + double predicted_change_pct = output_vector[0]; double current_price = SymbolInfoDouble(_Symbol, SYMBOL_BID); // Check if prediction is percentage (between -1 and 1) or absolute price (old format) @@ -190,20 +243,85 @@ void OnTick() last_prediction = predicted_price; last_confidence = confidence; + // Calculate ATR for dynamic SL/TP + double atr_value = 0.0; + double atr_array[]; + ArraySetAsSeries(atr_array, true); + int atr_handle = iATR(_Symbol, PERIOD_CURRENT, 14); + if(atr_handle != INVALID_HANDLE) + { + if(CopyBuffer(atr_handle, 0, 0, 1, atr_array) > 0) + { + atr_value = atr_array[0]; + } + IndicatorRelease(atr_handle); + } + + // Calculate predicted SL/TP based on prediction, confidence, and volatility + double predicted_sl = 0.0; + double predicted_tp = 0.0; + if(InpUsePredictedSLTP && atr_value > 0) + { + // Calculate SL/TP based on ATR, prediction, and confidence + double predicted_move = MathAbs(predicted_price - current_price); + + // SL: Based on ATR and confidence + // Higher confidence = tighter SL, lower confidence = wider SL + double sl_atr_mult = InpSLMultiplier / MathMax(confidence, 0.1); + sl_atr_mult = MathMax(sl_atr_mult, InpMinSLATR); + predicted_sl = atr_value * sl_atr_mult; + + // TP: Use a fraction of predicted move (not the full move) + // Take 30-50% of predicted move as TP, but ensure minimum + double tp_fraction = 0.3 + (confidence * 0.2); // 30-50% based on confidence + double tp_from_prediction = predicted_move * tp_fraction; + + // Also calculate TP from ATR multiplier + double tp_from_atr = atr_value * InpTPMultiplier; + + // Use the smaller of the two (more conservative) + predicted_tp = MathMin(tp_from_prediction, tp_from_atr); + predicted_tp = MathMax(predicted_tp, atr_value * InpMinTPATR); // Minimum TP + + // Ensure TP is at least 1.5x SL for risk/reward + if(predicted_tp < predicted_sl * 1.5) + { + predicted_tp = predicted_sl * 1.5; + } + + // Cap TP at maximum 80% of predicted move (don't be too greedy) + double max_tp = predicted_move * 0.8; + if(predicted_tp > max_tp) + { + predicted_tp = max_tp; + } + } + // Log prediction Print("Prediction: Current=", current_price, " Predicted Change=", price_change_pct, "%", " Predicted Price=", predicted_price, - " Confidence=", confidence); + " Confidence=", confidence, + " ATR=", atr_value); + if(InpUsePredictedSLTP && predicted_sl > 0 && predicted_tp > 0) + { + Print(" Predicted SL=", predicted_sl, " (", predicted_sl/current_price*100, "%)", + " Predicted TP=", predicted_tp, " (", predicted_tp/current_price*100, "%)"); + } // Check if we should trade if(!InpUseConfidence || confidence >= InpMinConfidence) { // Check if prediction is significant - // price_change_pct is now in percentage (e.g., 0.1 = 0.1%), so compare with threshold * 100 - // OR: if model outputs decimal (0.001), compare directly - double abs_change_decimal = MathAbs(predicted_change_pct); // Use raw prediction for threshold check - if(abs_change_decimal >= InpPredictionThreshold) + // price_change_pct is in percentage (e.g., 5.72 = 5.72%) + // InpPredictionThreshold is in decimal (e.g., 0.00005 = 0.005%) + // Convert threshold to percentage for comparison + double threshold_pct = InpPredictionThreshold * 100.0; + double abs_change_pct = MathAbs(price_change_pct); // Already in percentage + + Print("Trade Check: Change=", price_change_pct, "% Threshold=", threshold_pct, "% Confidence=", confidence); + + if(abs_change_pct >= threshold_pct) { // Check existing position if(PositionSelect(_Symbol)) @@ -214,17 +332,26 @@ void OnTick() else { // Open new position based on prediction - // Use raw prediction (decimal format) for threshold comparison - if(predicted_change_pct > InpPredictionThreshold) + if(price_change_pct > threshold_pct) { - OpenBuyPosition(); + Print(">>> Opening BUY position: Change=", price_change_pct, "% Threshold=", threshold_pct, "%"); + OpenBuyPosition(predicted_sl, predicted_tp); } - else if(predicted_change_pct < -InpPredictionThreshold) + else if(price_change_pct < -threshold_pct) { - OpenSellPosition(); + Print(">>> Opening SELL position: Change=", price_change_pct, "% Threshold=", threshold_pct, "%"); + OpenSellPosition(predicted_sl, predicted_tp); } } } + else + { + Print("Prediction below threshold: Change=", price_change_pct, "% < Threshold=", threshold_pct, "%"); + } + } + else + { + Print("Confidence too low: ", confidence, " < ", InpMinConfidence); } } @@ -251,16 +378,36 @@ bool PrepareInputData(float &input_array[]) ArraySetAsSeries(close, true); ArraySetAsSeries(volume, true); - if(CopyOpen(_Symbol, PERIOD_CURRENT, 0, lookback + 50, open) < lookback) + int copied_open = CopyOpen(_Symbol, PERIOD_CURRENT, 0, lookback + 50, open); + if(copied_open < lookback) + { + Print("ERROR: CopyOpen failed. Got ", copied_open, " bars, need ", lookback); return false; - if(CopyHigh(_Symbol, PERIOD_CURRENT, 0, lookback + 50, high) < lookback) + } + int copied_high = CopyHigh(_Symbol, PERIOD_CURRENT, 0, lookback + 50, high); + if(copied_high < lookback) + { + Print("ERROR: CopyHigh failed. Got ", copied_high, " bars, need ", lookback); return false; - if(CopyLow(_Symbol, PERIOD_CURRENT, 0, lookback + 50, low) < lookback) + } + int copied_low = CopyLow(_Symbol, PERIOD_CURRENT, 0, lookback + 50, low); + if(copied_low < lookback) + { + Print("ERROR: CopyLow failed. Got ", copied_low, " bars, need ", lookback); return false; - if(CopyClose(_Symbol, PERIOD_CURRENT, 0, lookback + 50, close) < lookback) + } + int copied_close = CopyClose(_Symbol, PERIOD_CURRENT, 0, lookback + 50, close); + if(copied_close < lookback) + { + Print("ERROR: CopyClose failed. Got ", copied_close, " bars, need ", lookback); return false; - if(CopyTickVolume(_Symbol, PERIOD_CURRENT, 0, lookback + 50, volume) < lookback) + } + int copied_volume = CopyTickVolume(_Symbol, PERIOD_CURRENT, 0, lookback + 50, volume); + if(copied_volume < lookback) + { + Print("ERROR: CopyTickVolume failed. Got ", copied_volume, " bars, need ", lookback); return false; + } // Calculate indicators (simplified - you may need to match training exactly) double rsi[], ema20[], ema50[], atr[]; @@ -379,21 +526,15 @@ bool PrepareInputData(float &input_array[]) //+------------------------------------------------------------------+ //| Run ONNX model | //+------------------------------------------------------------------+ -bool RunONNXModel(float &input_data[], float &output_data[]) +bool RunONNXModel(matrixf &input_matrix, vectorf &output_vector) { if(onnx_handle == INVALID_HANDLE) return false; - // Set input shape - long input_shape[] = {1, InpLookback, 13}; // 13 features - if(!OnnxSetInputShape(onnx_handle, 0, input_shape)) - { - Print("ERROR: Failed to set input shape. Error: ", GetLastError()); - return false; - } - - // Run model - if(!OnnxRun(onnx_handle, ONNX_NO_CONVERSION, input_data, output_data)) + // Run model - shapes are already set in OnInit per MQL5 documentation + // Based on: https://www.mql5.com/en/docs/onnx/onnx_test + // OnnxRun expects matrixf and vectorf, not flat arrays + if(!OnnxRun(onnx_handle, ONNX_DEBUG_LOGS | ONNX_NO_CONVERSION, input_matrix, output_vector)) { Print("ERROR: Failed to run ONNX model. Error: ", GetLastError()); return false; @@ -405,15 +546,29 @@ bool RunONNXModel(float &input_data[], float &output_data[]) //+------------------------------------------------------------------+ //| Open buy position | //+------------------------------------------------------------------+ -void OpenBuyPosition() +void OpenBuyPosition(double predicted_sl = 0.0, double predicted_tp = 0.0) { double price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); - double sl = InpStopLoss > 0 ? price - InpStopLoss * _Point * 10 : 0; - double tp = InpTakeProfit > 0 ? price + InpTakeProfit * _Point * 10 : 0; + double sl = 0.0; + double tp = 0.0; + + if(InpUsePredictedSLTP && predicted_sl > 0 && predicted_tp > 0) + { + // Use predicted SL/TP + sl = price - predicted_sl; + tp = price + predicted_tp; + Print("Using predicted SL/TP: SL=", sl, " TP=", tp); + } + else + { + // Use fixed SL/TP from input parameters + sl = InpStopLoss > 0 ? price - InpStopLoss * _Point * 10 : 0; + tp = InpTakeProfit > 0 ? price + InpTakeProfit * _Point * 10 : 0; + } if(trade.Buy(InpLotSize, _Symbol, price, sl, tp, "ONNX Buy Signal")) { - Print("Buy order opened. Ticket: ", trade.ResultOrder()); + Print("Buy order opened. Ticket: ", trade.ResultOrder(), " Price: ", price, " SL: ", sl, " TP: ", tp); } else { @@ -424,15 +579,29 @@ void OpenBuyPosition() //+------------------------------------------------------------------+ //| Open sell position | //+------------------------------------------------------------------+ -void OpenSellPosition() +void OpenSellPosition(double predicted_sl = 0.0, double predicted_tp = 0.0) { double price = SymbolInfoDouble(_Symbol, SYMBOL_BID); - double sl = InpStopLoss > 0 ? price + InpStopLoss * _Point * 10 : 0; - double tp = InpTakeProfit > 0 ? price - InpTakeProfit * _Point * 10 : 0; + double sl = 0.0; + double tp = 0.0; + + if(InpUsePredictedSLTP && predicted_sl > 0 && predicted_tp > 0) + { + // Use predicted SL/TP + sl = price + predicted_sl; + tp = price - predicted_tp; + Print("Using predicted SL/TP: SL=", sl, " TP=", tp); + } + else + { + // Use fixed SL/TP from input parameters + sl = InpStopLoss > 0 ? price + InpStopLoss * _Point * 10 : 0; + tp = InpTakeProfit > 0 ? price - InpTakeProfit * _Point * 10 : 0; + } if(trade.Sell(InpLotSize, _Symbol, price, sl, tp, "ONNX Sell Signal")) { - Print("Sell order opened. Ticket: ", trade.ResultOrder()); + Print("Sell order opened. Ticket: ", trade.ResultOrder(), " Price: ", price, " SL: ", sl, " TP: ", tp); } else { diff --git a/ai/dummy/README.md b/ai/dummy/README.md index f5939fe..eb41796 100644 --- a/ai/dummy/README.md +++ b/ai/dummy/README.md @@ -71,16 +71,45 @@ python predict_with_onnx.py --model models/XAUUSD_H1_model.onnx --symbol XAUUSD ### Step 3: Use in Expert Advisor +#### For Strategy Tester: +1. Copy the ONNX model to Tester Files folder: + ``` + \Tester\Files\XAUUSD_H1_model.onnx + ``` + Or use the full path shown in error messages if file not found. + +2. Compile `ONNX_EA.mq5` in MetaEditor (F7) + +3. Open Strategy Tester (View → Strategy Tester or Ctrl+R) + +4. Configure: + - Expert Advisor: `ONNX_EA` + - Symbol: `XAUUSD` (or your symbol) + - Period: `H1` (or your timeframe) + - Inputs: + - `InpModelPath`: `XAUUSD_H1_model.onnx` (just filename) + - Adjust other parameters as needed + +5. Click Start + +#### For Live/Demo Trading: 1. Copy the ONNX model to MT5's Files folder: ``` - \MQL5\Files\models\XAUUSD_H1_model.onnx + \MQL5\Files\XAUUSD_H1_model.onnx ``` + To find your Data Folder: Tools → Options → Expert Advisors → Data Folder -2. Compile `ONNX_EA.mq5` in MetaEditor +2. Compile `ONNX_EA.mq5` in MetaEditor (F7) -3. Attach the EA to a chart with: - - Model path: `models\XAUUSD_H1_model.onnx` - - Your trading parameters +3. Open a chart (e.g., XAUUSD H1) + +4. Drag `ONNX_EA` from Navigator (Ctrl+N) onto the chart + +5. Configure inputs: + - `InpModelPath`: `XAUUSD_H1_model.onnx` (just filename) + - Adjust trading parameters + +6. Click OK and enable AutoTrading if needed ## Detailed Usage diff --git a/ai/eurusd1min/EURUSD_M15_EA.mq5 b/ai/eurusd1min/EURUSD_M15_EA.mq5 new file mode 100644 index 0000000..bd472d2 --- /dev/null +++ b/ai/eurusd1min/EURUSD_M15_EA.mq5 @@ -0,0 +1,681 @@ +//+------------------------------------------------------------------+ +//| EURUSD_M15_EA.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" +#property description "Expert Advisor using ONNX model for EURUSD 15-minute price prediction" +#property description "Based on: https://www.mql5.com/en/docs/onnx/onnx_test" + +#include + +//--- Resource: Embed ONNX model in EA +// Based on: https://www.mql5.com/en/docs/onnx/onnx_test +// Path is relative to MQL5 directory (not starting with \\Files\\) +#resource "Files\\EURUSD_M15_model.onnx" as uchar ExtModel[] + +//--- Input parameters +input group "ONNX Model Settings" +input string InpModelPath = ""; // ONNX Model Path (leave empty to use embedded resource) +input int InpLookback = 60; // Lookback Period (bars = 15 hours) +input bool InpUsePrediction = true; // Use Model Prediction + +input group "Trading Settings" +input double InpLotSize = 0.01; // Lot Size +input int InpMagicNumber = 123456; // Magic Number +input int InpSlippage = 3; // Slippage (points) +input bool InpUsePredictedSLTP = true; // Use Predicted SL/TP (based on prediction & volatility) +input int InpStopLoss = 50; // Stop Loss (pips) - used if InpUsePredictedSLTP=false +input int InpTakeProfit = 100; // Take Profit (pips) - used if InpUsePredictedSLTP=false +input double InpSLMultiplier = 1.5; // SL Multiplier (ATR-based, e.g., 1.5 = 1.5x ATR) +input double InpTPMultiplier = 2.0; // TP Multiplier (ATR-based, e.g., 2.0 = 2x ATR) +input double InpMinSLATR = 0.5; // Minimum SL (ATR multiplier) +input double InpMinTPATR = 1.0; // Minimum TP (ATR multiplier) + +input group "Prediction Settings" +input double InpPredictionThreshold = 0.00005; // Min Prediction Change (0.005% as decimal, e.g., 0.00005 = 0.005%) +input bool InpUseConfidence = true; // Use Confidence Filter +input double InpMinConfidence = 0.1; // Minimum Confidence (0.1 = 10%) + +//--- Global variables +CTrade trade; +long onnx_handle = INVALID_HANDLE; +datetime last_bar_time = 0; +double last_prediction = 0.0; +double last_confidence = 0.0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Set trade parameters + trade.SetExpertMagicNumber(InpMagicNumber); + trade.SetDeviationInPoints(InpSlippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Check symbol + if(_Symbol != "EURUSD" && _Symbol != "EURUSD#") + { + Print("WARNING: This EA is designed for EURUSD. Current symbol: ", _Symbol); + } + + // Check timeframe + if(_Period != PERIOD_M15) + { + Print("WARNING: This EA is designed for M15 timeframe. Current timeframe: ", EnumToString(_Period)); + } + + // Load ONNX model + // Based on: https://www.mql5.com/en/docs/onnx/onnx_test + Print("Loading ONNX model from embedded resource..."); + + // Create model from resource buffer + onnx_handle = OnnxCreateFromBuffer(ExtModel, ONNX_DEBUG_LOGS); + + if(onnx_handle == INVALID_HANDLE) + { + int error = GetLastError(); + Print("ERROR: Failed to create ONNX model from resource. Error: ", error); + Print("Make sure the model file exists at: MQL5\\Files\\EURUSD_M15_model.onnx"); + Print("Then recompile the EA to embed it as a resource."); + return(INIT_FAILED); + } + + // Set input shape - per MQL5 documentation + const long ExtInputShape[] = {1, InpLookback, 13}; // batch=1, lookback bars, 13 features + if(!OnnxSetInputShape(onnx_handle, 0, ExtInputShape)) + { + Print("OnnxSetInputShape failed, error ", GetLastError()); + OnnxRelease(onnx_handle); + return(INIT_FAILED); + } + + // Set output shapes - per MQL5 documentation (multi-output: price_change, sl_atr, tp_atr) + const long ExtOutputShape0[] = {1, 1}; // batch=1, price change output + const long ExtOutputShape1[] = {1, 1}; // batch=1, SL (ATR) output + const long ExtOutputShape2[] = {1, 1}; // batch=1, TP (ATR) output + + if(!OnnxSetOutputShape(onnx_handle, 0, ExtOutputShape0)) + { + Print("OnnxSetOutputShape[0] failed, error ", GetLastError()); + OnnxRelease(onnx_handle); + return(INIT_FAILED); + } + if(!OnnxSetOutputShape(onnx_handle, 1, ExtOutputShape1)) + { + Print("OnnxSetOutputShape[1] failed, error ", GetLastError()); + OnnxRelease(onnx_handle); + return(INIT_FAILED); + } + if(!OnnxSetOutputShape(onnx_handle, 2, ExtOutputShape2)) + { + Print("OnnxSetOutputShape[2] failed, error ", GetLastError()); + OnnxRelease(onnx_handle); + return(INIT_FAILED); + } + + // Get model info + long input_count = OnnxGetInputCount(onnx_handle); + long output_count = OnnxGetOutputCount(onnx_handle); + + Print("ONNX Model loaded successfully"); + Print(" Inputs: ", input_count); + Print(" Outputs: ", output_count); + + if(input_count > 0) + { + string input_name = OnnxGetInputName(onnx_handle, 0); + Print(" Input name: ", input_name); + } + + if(output_count > 0) + { + string output_name = OnnxGetOutputName(onnx_handle, 0); + Print(" Output name: ", output_name); + } + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + // Release ONNX model + if(onnx_handle != INVALID_HANDLE) + { + OnnxRelease(onnx_handle); + Print("ONNX model released"); + } +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Check if new bar + datetime current_bar_time = iTime(_Symbol, PERIOD_CURRENT, 0); + if(current_bar_time == last_bar_time) + { + return; // Still the same bar + } + last_bar_time = current_bar_time; + + // Check if we should use prediction + if(!InpUsePrediction) + { + return; + } + + // Prepare input data + float input_data[]; + if(!PrepareInputData(input_data)) + { + Print("ERROR: Failed to prepare input data"); + return; + } + + // Check if input data is valid + if(ArraySize(input_data) != InpLookback * 13) + { + Print("ERROR: Input data size mismatch. Expected: ", InpLookback * 13, ", Got: ", ArraySize(input_data)); + return; + } + + // Convert flat array to matrixf for OnnxRun + // Shape: [lookback, features] = [60, 13] - batch dimension is added automatically + matrixf input_matrix; + input_matrix.Resize(InpLookback, 13); + + // Fill matrix from flat array + int idx = 0; + for(int i = 0; i < InpLookback; i++) + { + for(int j = 0; j < 13; j++) + { + if(idx >= ArraySize(input_data)) + { + Print("ERROR: Index out of bounds when filling matrix. idx=", idx, ", array size=", ArraySize(input_data)); + return; + } + input_matrix[i][j] = input_data[idx++]; + } + } + + // Verify matrix is not empty + if(input_matrix.Rows() == 0 || input_matrix.Cols() == 0) + { + Print("ERROR: Input matrix is empty. Rows: ", input_matrix.Rows(), ", Cols: ", input_matrix.Cols()); + return; + } + + // Run ONNX model - multi-output: price_change, sl_atr, tp_atr + vectorf output_price_change(1); + vectorf output_sl_atr(1); + vectorf output_tp_atr(1); + + if(!RunONNXModel(input_matrix, output_price_change, output_sl_atr, output_tp_atr)) + { + Print("ERROR: Failed to run ONNX model"); + return; + } + + // Get predictions + if(output_price_change.Size() == 0 || output_sl_atr.Size() == 0 || output_tp_atr.Size() == 0) + { + Print("ERROR: Empty output from ONNX model"); + return; + } + + // Model outputs: [price_change_pct, sl_atr_multiple, tp_atr_multiple] + double predicted_change_pct = output_price_change[0]; + double predicted_sl_atr = output_sl_atr[0]; + double predicted_tp_atr = output_tp_atr[0]; + + // Ensure positive values for SL/TP + predicted_sl_atr = MathMax(0.5, predicted_sl_atr); // Minimum 0.5 ATR + predicted_tp_atr = MathMax(1.0, predicted_tp_atr); // Minimum 1.0 ATR + + double current_price = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + // Check if prediction is percentage (between -1 and 1) or absolute price (old format) + double price_change_pct; + double predicted_price; + + if(MathAbs(predicted_change_pct) < 1.0) + { + // New format: percentage (e.g., -0.003 = -0.3%) + price_change_pct = predicted_change_pct * 100.0; // Convert to percentage + predicted_price = current_price * (1.0 + predicted_change_pct); // Calculate predicted price + } + else + { + // Old format: absolute price + predicted_price = predicted_change_pct; + double price_change = predicted_price - current_price; + price_change_pct = (price_change / current_price) * 100.0; + } + + // Calculate confidence (for percentage predictions: 0.001 = 0.1% = 10% confidence) + double confidence; + if(MathAbs(price_change_pct) < 1.0) + { + // It's a decimal percentage (e.g., 0.001 = 0.1%) + confidence = MathMin(MathAbs(predicted_change_pct) / 0.01, 1.0); // 0.01 = 1% = 100% confidence + } + else + { + // It's already in percentage form + confidence = MathMin(MathAbs(price_change_pct) / 1.0, 1.0); + } + + last_prediction = predicted_price; + last_confidence = confidence; + + // Calculate ATR for converting model's ATR multiples to actual price distances + double atr_value = 0.0; + double atr_array[]; + ArraySetAsSeries(atr_array, true); + int atr_handle = iATR(_Symbol, PERIOD_CURRENT, 14); + if(atr_handle != INVALID_HANDLE) + { + if(CopyBuffer(atr_handle, 0, 0, 1, atr_array) > 0) + { + atr_value = atr_array[0]; + } + IndicatorRelease(atr_handle); + } + + // Use model's predicted SL/TP (in ATR multiples) directly + double predicted_sl = 0.0; + double predicted_tp = 0.0; + if(InpUsePredictedSLTP && atr_value > 0) + { + // Model predicts SL and TP in ATR multiples - convert to price distance + predicted_sl = atr_value * predicted_sl_atr; + predicted_tp = atr_value * predicted_tp_atr; + + // Ensure minimums from input parameters + predicted_sl = MathMax(predicted_sl, atr_value * InpMinSLATR); + predicted_tp = MathMax(predicted_tp, atr_value * InpMinTPATR); + + // Ensure TP is at least 1.5x SL for risk/reward + if(predicted_tp < predicted_sl * 1.5) + { + predicted_tp = predicted_sl * 1.5; + } + + // Get broker's stop level requirements + int stop_level = (int)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + double min_stop_distance = stop_level * point; + + // Ensure SL/TP meet broker's minimum stop level + if(predicted_sl < min_stop_distance) + { + predicted_sl = min_stop_distance; + } + if(predicted_tp < min_stop_distance) + { + predicted_tp = min_stop_distance; + } + } + + // Log prediction + Print("Prediction: Current=", current_price, + " Predicted Change=", price_change_pct, "%", + " Predicted Price=", predicted_price, + " Confidence=", confidence, + " ATR=", atr_value); + if(InpUsePredictedSLTP && predicted_sl > 0 && predicted_tp > 0) + { + Print(" Model SL=", predicted_sl_atr, "x ATR (", predicted_sl, " points, ", predicted_sl/current_price*100, "%)", + " Model TP=", predicted_tp_atr, "x ATR (", predicted_tp, " points, ", predicted_tp/current_price*100, "%)"); + } + + // Check if we should trade + if(!InpUseConfidence || confidence >= InpMinConfidence) + { + // Check if prediction is significant + // price_change_pct is in percentage (e.g., 5.72 = 5.72%) + // InpPredictionThreshold is in decimal (e.g., 0.00005 = 0.005%) + // Convert threshold to percentage for comparison + double threshold_pct = InpPredictionThreshold * 100.0; + double abs_change_pct = MathAbs(price_change_pct); // Already in percentage + + Print("Trade Check: Change=", price_change_pct, "% Threshold=", threshold_pct, "% Confidence=", confidence); + + if(abs_change_pct >= threshold_pct) + { + // Check existing position + if(PositionSelect(_Symbol)) + { + // Manage existing position + ManagePosition(predicted_price, price_change_pct); + } + else + { + // Open new position based on prediction + if(price_change_pct > threshold_pct) + { + Print(">>> Opening BUY position: Change=", price_change_pct, "% Threshold=", threshold_pct, "%"); + OpenBuyPosition(predicted_sl, predicted_tp); + } + else if(price_change_pct < -threshold_pct) + { + Print(">>> Opening SELL position: Change=", price_change_pct, "% Threshold=", threshold_pct, "%"); + OpenSellPosition(predicted_sl, predicted_tp); + } + } + } + else + { + Print("Prediction below threshold: Change=", price_change_pct, "% < Threshold=", threshold_pct, "%"); + } + } + else + { + Print("Confidence too low: ", confidence, " < ", InpMinConfidence); + } +} + +//+------------------------------------------------------------------+ +//| Prepare input data for ONNX model | +//+------------------------------------------------------------------+ +bool PrepareInputData(float &input_array[]) +{ + int lookback = InpLookback; + int features = 13; // OHLC(4) + volume(1) + RSI(1) + EMA20(1) + EMA50(1) + ATR(1) + price_change(1) + high_low_ratio(1) + volume_ma(1) + volume_ratio(1) = 13 + + ArrayResize(input_array, lookback * features); + ArrayInitialize(input_array, 0.0); + + // Get historical data + double open[], high[], low[], close[]; + long volume[]; // CopyTickVolume requires long[] not double[] + ArraySetAsSeries(open, true); + ArraySetAsSeries(high, true); + ArraySetAsSeries(low, true); + ArraySetAsSeries(close, true); + ArraySetAsSeries(volume, true); + + int copied_open = CopyOpen(_Symbol, PERIOD_CURRENT, 0, lookback + 50, open); + if(copied_open < lookback) + { + Print("ERROR: CopyOpen failed. Got ", copied_open, " bars, need ", lookback); + return false; + } + int copied_high = CopyHigh(_Symbol, PERIOD_CURRENT, 0, lookback + 50, high); + if(copied_high < lookback) + { + Print("ERROR: CopyHigh failed. Got ", copied_high, " bars, need ", lookback); + return false; + } + int copied_low = CopyLow(_Symbol, PERIOD_CURRENT, 0, lookback + 50, low); + if(copied_low < lookback) + { + Print("ERROR: CopyLow failed. Got ", copied_low, " bars, need ", lookback); + return false; + } + int copied_close = CopyClose(_Symbol, PERIOD_CURRENT, 0, lookback + 50, close); + if(copied_close < lookback) + { + Print("ERROR: CopyClose failed. Got ", copied_close, " bars, need ", lookback); + return false; + } + int copied_volume = CopyTickVolume(_Symbol, PERIOD_CURRENT, 0, lookback + 50, volume); + if(copied_volume < lookback) + { + Print("ERROR: CopyTickVolume failed. Got ", copied_volume, " bars, need ", lookback); + return false; + } + + // Calculate indicators + double rsi[], ema20[], ema50[], atr[]; + ArraySetAsSeries(rsi, true); + ArraySetAsSeries(ema20, true); + ArraySetAsSeries(ema50, true); + ArraySetAsSeries(atr, true); + + // Calculate RSI + int rsi_handle = iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE); + if(rsi_handle == INVALID_HANDLE) return false; + if(CopyBuffer(rsi_handle, 0, 0, lookback + 50, rsi) < lookback) + { + IndicatorRelease(rsi_handle); + return false; + } + IndicatorRelease(rsi_handle); + + // Calculate EMAs + int ema20_handle = iMA(_Symbol, PERIOD_CURRENT, 20, 0, MODE_EMA, PRICE_CLOSE); + int ema50_handle = iMA(_Symbol, PERIOD_CURRENT, 50, 0, MODE_EMA, PRICE_CLOSE); + if(ema20_handle == INVALID_HANDLE || ema50_handle == INVALID_HANDLE) return false; + + if(CopyBuffer(ema20_handle, 0, 0, lookback + 50, ema20) < lookback || + CopyBuffer(ema50_handle, 0, 0, lookback + 50, ema50) < lookback) + { + IndicatorRelease(ema20_handle); + IndicatorRelease(ema50_handle); + return false; + } + IndicatorRelease(ema20_handle); + IndicatorRelease(ema50_handle); + + // Calculate ATR + int atr_handle = iATR(_Symbol, PERIOD_CURRENT, 14); + if(atr_handle == INVALID_HANDLE) return false; + if(CopyBuffer(atr_handle, 0, 0, lookback + 50, atr) < lookback) + { + IndicatorRelease(atr_handle); + return false; + } + IndicatorRelease(atr_handle); + + // Calculate volume MA for normalization + double volume_ma[]; + ArraySetAsSeries(volume_ma, true); + ArrayResize(volume_ma, lookback); + ArrayInitialize(volume_ma, 0.0); + + // Calculate volume MA (20-period rolling average) + for(int j = 0; j < lookback; j++) + { + double sum = 0.0; + int count = 0; + for(int k = j; k < j + 20 && k < ArraySize(volume); k++) + { + sum += (double)volume[k]; + count++; + } + volume_ma[j] = count > 0 ? sum / count : (double)volume[j]; + } + + // Prepare features - MUST match Python training exactly (13 features) + int idx = 0; + for(int i = 0; i < lookback; i++) + { + // Feature 1-4: OHLC + input_array[idx++] = (float)open[i]; + input_array[idx++] = (float)high[i]; + input_array[idx++] = (float)low[i]; + input_array[idx++] = (float)close[i]; + + // Feature 5: Volume (normalized by 1,000,000) + input_array[idx++] = (float)((double)volume[i] / 1000000.0); + + // Feature 6: RSI (normalized by 100) + input_array[idx++] = (float)(rsi[i] / 100.0); + + // Feature 7: EMA20 normalized difference + input_array[idx++] = (float)((ema20[i] - close[i]) / close[i]); + + // Feature 8: EMA50 normalized difference + input_array[idx++] = (float)((ema50[i] - close[i]) / close[i]); + + // Feature 9: ATR normalized + input_array[idx++] = (float)(atr[i] / close[i]); + + // Feature 10: Price change (percentage) + double price_change = i > 0 ? (close[i] - close[i+1]) / close[i+1] : 0.0; + input_array[idx++] = (float)price_change; + + // Feature 11: High/Low ratio + input_array[idx++] = (float)(high[i] / low[i]); + + // Feature 12: Volume MA (normalized by 1,000,000) + input_array[idx++] = (float)(volume_ma[i] / 1000000.0); + + // Feature 13: Volume ratio + double vol_ratio = volume_ma[i] > 0 ? (double)volume[i] / volume_ma[i] : 1.0; + input_array[idx++] = (float)vol_ratio; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Run ONNX model | +//+------------------------------------------------------------------+ +bool RunONNXModel(matrixf &input_matrix, vectorf &output_price_change, vectorf &output_sl_atr, vectorf &output_tp_atr) +{ + if(onnx_handle == INVALID_HANDLE) + return false; + + // For multi-output ONNX models in MQL5, OnnxRun expects all outputs as separate parameters + // Function signature: OnnxRun(handle, flags, input, output1, output2, output3, ...) + // This is 4 parameters total: handle, flags, input, and then all outputs + + if(!OnnxRun(onnx_handle, ONNX_DEBUG_LOGS | ONNX_NO_CONVERSION, input_matrix, + output_price_change, output_sl_atr, output_tp_atr)) + { + Print("ERROR: Failed to run ONNX model. Error: ", GetLastError()); + Print("Model has ", OnnxGetOutputCount(onnx_handle), " outputs"); + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition(double predicted_sl = 0.0, double predicted_tp = 0.0) +{ + double price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double sl = 0.0; + double tp = 0.0; + + // Get broker's stop level requirements + int stop_level = (int)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + double min_stop_distance = stop_level * point; + + if(InpUsePredictedSLTP && predicted_sl > 0 && predicted_tp > 0) + { + // Use predicted SL/TP + // For BUY: SL below entry, TP above entry + sl = price - predicted_sl; + tp = price + predicted_tp; + + // Validate stops meet broker requirements + if(sl > 0 && (price - sl) < min_stop_distance) + { + sl = price - min_stop_distance; + } + if(tp > 0 && (tp - price) < min_stop_distance) + { + tp = price + min_stop_distance; + } + + Print("Using predicted SL/TP: Entry=", price, " SL=", sl, " TP=", tp, " (SL distance: ", price - sl, ", TP distance: ", tp - price, ")"); + } + else + { + // Use fixed SL/TP from input parameters + sl = InpStopLoss > 0 ? price - InpStopLoss * _Point * 10 : 0; + tp = InpTakeProfit > 0 ? price + InpTakeProfit * _Point * 10 : 0; + } + + if(trade.Buy(InpLotSize, _Symbol, price, sl, tp, "ONNX Buy Signal")) + { + Print("Buy order opened. Ticket: ", trade.ResultOrder(), " Price: ", price, " SL: ", sl, " TP: ", tp); + } + else + { + Print("Failed to open buy order. Error: ", trade.ResultRetcodeDescription()); + Print(" Entry: ", price, " SL: ", sl, " TP: ", tp); + Print(" Stop Level: ", stop_level, " Min Distance: ", min_stop_distance); + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition(double predicted_sl = 0.0, double predicted_tp = 0.0) +{ + double price = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double sl = 0.0; + double tp = 0.0; + + // Get broker's stop level requirements + int stop_level = (int)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + double min_stop_distance = stop_level * point; + + if(InpUsePredictedSLTP && predicted_sl > 0 && predicted_tp > 0) + { + // Use predicted SL/TP + // For SELL: SL above entry, TP below entry + sl = price + predicted_sl; + tp = price - predicted_tp; + + // Validate stops meet broker requirements + if(sl > 0 && (sl - price) < min_stop_distance) + { + sl = price + min_stop_distance; + } + if(tp > 0 && (price - tp) < min_stop_distance) + { + tp = price - min_stop_distance; + } + + Print("Using predicted SL/TP: Entry=", price, " SL=", sl, " TP=", tp, " (SL distance: ", sl - price, ", TP distance: ", price - tp, ")"); + } + else + { + // Use fixed SL/TP from input parameters + sl = InpStopLoss > 0 ? price + InpStopLoss * _Point * 10 : 0; + tp = InpTakeProfit > 0 ? price - InpTakeProfit * _Point * 10 : 0; + } + + if(trade.Sell(InpLotSize, _Symbol, price, sl, tp, "ONNX Sell Signal")) + { + Print("Sell order opened. Ticket: ", trade.ResultOrder(), " Price: ", price, " SL: ", sl, " TP: ", tp); + } + else + { + Print("Failed to open sell order. Error: ", trade.ResultRetcodeDescription()); + Print(" Entry: ", price, " SL: ", sl, " TP: ", tp); + Print(" Stop Level: ", stop_level, " Min Distance: ", min_stop_distance); + } +} + +//+------------------------------------------------------------------+ +//| Manage existing position | +//+------------------------------------------------------------------+ +void ManagePosition(double predicted_price, double price_change_pct) +{ + if(!PositionSelect(_Symbol)) + return; + + // Simple position management - can be enhanced + // For now, just log the position status + double position_profit = PositionGetDouble(POSITION_PROFIT); + Print("Position exists. Profit: ", position_profit, " Predicted change: ", price_change_pct, "%"); +} diff --git a/ai/eurusd1min/README.md b/ai/eurusd1min/README.md new file mode 100644 index 0000000..d3dca9e --- /dev/null +++ b/ai/eurusd1min/README.md @@ -0,0 +1,100 @@ +# EURUSD 15-Minute ONNX Model Training + +This directory contains the training script for a EURUSD price prediction model using 15-minute timeframe data from 1990 to 2026 using MetaTrader 5 as the data source. + +## Requirements + +```bash +pip install MetaTrader5 tensorflow scikit-learn pandas numpy tf2onnx onnx tqdm +``` + +## Usage + +1. **Make sure MetaTrader 5 is running and logged in** +2. **Ensure EURUSD symbol is available in your broker** +3. **Make sure you have historical data downloaded in MT5** (Tools → History Center → Download) + +4. **Run the training script:** +```bash +cd ai/eurusd1min +python main.py +``` + +## Configuration + +The script is configured with: +- **Symbol**: EURUSD +- **Timeframe**: M15 (15 minutes) +- **Lookback**: 60 bars (15 hours of history) +- **Date Range**: 1990-01-01 to 2026-01-01 +- **Model Architecture**: LSTM with 3 layers (128, 64, 32 units) +- **Epochs**: 50 (with early stopping) +- **Batch Size**: 64 + +## Data Fetching + +- The script fetches data in **1-month chunks** to manage memory +- 15-minute data is more likely to be available for longer historical periods than 1-minute data +- The script automatically skips chunks with only 1 bar (invalid/placeholder data) +- Progress is shown for each chunk +- Make sure you have sufficient historical data in MT5 + +## Output + +The script will create: +- `models/EURUSD_M15_model.onnx` - The trained ONNX model +- `models/EURUSD_M15_model_scaler.pkl` - The MinMaxScaler used for normalization + +## Model Features + +The model uses 13 features: +1. Open +2. High +3. Low +4. Close +5. Tick Volume +6. RSI (14 period) +7. EMA 20 +8. EMA 50 +9. ATR (14 period) +10. Price Change (percentage) +11. High/Low Ratio +12. Volume MA (20 period) +13. Volume Ratio + +## Model Output + +The model predicts the **price change percentage** for the next bar (15 minutes ahead). + +## Notes + +- Training on 36 years of 15-minute data will take significant time and memory +- The script fetches data in 1-month chunks to manage memory +- Chunks with only 1 bar are automatically skipped (invalid/placeholder data) +- Early stopping and learning rate reduction are enabled to prevent overfitting +- The model uses dropout (0.3) for regularization +- 15-minute data is more manageable than 1-minute data for long historical periods + +## Using the Model in MQL5 + +### Expert Advisor + +An Expert Advisor (`EURUSD_M15_EA.mq5`) is provided in this directory. It uses the trained ONNX model for automated trading. + +**Setup:** +1. Copy `EURUSD_M15_model.onnx` to `MQL5/Files/` directory +2. Compile `EURUSD_M15_EA.mq5` in MetaEditor +3. The model will be embedded as a resource during compilation +4. Attach the EA to a EURUSD chart with M15 timeframe + +**Features:** +- Embedded ONNX model (no file path issues) +- Dynamic SL/TP based on prediction, confidence, and ATR +- Configurable prediction threshold and confidence filter +- Automatic position management + +**Input Parameters:** +- `InpLookback`: 60 bars (15 hours of history) +- `InpUsePredictedSLTP`: Use dynamic SL/TP based on prediction +- `InpPredictionThreshold`: Minimum prediction change to trade (default: 0.00005 = 0.005%) +- `InpMinConfidence`: Minimum confidence to trade (default: 0.1 = 10%) diff --git a/ai/eurusd1min/main.py b/ai/eurusd1min/main.py new file mode 100644 index 0000000..607fbc5 --- /dev/null +++ b/ai/eurusd1min/main.py @@ -0,0 +1,655 @@ +""" +ONNX Model Training Script for EURUSD 15-Minute Data +MetaTrader 5 + +This script trains a neural network model for EURUSD price prediction on 15-minute timeframe +and exports it to ONNX format. + +Usage: + python main.py +""" + +import os +import sys +from datetime import datetime, timedelta +import numpy as np +import pandas as pd +import MetaTrader5 as mt5 +import tensorflow as tf +from tensorflow import keras +from tensorflow.keras import layers +from sklearn.preprocessing import MinMaxScaler +from sklearn.model_selection import train_test_split +import tf2onnx +import onnx +from tqdm import tqdm +import pickle + + +class EURUSD15MinTrainer: + """ + Trainer class for creating ONNX models from EURUSD 15-minute MT5 data. + """ + + def __init__(self, symbol: str = "EURUSD", timeframe: int = mt5.TIMEFRAME_M15, + lookback: int = 60, prediction_horizon: int = 1): + """ + Initialize the trainer. + + Args: + symbol: Trading symbol (default: 'EURUSD') + timeframe: MT5 timeframe constant (default: M15) + lookback: Number of bars to look back for prediction (default: 60 = 15 hours) + prediction_horizon: Number of bars ahead to predict (default: 1) + """ + self.symbol = symbol + self.timeframe = timeframe + self.lookback = lookback + self.prediction_horizon = prediction_horizon + + self.scaler = MinMaxScaler() + self.model = None + + # Initialize MT5 + if not mt5.initialize(): + raise RuntimeError(f"MT5 initialization failed: {mt5.last_error()}") + + print(f"MT5 initialized. Connected to: {mt5.terminal_info().name}") + + # Check if symbol is available + symbol_info = mt5.symbol_info(self.symbol) + if symbol_info is None: + print(f"WARNING: Symbol {self.symbol} not found. Available symbols:") + symbols = mt5.symbols_get() + if symbols: + for i, sym in enumerate(symbols[:10]): # Show first 10 + print(f" {sym.name}") + raise ValueError(f"Symbol {self.symbol} not available in MT5") + + if not symbol_info.visible: + print(f"WARNING: Symbol {self.symbol} is not visible. Trying to enable...") + if not mt5.symbol_select(self.symbol, True): + raise ValueError(f"Failed to enable symbol {self.symbol}") + + def fetch_data(self, start_date: datetime, end_date: datetime) -> pd.DataFrame: + """ + Fetch historical data from MT5. + + Args: + start_date: Start date for data + end_date: End date for data + + Returns: + DataFrame with OHLCV data + """ + print(f"\nFetching {self.symbol} 15-minute data from {start_date.strftime('%Y-%m-%d')} to {end_date.strftime('%Y-%m-%d')}...") + print("Note: MT5 typically has 15-minute data available for longer periods than 1-minute data.") + + # First, try to find the actual date range with data + # Start from end_date and work backwards to find where data starts + print("\nFinding available data range...") + test_end = end_date + test_start = end_date - timedelta(days=365) # Check last year first + + test_rates = mt5.copy_rates_range(self.symbol, self.timeframe, test_start, test_end) + if test_rates is None or len(test_rates) == 0: + # Try even more recent + test_start = end_date - timedelta(days=30) + test_rates = mt5.copy_rates_range(self.symbol, self.timeframe, test_start, test_end) + + if test_rates is None or len(test_rates) == 0: + raise ValueError(f"No 15-minute data available for {self.symbol}. Make sure:") + print(" 1. Historical data is downloaded in MT5 (Tools → History Center)") + print(" 2. The symbol is available and enabled") + print(" 3. You have 15-minute data for the requested period") + + # Find actual data range by checking from end backwards + actual_start = end_date + chunk_size_days = 30 + + # Work backwards to find where data actually starts + print("Scanning backwards to find data availability...") + for days_back in range(0, 365*2, chunk_size_days): # Check up to 2 years back + check_start = end_date - timedelta(days=days_back + chunk_size_days) + check_end = end_date - timedelta(days=days_back) + test_rates = mt5.copy_rates_range(self.symbol, self.timeframe, check_start, check_end) + if test_rates is not None and len(test_rates) > 10: # More than just 1 bar + actual_start = check_start + print(f" Found data starting from: {actual_start.strftime('%Y-%m-%d')}") + break + + # Now fetch all available data + print(f"\nFetching available data from {actual_start.strftime('%Y-%m-%d')} to {end_date.strftime('%Y-%m-%d')}...") + all_rates = [] + current_start = actual_start + + # Fetch in chunks (1 month at a time for 15-minute data) + chunk_days = 30 # 1 month chunks for 15-minute data + + chunks_with_data = 0 + chunks_without_data = 0 + + while current_start < end_date: + chunk_end = min(current_start + timedelta(days=chunk_days), end_date) + + rates = mt5.copy_rates_range(self.symbol, self.timeframe, current_start, chunk_end) + + if rates is None or len(rates) == 0: + chunks_without_data += 1 + current_start = chunk_end + continue + + # Skip chunks with only 1 bar (likely invalid/placeholder data) + if len(rates) <= 1: + chunks_without_data += 1 + current_start = chunk_end + continue + + chunks_with_data += 1 + + # MT5 returns structured numpy array - convert properly + if isinstance(rates, np.ndarray) and rates.dtype.names: + # Structured array - convert each row to dict + for row in rates: + all_rates.append({name: row[name] for name in rates.dtype.names}) + else: + # Already a list or regular array + all_rates.extend(rates if isinstance(rates, list) else rates.tolist()) + + if chunks_with_data % 10 == 0: + print(f" Progress: {chunks_with_data} chunks with data, {len(all_rates)} total bars") + + current_start = chunk_end + + print(f"\nData fetch complete: {chunks_with_data} chunks with data, {chunks_without_data} chunks skipped") + + if len(all_rates) == 0: + raise ValueError(f"No data available for {self.symbol} in the specified date range") + + # Convert to DataFrame + df = pd.DataFrame(all_rates) + + # MT5 returns 'time' field - convert from Unix timestamp to datetime + if 'time' in df.columns: + df['time'] = pd.to_datetime(df['time'], unit='s') + df.set_index('time', inplace=True) + else: + # Debug: print available columns + print(f"Available columns: {df.columns.tolist()}") + print(f"First row sample: {df.iloc[0] if len(df) > 0 else 'Empty'}") + raise ValueError(f"Could not find 'time' column in MT5 data. Available columns: {df.columns.tolist()}") + + # Remove duplicates + df = df[~df.index.duplicated(keep='first')] + df = df.sort_index() + + print(f"\nTotal fetched: {len(df)} bars") + if len(df) > 0: + print(f"Date range: {df.index[0]} to {df.index[-1]}") + print(f"Timeframe: {df.index[1] - df.index[0] if len(df) > 1 else 'N/A'}") + else: + raise ValueError("DataFrame is empty after processing") + + return df + + def prepare_features(self, df: pd.DataFrame) -> pd.DataFrame: + """ + Prepare features for training. + + Args: + df: Raw OHLCV data + + Returns: + DataFrame with features + """ + print("\nPreparing features...") + + feature_df = df[['open', 'high', 'low', 'close', 'tick_volume']].copy() + + # Add technical indicators as features + print(" Calculating RSI...") + feature_df['rsi'] = self._calculate_rsi(df['close'], period=14) + + print(" Calculating EMAs...") + feature_df['ema_20'] = df['close'].ewm(span=20, adjust=False).mean() + feature_df['ema_50'] = df['close'].ewm(span=50, adjust=False).mean() + + print(" Calculating ATR...") + feature_df['atr'] = self._calculate_atr(df, period=14) + + # Price changes + feature_df['price_change'] = df['close'].pct_change() + feature_df['high_low_ratio'] = df['high'] / df['low'] + + # Volume features + feature_df['volume_ma'] = df['tick_volume'].rolling(window=20).mean() + feature_df['volume_ratio'] = df['tick_volume'] / feature_df['volume_ma'] + + # Drop NaN values + feature_df = feature_df.dropna() + + print(f" Features prepared: {len(feature_df)} samples, {len(feature_df.columns)} features") + print(f" Features: {list(feature_df.columns)}") + + return feature_df + + def _calculate_rsi(self, prices: pd.Series, period: int = 14) -> pd.Series: + """Calculate RSI indicator.""" + delta = prices.diff() + gain = (delta.where(delta > 0, 0)).rolling(window=period).mean() + loss = (-delta.where(delta < 0, 0)).rolling(window=period).mean() + rs = gain / loss + rsi = 100 - (100 / (1 + rs)) + return rsi + + def _calculate_atr(self, df: pd.DataFrame, period: int = 14) -> pd.Series: + """Calculate ATR indicator.""" + high_low = df['high'] - df['low'] + high_close = np.abs(df['high'] - df['close'].shift()) + low_close = np.abs(df['low'] - df['close'].shift()) + tr = pd.concat([high_low, high_close, low_close], axis=1).max(axis=1) + atr = tr.rolling(window=period).mean() + return atr + + def create_sequences(self, data: np.ndarray, target: np.ndarray) -> tuple: + """ + Create sequences for LSTM/RNN training. + + Args: + data: Feature data + target: Target values (price_change, sl_atr, tp_atr) - shape (n_samples, 3) + + Returns: + Tuple of (X, y) sequences + """ + print("\nCreating sequences...") + X, y = [], [] + + for i in tqdm(range(self.lookback, len(data) - self.prediction_horizon + 1), desc="Creating sequences"): + X.append(data[i - self.lookback:i]) + # Target is already aligned with data index + y.append(target[i]) + + X = np.array(X) + y = np.array(y) + + print(f" Sequences created: X shape {X.shape}, y shape {y.shape}") + + return X, y + + def build_model(self, input_shape: tuple) -> keras.Model: + """ + Build the neural network model with multi-output (price change, SL, TP). + + Args: + input_shape: Shape of input data (lookback, features) + + Returns: + Compiled Keras model + """ + print(f"\nBuilding multi-output model with input shape: {input_shape}") + + # Shared LSTM layers + inputs = layers.Input(shape=input_shape) + x = layers.LSTM(128, return_sequences=True)(inputs) + x = layers.Dropout(0.3)(x) + x = layers.LSTM(64, return_sequences=True)(x) + x = layers.Dropout(0.3)(x) + x = layers.LSTM(32)(x) + x = layers.Dropout(0.3)(x) + + # Shared dense layers + shared = layers.Dense(32, activation='relu')(x) + shared = layers.Dense(16, activation='relu')(shared) + + # Separate outputs + # Output 1: Price change percentage + price_change = layers.Dense(8, activation='relu')(shared) + price_change = layers.Dense(1, name='price_change')(price_change) + + # Output 2: Stop Loss (ATR multiples) + sl_output = layers.Dense(8, activation='relu')(shared) + sl_output = layers.Dense(1, activation='relu', name='sl_atr')(sl_output) # ReLU to ensure positive + + # Output 3: Take Profit (ATR multiples) + tp_output = layers.Dense(8, activation='relu')(shared) + tp_output = layers.Dense(1, activation='relu', name='tp_atr')(tp_output) # ReLU to ensure positive + + model = keras.Model(inputs=inputs, outputs=[price_change, sl_output, tp_output]) + + # Compile with separate losses and metrics for each output + model.compile( + optimizer=keras.optimizers.Adam(learning_rate=0.0005), + loss={ + 'price_change': 'mse', + 'sl_atr': 'mse', + 'tp_atr': 'mse' + }, + loss_weights={ + 'price_change': 1.0, + 'sl_atr': 0.5, # Lower weight for SL/TP + 'tp_atr': 0.5 + }, + metrics={ + 'price_change': ['mae'], + 'sl_atr': ['mae'], + 'tp_atr': ['mae'] + } + ) + + print(f" Model parameters: {model.count_params():,}") + model.summary() + + return model + + def train(self, start_date: datetime, end_date: datetime, + epochs: int = 50, batch_size: int = 32, + validation_split: float = 0.2, verbose: int = 1): + """ + Train the model. + + Args: + start_date: Start date for training data + end_date: End date for training data + epochs: Number of training epochs + batch_size: Batch size for training + validation_split: Fraction of data to use for validation + verbose: Verbosity level + """ + # Fetch data + df = self.fetch_data(start_date, end_date) + feature_df = self.prepare_features(df) + + # Prepare targets: price change, optimal SL, and optimal TP + # Calculate future price change and optimal SL/TP by looking ahead + close_prices = feature_df['close'].values + high_prices = feature_df['high'].values + low_prices = feature_df['low'].values + atr_values = feature_df['atr'].values + + # Look ahead window for calculating optimal SL/TP (e.g., 20 bars = 5 hours for M15) + look_ahead_bars = 20 + + target_price_change = [] + target_sl = [] # SL in ATR multiples + target_tp = [] # TP in ATR multiples + + for i in range(len(close_prices)): + if i + self.prediction_horizon < len(close_prices): + current_price = close_prices[i] + current_atr = atr_values[i] if atr_values[i] > 0 else current_price * 0.001 + + # Calculate price change + future_price = close_prices[i + self.prediction_horizon] + price_change_pct = (future_price - current_price) / current_price if current_price > 0 else 0.0 + + # Calculate optimal SL/TP by looking ahead + # For BUY signals (positive price change expected) + if price_change_pct > 0: + # Look ahead to find maximum adverse and favorable excursions + max_adverse = 0.0 # Maximum price drop (SL would be hit) + max_favorable = 0.0 # Maximum price rise (TP could be set) + + for j in range(i + 1, min(i + look_ahead_bars + 1, len(close_prices))): + # Maximum adverse: lowest low below entry + adverse_move = (current_price - low_prices[j]) / current_price + max_adverse = max(max_adverse, adverse_move) + + # Maximum favorable: highest high above entry + favorable_move = (high_prices[j] - current_price) / current_price + max_favorable = max(max_favorable, favorable_move) + + # Optimal SL: Use 1.2x of maximum adverse excursion (slightly wider to avoid noise) + # Convert to ATR multiples + optimal_sl_pct = max_adverse * 1.2 if max_adverse > 0 else 0.005 # Default 0.5% if no adverse move + optimal_sl_atr = optimal_sl_pct * current_price / current_atr if current_atr > 0 else 1.5 + optimal_sl_atr = max(0.5, min(optimal_sl_atr, 5.0)) # Clamp between 0.5 and 5.0 ATR + + # Optimal TP: Use 0.6x of maximum favorable excursion (conservative) + # Ensure minimum 1.5x risk/reward ratio + optimal_tp_pct = max_favorable * 0.6 if max_favorable > 0 else optimal_sl_pct * 1.5 + optimal_tp_pct = max(optimal_sl_pct * 1.5, optimal_tp_pct) # At least 1.5x SL + optimal_tp_atr = optimal_tp_pct * current_price / current_atr if current_atr > 0 else 2.0 + optimal_tp_atr = max(1.0, min(optimal_tp_atr, 10.0)) # Clamp between 1.0 and 10.0 ATR + + # For SELL signals (negative price change expected) + else: + max_adverse = 0.0 # Maximum price rise (SL would be hit for sell) + max_favorable = 0.0 # Maximum price drop (TP could be set) + + for j in range(i + 1, min(i + look_ahead_bars + 1, len(close_prices))): + # Maximum adverse: highest high above entry + adverse_move = (high_prices[j] - current_price) / current_price + max_adverse = max(max_adverse, adverse_move) + + # Maximum favorable: lowest low below entry + favorable_move = (current_price - low_prices[j]) / current_price + max_favorable = max(max_favorable, favorable_move) + + # Optimal SL: Use 1.2x of maximum adverse excursion + optimal_sl_pct = max_adverse * 1.2 if max_adverse > 0 else 0.005 + optimal_sl_atr = optimal_sl_pct * current_price / current_atr if current_atr > 0 else 1.5 + optimal_sl_atr = max(0.5, min(optimal_sl_atr, 5.0)) + + # Optimal TP: Use 0.6x of maximum favorable excursion + optimal_tp_pct = max_favorable * 0.6 if max_favorable > 0 else optimal_sl_pct * 1.5 + optimal_tp_pct = max(optimal_sl_pct * 1.5, optimal_tp_pct) + optimal_tp_atr = optimal_tp_pct * current_price / current_atr if current_atr > 0 else 2.0 + optimal_tp_atr = max(1.0, min(optimal_tp_atr, 10.0)) + + target_price_change.append(price_change_pct) + target_sl.append(optimal_sl_atr) + target_tp.append(optimal_tp_atr) + else: + target_price_change.append(0.0) + target_sl.append(1.5) # Default SL + target_tp.append(2.0) # Default TP + + # Create DataFrame with multiple targets + target_df = pd.DataFrame({ + 'price_change': target_price_change, + 'sl_atr': target_sl, + 'tp_atr': target_tp + }, index=feature_df.index) + + # Align targets with features + valid_idx = ~(target_df.isna().any(axis=1) | feature_df.isna().any(axis=1)) + feature_df = feature_df[valid_idx] + target_df = target_df[valid_idx] + + print(f"\nValid samples after alignment: {len(feature_df)}") + print(f"Target statistics:") + print(f" Price Change: mean={target_df['price_change'].mean():.6f}, std={target_df['price_change'].std():.6f}") + print(f" SL (ATR): mean={target_df['sl_atr'].mean():.2f}, std={target_df['sl_atr'].std():.2f}") + print(f" TP (ATR): mean={target_df['tp_atr'].mean():.2f}, std={target_df['tp_atr'].std():.2f}") + + # Normalize features + print("\nNormalizing features...") + feature_array = self.scaler.fit_transform(feature_df.values) + + # Prepare multi-output target + target_array = target_df[['price_change', 'sl_atr', 'tp_atr']].values + + # Create sequences + X, y = self.create_sequences(feature_array, target_array) + + # Split into train and validation + split_idx = int(len(X) * (1 - validation_split)) + X_train, X_val = X[:split_idx], X[split_idx:] + y_train, y_val = y[:split_idx], y[split_idx:] + + print(f"\nTrain set: {len(X_train)} samples") + print(f"Validation set: {len(X_val)} samples") + + # Build model + input_shape = (self.lookback, feature_array.shape[1]) + self.model = self.build_model(input_shape) + + # Prepare multi-output targets for training + y_train_dict = { + 'price_change': y_train[:, 0], + 'sl_atr': y_train[:, 1], + 'tp_atr': y_train[:, 2] + } + y_val_dict = { + 'price_change': y_val[:, 0], + 'sl_atr': y_val[:, 1], + 'tp_atr': y_val[:, 2] + } + + # Train model + print(f"\nTraining model for {epochs} epochs...") + history = self.model.fit( + X_train, y_train_dict, + batch_size=batch_size, + epochs=epochs, + validation_data=(X_val, y_val_dict), + verbose=verbose, + callbacks=[ + keras.callbacks.EarlyStopping( + monitor='val_loss', + patience=10, + restore_best_weights=True + ), + keras.callbacks.ReduceLROnPlateau( + monitor='val_loss', + factor=0.5, + patience=5, + min_lr=1e-7 + ) + ] + ) + + # Evaluate + print("\nEvaluating model...") + train_eval = self.model.evaluate(X_train, y_train_dict, verbose=0) + val_eval = self.model.evaluate(X_val, y_val_dict, verbose=0) + + # Multi-output model returns list of losses/metrics + print(f"Train - Total Loss: {train_eval[0]:.6f}") + print(f" Price Change Loss: {train_eval[1]:.6f}, MAE: {train_eval[4]:.6f}") + print(f" SL Loss: {train_eval[2]:.6f}, MAE: {train_eval[5]:.6f}") + print(f" TP Loss: {train_eval[3]:.6f}, MAE: {train_eval[6]:.6f}") + print(f"Val - Total Loss: {val_eval[0]:.6f}") + print(f" Price Change Loss: {val_eval[1]:.6f}, MAE: {val_eval[4]:.6f}") + print(f" SL Loss: {val_eval[2]:.6f}, MAE: {val_eval[5]:.6f}") + print(f" TP Loss: {val_eval[3]:.6f}, MAE: {val_eval[6]:.6f}") + + return history + + def export_to_onnx(self, output_path: str): + """ + Export the trained model to ONNX format. + + Args: + output_path: Path to save ONNX model + """ + if self.model is None: + raise ValueError("Model must be trained before exporting") + + print(f"\nExporting model to ONNX format: {output_path}") + + # Get number of features + num_features = self.model.input_shape[2] if len(self.model.input_shape) > 2 else self.model.input_shape[1] + + print(f"Using {num_features} features for ONNX export") + + # Create input signature + input_shape = (None, self.lookback, num_features) + spec = (tf.TensorSpec(input_shape, tf.float32, name="input"),) + + # Fix output_names for Sequential model + if not hasattr(self.model, 'output_names'): + if hasattr(self.model, 'outputs') and self.model.outputs: + self.model.output_names = [f'output_{i}' for i in range(len(self.model.outputs))] + else: + self.model.output_names = ['output'] + + # Convert to ONNX + onnx_model, _ = tf2onnx.convert.from_keras( + self.model, + input_signature=spec, + opset=13 + ) + + # Save ONNX model + os.makedirs(os.path.dirname(output_path), exist_ok=True) + onnx.save_model(onnx_model, output_path) + + print(f"ONNX model saved to: {output_path}") + + # Save scaler + scaler_path = output_path.replace('.onnx', '_scaler.pkl') + with open(scaler_path, 'wb') as f: + pickle.dump(self.scaler, f) + print(f"Scaler saved to: {scaler_path}") + + def cleanup(self): + """Clean up MT5 connection.""" + mt5.shutdown() + + +def main(): + """Main function.""" + print("="*60) + print("EURUSD 15-Minute ONNX Model Training") + print("="*60) + + # Training parameters + symbol = "EURUSD" + timeframe = mt5.TIMEFRAME_M15 + lookback = 60 # 60 bars = 15 hours of history + epochs = 50 + batch_size = 64 + + # Date range: 1990 to 2026 + start_date = datetime(1990, 1, 1) + end_date = datetime(2026, 1, 1) + + # Output paths + output_dir = "models" + os.makedirs(output_dir, exist_ok=True) + model_path = os.path.join(output_dir, f"{symbol}_M15_model.onnx") + + trainer = None + try: + # Create trainer + trainer = EURUSD15MinTrainer( + symbol=symbol, + timeframe=timeframe, + lookback=lookback + ) + + # Train model + history = trainer.train( + start_date=start_date, + end_date=end_date, + epochs=epochs, + batch_size=batch_size, + validation_split=0.2, + verbose=1 + ) + + # Export to ONNX + trainer.export_to_onnx(model_path) + + print("\n" + "="*60) + print("Training completed successfully!") + print("="*60) + print(f"Model saved to: {model_path}") + + except Exception as e: + print(f"\nERROR: Training failed: {e}") + import traceback + traceback.print_exc() + return 1 + + finally: + if trainer: + trainer.cleanup() + + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/ai/eurusd1min/models/EURUSD_M15_model.onnx b/ai/eurusd1min/models/EURUSD_M15_model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..a1e9cd24001b0a239fbd9d7511b03cc264bbb073 GIT binary patch literal 574278 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%0Df1-_)kmQ7|rx4@O;=A#!Y-d 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⩔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�GhCc4#P`Q}m5>lsRC`woGvX*uKNAAq(~ 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≫N^5#uGXPz? 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

G; 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 Market Watch` + +2. **Show All Symbols** + - Right-click in the Market Watch window + - Select `Show All` or `Symbols` + - This shows all available symbols from your broker + +3. **Search for Your Symbols** + - Use the search box in the Market Watch window + - Search for: "AAPL", "MSFT", "NVDA", "TSLA", "BTCUSD", "XAUUSD" + +4. **Note the Exact Symbol Name** + - The symbol name shown in Market Watch is what you need to use + - Common formats for Pepperstone US: + - Stocks: `AAPL.US`, `MSFT.US`, `NVDA.US`, `TSLA.US` + - Or: `NASDAQ:AAPL`, `NASDAQ:MSFT`, etc. + - Or: Just `AAPL`, `MSFT`, etc. (if available) + +5. **Add to Market Watch** + - Double-click the symbol to add it to your Market Watch + - Or right-click and select `Show` + +6. **Update EA Inputs** + - Open the EA inputs in MetaTrader 5 + - Update each symbol parameter with the exact name from Market Watch + +## Common Pepperstone US Symbol Formats + +### US Stocks: +- **Apple**: `AAPL.US` or `NASDAQ:AAPL` or `AAPL` +- **Microsoft**: `MSFT.US` or `NASDAQ:MSFT` or `MSFT` +- **NVIDIA**: `NVDA.US` or `NASDAQ:NVDA` or `NVDA` +- **Tesla**: `TSLA.US` or `NASDAQ:TSLA` or `TSLA` + +### Cryptocurrencies: +- **Bitcoin**: `BTCUSD` or `BTC/USD` or `BTCUSD.c` + +### Precious Metals: +- **Gold**: `XAUUSD` or `GOLD` or `XAU/USD` + +## Important Notes: + +1. **Symbol Names are Case-Sensitive**: Use exact capitalization +2. **Add Symbols to Market Watch**: Symbols must be in Market Watch for the EA to access them +3. **Check Trading Hours**: US stocks trade during US market hours (9:30 AM - 4:00 PM ET) +4. **CFD vs Stock**: Pepperstone offers CFDs on stocks, not actual stocks +5. **Spread**: Check the spread for each symbol - some may have wider spreads + +## Troubleshooting: + +### If Symbol Not Found: +1. Check if you're connected to Pepperstone US server +2. Verify your account type supports the symbol +3. Contact Pepperstone support for symbol availability +4. Check if symbol requires special account permissions + +### If EA Shows "Symbol Not Available": +1. Make sure symbol is added to Market Watch +2. Verify symbol name matches exactly (including dots, colons, etc.) +3. Check broker connection status +4. Try different symbol format variations + +## Testing Symbols: + +You can test if a symbol works by: +1. Opening a chart with that symbol +2. If chart opens successfully, the symbol name is correct +3. Use that exact symbol name in the EA inputs diff --git a/frontline/MQL5/_united/PerformanceEvaluator.mqh b/frontline/MQL5/_united/PerformanceEvaluator.mqh new file mode 100644 index 0000000..991f603 --- /dev/null +++ b/frontline/MQL5/_united/PerformanceEvaluator.mqh @@ -0,0 +1,607 @@ +//+------------------------------------------------------------------+ +//| PerformanceEvaluator.mqh | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" + +//+------------------------------------------------------------------+ +//| Performance Metrics Structure | +//+------------------------------------------------------------------+ +struct StrategyPerformance { + string strategyName; + string symbol; // Store symbol to determine if it's a stock + int magicNumber; + double initialLotSize; + double currentLotSize; + double quarterProfit; + double quarterTrades; + double quarterWins; + double quarterLosses; + double maxDrawdown; + double winRate; + datetime quarterStart; + datetime quarterEnd; + bool isActive; + bool inPenaltyMode; // True if strategy is in penalty (worst performer) + double lotSizeBeforePenalty; // Store lot size before penalty + datetime penaltyStartTime; // When penalty started +}; + +//+------------------------------------------------------------------+ +//| Global Performance Tracking | +//+------------------------------------------------------------------+ +StrategyPerformance strategyPerformances[]; +int totalStrategies = 0; +datetime lastMonthCheck = 0; +datetime currentMonthStart = 0; +datetime currentMonthEnd = 0; + +//+------------------------------------------------------------------+ +//| Performance Adjustment Parameters | +//+------------------------------------------------------------------+ +input group "=== Performance Evaluation Settings ===" +input bool PE_EnableAutoAdjustment = true; // Enable automatic lot size adjustment +input double PE_LotSizeIncreasePercent = 10.0; // % increase for top-ranked strategies +input double PE_LotSizeDecreasePercent = 10.0; // % decrease for bottom-ranked strategies +input double PE_MinLotSize = 0.01; // Minimum lot size for forex/crypto +input double PE_MinLotSizeStocks = 5.0; // Minimum lot size for stocks (5-10 range) +input double PE_MaxLotSize = 100.0; // Maximum lot size after adjustment +input int PE_TopPerformersCount = 3; // Number of top strategies to increase lot size +input int PE_BottomPerformersCount = 3; // Number of bottom strategies to decrease lot size +input bool PE_UseWinRateWeight = true; // Consider win rate in ranking (50% profit, 50% win rate) +input bool PE_EnableBlitzPlay = true; // Enable blitz play: worst performer gets minimum lot size penalty +input bool PE_EnableLogging = true; // Enable performance logging + +//+------------------------------------------------------------------+ +//| Initialize Performance Tracking | +//+------------------------------------------------------------------+ +void InitPerformanceTracking() +{ + // Calculate current month dates + MqlDateTime dt; + TimeToStruct(TimeCurrent(), dt); + + // Determine month start (first day of current month) + dt.day = 1; + dt.hour = 0; + dt.min = 0; + dt.sec = 0; + currentMonthStart = StructToTime(dt); + + // Calculate month end (first day of next month - 1 second) + dt.mon += 1; + if(dt.mon > 12) + { + dt.mon = 1; + dt.year++; + } + currentMonthEnd = StructToTime(dt) - 1; // End of last day of month + + lastMonthCheck = TimeCurrent(); + + if(PE_EnableLogging) + { + Print("Performance Evaluator: Initialized"); + Print("Current Month Start: ", TimeToString(currentMonthStart)); + Print("Current Month End: ", TimeToString(currentMonthEnd)); + } +} + +//+------------------------------------------------------------------+ +//| Check if Symbol is a Stock | +//+------------------------------------------------------------------+ +bool IsStockSymbol(string symbol) +{ + // Check if symbol contains common stock indicators + if(StringFind(symbol, ".US") >= 0) return true; + if(StringFind(symbol, "NASDAQ:") >= 0) return true; + if(StringFind(symbol, "NYSE:") >= 0) return true; + + // Note: Symbol category check removed to avoid enum conversion issues + // String-based checks (.US, NASDAQ:, NYSE:, common tickers) are sufficient + + // Common stock tickers (without .US suffix) + string commonStocks[] = {"AAPL", "MSFT", "NVDA", "TSLA", "GOOGL", "AMZN", "META", "NFLX"}; + for(int i = 0; i < ArraySize(commonStocks); i++) + { + if(StringFind(symbol, commonStocks[i]) == 0) return true; + } + + return false; +} + +//+------------------------------------------------------------------+ +//| Get Minimum Lot Size for Symbol | +//+------------------------------------------------------------------+ +double GetMinLotSizeForSymbol(string symbol) +{ + if(IsStockSymbol(symbol)) + return PE_MinLotSizeStocks; + else + return PE_MinLotSize; +} + +//+------------------------------------------------------------------+ +//| Register Strategy for Performance Tracking | +//+------------------------------------------------------------------+ +void RegisterStrategy(string strategyName, int magicNumber, double initialLotSize, string symbol = "") +{ + // Check if strategy already registered + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].strategyName == strategyName && + strategyPerformances[i].magicNumber == magicNumber) + { + if(PE_EnableLogging) + Print("Performance Evaluator: Strategy '", strategyName, "' already registered"); + return; + } + } + + // Add new strategy + int newSize = ArraySize(strategyPerformances) + 1; + ArrayResize(strategyPerformances, newSize); + + strategyPerformances[newSize - 1].strategyName = strategyName; + strategyPerformances[newSize - 1].symbol = symbol; + strategyPerformances[newSize - 1].magicNumber = magicNumber; + strategyPerformances[newSize - 1].initialLotSize = initialLotSize; + // Start with minimum lot size for safety (symbol-specific minimum) + double minLot = GetMinLotSizeForSymbol(symbol); + strategyPerformances[newSize - 1].currentLotSize = minLot; + strategyPerformances[newSize - 1].quarterProfit = 0.0; + strategyPerformances[newSize - 1].quarterTrades = 0; + strategyPerformances[newSize - 1].quarterWins = 0; + strategyPerformances[newSize - 1].quarterLosses = 0; + strategyPerformances[newSize - 1].maxDrawdown = 0.0; + strategyPerformances[newSize - 1].winRate = 0.0; + strategyPerformances[newSize - 1].quarterStart = currentMonthStart; + strategyPerformances[newSize - 1].quarterEnd = currentMonthEnd; + strategyPerformances[newSize - 1].isActive = true; + strategyPerformances[newSize - 1].inPenaltyMode = false; + strategyPerformances[newSize - 1].lotSizeBeforePenalty = initialLotSize; + strategyPerformances[newSize - 1].penaltyStartTime = 0; + + totalStrategies = newSize; + + if(PE_EnableLogging) + Print("Performance Evaluator: Registered strategy '", strategyName, + "' (Magic: ", magicNumber, ", Initial Lot: ", initialLotSize, ")"); +} + +//+------------------------------------------------------------------+ +//| Update Strategy Performance Metrics | +//+------------------------------------------------------------------+ +void UpdateStrategyPerformance(string strategyName, int magicNumber) +{ + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].strategyName == strategyName && + strategyPerformances[i].magicNumber == magicNumber && + strategyPerformances[i].isActive) + { + // Calculate performance for current quarter + double totalProfit = 0.0; + int totalTrades = 0; + int wins = 0; + int losses = 0; + double maxDD = 0.0; + double peakBalance = 0.0; + + // Scan all closed deals in current quarter + datetime quarterStart = strategyPerformances[i].quarterStart; + datetime quarterEnd = strategyPerformances[i].quarterEnd; + + // Select history for the quarter + if(HistorySelect(quarterStart, quarterEnd)) + { + int totalDeals = HistoryDealsTotal(); + for(int j = 0; j < totalDeals; j++) + { + ulong ticket = HistoryDealGetTicket(j); + if(ticket > 0) + { + long dealMagic = HistoryDealGetInteger(ticket, DEAL_MAGIC); + if(dealMagic == magicNumber) + { + double profit = HistoryDealGetDouble(ticket, DEAL_PROFIT); + double swap = HistoryDealGetDouble(ticket, DEAL_SWAP); + double commission = HistoryDealGetDouble(ticket, DEAL_COMMISSION); + double totalDealProfit = profit + swap + commission; + + totalProfit += totalDealProfit; + totalTrades++; + + if(totalDealProfit > 0) + wins++; + else if(totalDealProfit < 0) + losses++; + } + } + } + } + + // Calculate win rate + double winRate = 0.0; + if(totalTrades > 0) + winRate = (double)wins / (double)totalTrades * 100.0; + + // Update metrics + strategyPerformances[i].quarterProfit = totalProfit; + strategyPerformances[i].quarterTrades = totalTrades; + strategyPerformances[i].quarterWins = wins; + strategyPerformances[i].quarterLosses = losses; + strategyPerformances[i].winRate = winRate; + + break; + } + } +} + +//+------------------------------------------------------------------+ +//| Strategy Ranking Structure | +//+------------------------------------------------------------------+ +struct StrategyRank { + int index; + double score; +}; + +//+------------------------------------------------------------------+ +//| Calculate Strategy Score for Ranking | +//+------------------------------------------------------------------+ +double CalculateStrategyScore(int strategyIndex) +{ + double profit = strategyPerformances[strategyIndex].quarterProfit; + double winRate = strategyPerformances[strategyIndex].winRate; + double trades = strategyPerformances[strategyIndex].quarterTrades; + + // Normalize profit (scale to 0-100 range, assuming max profit of $1000) + double normalizedProfit = MathMin(profit / 10.0, 100.0); + if(profit < 0) normalizedProfit = profit / 5.0; // Penalize losses more + + // Calculate score + double score = 0.0; + if(PE_UseWinRateWeight) + { + // 50% profit, 50% win rate (if enough trades) + if(trades >= 5) + score = (normalizedProfit * 0.5) + (winRate * 0.5); + else + score = normalizedProfit; // Not enough trades, use profit only + } + else + { + // Profit only + score = normalizedProfit; + } + + return score; +} + +//+------------------------------------------------------------------+ +//| Check if Month Ended and Evaluate Performance | +//+------------------------------------------------------------------+ +void CheckMonthEnd() +{ + datetime now = TimeCurrent(); + + // Check if we've entered a new month + if(now >= currentMonthEnd) + { + if(PE_EnableLogging) + Print("Performance Evaluator: Month ended. Evaluating and ranking strategies..."); + + // Update performance metrics for all strategies + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + UpdateStrategyPerformance(strategyPerformances[i].strategyName, + strategyPerformances[i].magicNumber); + } + } + + // Rank strategies + int activeCount = 0; + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + activeCount++; + } + + if(activeCount > 0) + { + // Create ranking array + StrategyRank ranks[]; + ArrayResize(ranks, activeCount); + int rankIndex = 0; + + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + ranks[rankIndex].index = i; + ranks[rankIndex].score = CalculateStrategyScore(i); + rankIndex++; + } + } + + // Sort by score (descending - highest score first) + for(int i = 0; i < activeCount - 1; i++) + { + for(int j = i + 1; j < activeCount; j++) + { + if(ranks[j].score > ranks[i].score) + { + StrategyRank temp = ranks[i]; + ranks[i] = ranks[j]; + ranks[j] = temp; + } + } + } + + // Adjust lot sizes based on ranking + if(PE_EnableAutoAdjustment) + { + // Increase top performers (skip if in penalty mode) + int topCount = MathMin(PE_TopPerformersCount, activeCount); + for(int i = 0; i < topCount; i++) + { + int strategyIdx = ranks[i].index; + + // Skip if strategy is in penalty mode + if(strategyPerformances[strategyIdx].inPenaltyMode) + continue; + + double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; + double newLotSize = oldLotSize * (1.0 + PE_LotSizeIncreasePercent / 100.0); + + if(newLotSize > PE_MaxLotSize) + newLotSize = PE_MaxLotSize; + + strategyPerformances[strategyIdx].currentLotSize = newLotSize; + + if(PE_EnableLogging) + Print("Performance Evaluator: Rank #", (i+1), " - Increasing '", + strategyPerformances[strategyIdx].strategyName, + "' lot size from ", oldLotSize, " to ", newLotSize, + " (Score: ", DoubleToString(ranks[i].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), + ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); + } + + // Decrease bottom performers (skip worst one if blitz play is enabled) + int bottomCount = MathMin(PE_BottomPerformersCount, activeCount); + int startIdx = activeCount - bottomCount; + + // If blitz play is enabled, skip the worst performer (it will get minimum penalty) + if(PE_EnableBlitzPlay && activeCount > 0) + startIdx = activeCount - bottomCount + 1; + + for(int i = startIdx; i < activeCount; i++) + { + int strategyIdx = ranks[i].index; + + // Skip if strategy is in penalty mode + if(strategyPerformances[strategyIdx].inPenaltyMode) + continue; + + double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; + double newLotSize = oldLotSize * (1.0 - PE_LotSizeDecreasePercent / 100.0); + + // Use symbol-specific minimum lot size + double minLot = GetMinLotSizeForSymbol(strategyPerformances[strategyIdx].symbol); + if(newLotSize < minLot) + newLotSize = minLot; + + strategyPerformances[strategyIdx].currentLotSize = newLotSize; + + if(PE_EnableLogging) + Print("Performance Evaluator: Rank #", (i+1), " - Decreasing '", + strategyPerformances[strategyIdx].strategyName, + "' lot size from ", oldLotSize, " to ", newLotSize, + " (Score: ", DoubleToString(ranks[i].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), + ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); + } + } + + // Blitz Play: Apply penalty to worst performer + if(PE_EnableBlitzPlay && activeCount > 0) + { + // Find worst performer (last in ranking) + int worstIdx = ranks[activeCount - 1].index; + + // Remove penalty from previous worst performer (if any) + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) + { + // Check if penalty period has passed (one month) + if(now - strategyPerformances[i].penaltyStartTime >= 2592000) // ~30 days + { + // Restore lot size to before penalty + strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; + strategyPerformances[i].inPenaltyMode = false; + strategyPerformances[i].penaltyStartTime = 0; + + if(PE_EnableLogging) + Print("Blitz Play: Penalty removed from '", strategyPerformances[i].strategyName, + "'. Lot size restored to ", strategyPerformances[i].currentLotSize); + } + } + } + + // Apply penalty to new worst performer + if(!strategyPerformances[worstIdx].inPenaltyMode) + { + strategyPerformances[worstIdx].lotSizeBeforePenalty = strategyPerformances[worstIdx].currentLotSize; + // Use symbol-specific minimum lot size + double minLot = GetMinLotSizeForSymbol(strategyPerformances[worstIdx].symbol); + strategyPerformances[worstIdx].currentLotSize = minLot; + strategyPerformances[worstIdx].inPenaltyMode = true; + strategyPerformances[worstIdx].penaltyStartTime = now; + + if(PE_EnableLogging) + Print("Blitz Play: WORST PERFORMER - '", strategyPerformances[worstIdx].strategyName, + "' penalized! Lot size reduced from ", strategyPerformances[worstIdx].lotSizeBeforePenalty, + " to minimum ", minLot, " (Score: ", DoubleToString(ranks[activeCount - 1].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[worstIdx].quarterProfit, 2), ")"); + } + } + + // Log performance report + if(PE_EnableLogging) + { + Print("=== Monthly Performance Ranking ==="); + for(int i = 0; i < activeCount; i++) + { + int strategyIdx = ranks[i].index; + Print("Rank #", (i+1), ": ", strategyPerformances[strategyIdx].strategyName, + " - Score: ", DoubleToString(ranks[i].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), + ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%", + ", Trades: ", (int)strategyPerformances[strategyIdx].quarterTrades, + ", Lot Size: ", DoubleToString(strategyPerformances[strategyIdx].currentLotSize, 2)); + } + Print("==================================="); + } + } + + // Reset month metrics for all strategies + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + strategyPerformances[i].quarterProfit = 0.0; + strategyPerformances[i].quarterTrades = 0; + strategyPerformances[i].quarterWins = 0; + strategyPerformances[i].quarterLosses = 0; + strategyPerformances[i].maxDrawdown = 0.0; + strategyPerformances[i].winRate = 0.0; + } + } + + // Update month dates + MqlDateTime dt; + TimeToStruct(now, dt); + + // First day of current month + dt.day = 1; + dt.hour = 0; + dt.min = 0; + dt.sec = 0; + currentMonthStart = StructToTime(dt); + + // First day of next month - 1 second + dt.mon += 1; + if(dt.mon > 12) + { + dt.mon = 1; + dt.year++; + } + currentMonthEnd = StructToTime(dt) - 1; + + // Update month dates for all strategies + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + strategyPerformances[i].quarterStart = currentMonthStart; + strategyPerformances[i].quarterEnd = currentMonthEnd; + } + + lastMonthCheck = now; + } +} + +//+------------------------------------------------------------------+ +//| Get Current Lot Size for Strategy | +//+------------------------------------------------------------------+ +double GetStrategyLotSize(string strategyName, int magicNumber) +{ + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].strategyName == strategyName && + strategyPerformances[i].magicNumber == magicNumber && + strategyPerformances[i].isActive) + { + return strategyPerformances[i].currentLotSize; + } + } + return 0.0; +} + +//+------------------------------------------------------------------+ +//| Process Performance Evaluation (call from OnTick) | +//+------------------------------------------------------------------+ +void ProcessPerformanceEvaluation() +{ + // Check if month ended + CheckMonthEnd(); + + // Check for penalty expiration (blitz play) + if(PE_EnableBlitzPlay) + { + datetime now = TimeCurrent(); + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) + { + // Check if penalty period has passed (one month = ~30 days) + if(now - strategyPerformances[i].penaltyStartTime >= 2592000) + { + // Restore lot size to before penalty + strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; + strategyPerformances[i].inPenaltyMode = false; + strategyPerformances[i].penaltyStartTime = 0; + + if(PE_EnableLogging) + Print("Blitz Play: Penalty expired for '", strategyPerformances[i].strategyName, + "'. Lot size restored to ", strategyPerformances[i].currentLotSize); + } + } + } + } + + // Update performance metrics periodically (every hour) + static datetime lastUpdate = 0; + if(TimeCurrent() - lastUpdate >= 3600) + { + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + UpdateStrategyPerformance(strategyPerformances[i].strategyName, + strategyPerformances[i].magicNumber); + } + } + lastUpdate = TimeCurrent(); + } +} + +//+------------------------------------------------------------------+ +//| Get Performance Summary | +//+------------------------------------------------------------------+ +string GetPerformanceSummary() +{ + string summary = "\n=== Performance Summary ===\n"; + summary += "Current Month: " + TimeToString(currentMonthStart) + " to " + TimeToString(currentMonthEnd) + "\n\n"; + + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + summary += strategyPerformances[i].strategyName + ":\n"; + summary += " Profit: $" + DoubleToString(strategyPerformances[i].quarterProfit, 2) + "\n"; + summary += " Trades: " + IntegerToString((int)strategyPerformances[i].quarterTrades) + "\n"; + summary += " Win Rate: " + DoubleToString(strategyPerformances[i].winRate, 2) + "%\n"; + summary += " Lot Size: " + DoubleToString(strategyPerformances[i].currentLotSize, 2) + "\n\n"; + } + } + + return summary; +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united/STRATEGY_CONFIGURATION.md b/frontline/MQL5/_united/STRATEGY_CONFIGURATION.md new file mode 100644 index 0000000..799c760 --- /dev/null +++ b/frontline/MQL5/_united/STRATEGY_CONFIGURATION.md @@ -0,0 +1,76 @@ +# United EA Strategy Configuration Summary + +## Strategy Symbols and Magic Numbers + +### Strategy 1: DarvasBox +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 135790 + +### Strategy 2: EMASlopeDistance +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 12350 + +### Strategy 3: RSICrossOverReversal +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 7 + +### Strategy 4: RSIMidPointHijack +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Numbers**: + - RSIFollow: 1001 + - RSIReverse: 1002 + - EMACross: 1003 + +### Strategy 5: RSI Scalping APPL (Apple) +- **Symbol**: AAPL (Apple stock) +- **Magic Number**: 20001 +- **Note**: Changed from "APPL" to "AAPL" (correct ticker symbol) + +### Strategy 6: RSI Scalping BTCUSD +- **Symbol**: BTCUSD (Bitcoin/USD) +- **Magic Number**: 123459123 + +### Strategy 7: RSI Scalping MSFT +- **Symbol**: MSFT (Microsoft stock) +- **Magic Number**: 20002 + +### Strategy 8: RSI Scalping NVDA +- **Symbol**: NVDA (NVIDIA stock) +- **Magic Number**: 20003 + +### Strategy 9: RSI Scalping TSLA +- **Symbol**: TSLA (Tesla stock) +- **Magic Number**: 125421321 + +### Strategy 10: RSI Scalping XAUUSD +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 129102315 + +## Important Notes + +1. **Stock Symbols**: Stock symbols (AAPL, MSFT, NVDA, TSLA) must be: + - Added to Market Watch in MetaTrader 5 + - Available from your broker + - Use the correct ticker symbol (e.g., "AAPL" not "APPL") + +2. **Magic Numbers**: All strategies have unique magic numbers to prevent interference: + - Each strategy can be identified by its magic number + - RSIMidPointHijack uses 3 magic numbers (one for each sub-strategy) + +3. **Symbol Configuration**: Each strategy trades on its own symbol: + - You can change symbols in the input parameters + - The EA will log warnings if a symbol is not available + - Strategies with unavailable symbols will be skipped (EA continues running) + +4. **RSI Scalping Strategies**: + - Each RSI Scalping variant trades on a different symbol + - They all use the same strategy logic but with different parameters + - Buy and sell signals are generated based on RSI levels for each symbol + +## Troubleshooting + +If stock symbols are not working: +1. Check if the symbol exists in your broker's symbol list +2. Add the symbol to Market Watch in MetaTrader 5 +3. Verify the symbol name matches your broker's naming convention +4. Some brokers use prefixes/suffixes (e.g., "NASDAQ:AAPL" or "AAPL.US") diff --git a/frontline/MQL5/_united/Strategies/DarvasBoxStrategy.mqh b/frontline/MQL5/_united/Strategies/DarvasBoxStrategy.mqh new file mode 100644 index 0000000..6c2d7d5 --- /dev/null +++ b/frontline/MQL5/_united/Strategies/DarvasBoxStrategy.mqh @@ -0,0 +1,300 @@ +//+------------------------------------------------------------------+ +//| DarvasBoxStrategy.mqh | +//+------------------------------------------------------------------+ + +bool InitDarvasBox(string symbol) +{ + dbData.symbol = symbol; + dbData.boxHigh = 0; + dbData.boxLow = 0; + dbData.boxFormed = false; + dbData.lastBoxTime = 0; + dbData.boxName = "DarvasBox_" + IntegerToString(DB_MagicNumber) + "_"; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("DarvasBox: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + dbData.point = SymbolInfoDouble(symbol, SYMBOL_POINT); + dbData.minStopLevel = SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL) * dbData.point; + + dbData.maHandle = iMA(symbol, DB_TrendTimeframe, DB_MA_Period, 0, DB_MA_Method, DB_MA_Price); + dbData.volumeHandle = iVolumes(symbol, PERIOD_CURRENT, VOLUME_TICK); + + if(dbData.maHandle == INVALID_HANDLE || dbData.volumeHandle == INVALID_HANDLE) + { + Print("DarvasBox: Error creating indicators for '", symbol, "'"); + return false; + } + + dbData.trade.SetDeviationInPoints(10); + dbData.trade.SetTypeFilling(ORDER_FILLING_IOC); + dbData.trade.SetAsyncMode(false); + dbData.trade.SetExpertMagicNumber(DB_MagicNumber); + + ObjectsDeleteAll(0, dbData.boxName); + dbData.isInitialized = true; + Print("DarvasBox: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitDarvasBox() +{ + if(dbData.maHandle != INVALID_HANDLE) IndicatorRelease(dbData.maHandle); + if(dbData.volumeHandle != INVALID_HANDLE) IndicatorRelease(dbData.volumeHandle); + ObjectsDeleteAll(0, dbData.boxName); +} + +void DrawDarvasBox() +{ + if(!dbData.boxFormed) return; + + datetime time1 = iTime(dbData.symbol, PERIOD_H1, DB_BoxPeriod); + datetime time2 = iTime(dbData.symbol, PERIOD_H1, 0); + + ObjectsDeleteAll(0, dbData.boxName); + + ObjectCreate(0, dbData.boxName + "Top", OBJ_TREND, 0, time1, dbData.boxHigh, time2, dbData.boxHigh); + ObjectCreate(0, dbData.boxName + "Bottom", OBJ_TREND, 0, time1, dbData.boxLow, time2, dbData.boxLow); + + ObjectSetInteger(0, dbData.boxName + "Top", OBJPROP_COLOR, DB_BoxColor); + ObjectSetInteger(0, dbData.boxName + "Bottom", OBJPROP_COLOR, DB_BoxColor); + ObjectSetInteger(0, dbData.boxName + "Top", OBJPROP_WIDTH, DB_BoxWidth); + ObjectSetInteger(0, dbData.boxName + "Bottom", OBJPROP_WIDTH, DB_BoxWidth); + ObjectSetInteger(0, dbData.boxName + "Top", OBJPROP_RAY_RIGHT, true); + ObjectSetInteger(0, dbData.boxName + "Bottom", OBJPROP_RAY_RIGHT, true); +} + +void CalculateDarvasBox() +{ + double high = 0; + double low = DBL_MAX; + + // Find highest high and lowest low in the period - EXACTLY like original + for(int i = 0; i < DB_BoxPeriod; i++) + { + high = MathMax(high, iHigh(dbData.symbol, PERIOD_H1, i)); + low = MathMin(low, iLow(dbData.symbol, PERIOD_H1, i)); + } + + double range = high - low; + double allowedRange = DB_BoxDeviation * dbData.point; // Use dbData.point instead of _Point + + if(DB_EnableLogging) + { + Print("DarvasBox: Box Calculation - High: ", high, " Low: ", low, " Range: ", range, " Allowed Range: ", allowedRange); + } + + // Check if box is formed - EXACTLY like original + if(range <= allowedRange) + { + dbData.boxHigh = high; + dbData.boxLow = low; + dbData.boxFormed = true; + dbData.lastBoxTime = iTime(dbData.symbol, PERIOD_CURRENT, 0); + + // Draw the box + DrawDarvasBox(); + + if(DB_EnableLogging) + Print("DarvasBox: Box Formed - High: ", dbData.boxHigh, " Low: ", dbData.boxLow, " Time: ", dbData.lastBoxTime); + } + else + { + dbData.boxFormed = false; + // Delete box if it exists + ObjectsDeleteAll(0, dbData.boxName); + } +} + +bool ValidateStopLevels(double price, double &sl, double &tp, ENUM_ORDER_TYPE orderType) +{ + double minSlDistance = MathMax(dbData.minStopLevel, DB_StopLoss * dbData.point); + double minTpDistance = MathMax(dbData.minStopLevel, DB_TakeProfit * dbData.point); + + if(orderType == ORDER_TYPE_BUY) + { + sl = price - minSlDistance; + tp = price + minTpDistance; + } + else + { + sl = price + minSlDistance; + tp = price - minTpDistance; + } + + return true; +} + +bool IsTrendFavorable(ENUM_ORDER_TYPE orderType) +{ + double ma[]; + ArraySetAsSeries(ma, true); + + if(CopyBuffer(dbData.maHandle, 0, 0, 2, ma) <= 0) + return false; + + double currentPrice = SymbolInfoDouble(dbData.symbol, SYMBOL_ASK); + double trendStrength = MathAbs(currentPrice - ma[0]) / dbData.point; + + if(orderType == ORDER_TYPE_BUY) + return (currentPrice > ma[0] && trendStrength > DB_TrendThreshold); + else + return (currentPrice < ma[0] && trendStrength > DB_TrendThreshold); +} + +bool CheckVolumeConditions() +{ + double volumes[]; + ArraySetAsSeries(volumes, true); + + if(CopyBuffer(dbData.volumeHandle, 0, 0, DB_VolumeMA_Period + 1, volumes) <= 0) + return false; + + double volumeMA = 0; + for(int i = 1; i <= DB_VolumeMA_Period; i++) + volumeMA += volumes[i]; + volumeMA /= DB_VolumeMA_Period; + + double currentVolume = volumes[0]; + double volumeRatio = currentVolume / volumeMA; + + return (volumeRatio > DB_VolumeThresholdMultiplier); +} + +bool PlaceOrder(ENUM_ORDER_TYPE orderType, double price, double sl, double tp) +{ + if(!ValidateStopLevels(price, sl, tp, orderType)) + { + if(DB_EnableLogging) + Print("DarvasBox: Order rejected - Stop levels validation failed"); + return false; + } + + if(!IsTrendFavorable(orderType)) + { + if(DB_EnableLogging) + Print("DarvasBox: Order rejected - Trend not favorable for ", EnumToString(orderType)); + return false; + } + + if(!CheckVolumeConditions()) + { + if(DB_EnableLogging) + Print("DarvasBox: Order rejected - Volume conditions not met"); + return false; + } + + bool result = false; + + // Use market price (0) instead of explicit price - this ensures market order execution + // In backtesting, explicit price might fail if price has moved + if(orderType == ORDER_TYPE_BUY) + result = dbData.trade.Buy(0.01, dbData.symbol, 0, sl, tp, "Darvas Box Breakout"); + else + result = dbData.trade.Sell(0.01, dbData.symbol, 0, sl, tp, "Darvas Box Breakdown"); + + // Always log errors, success only if logging enabled + if(result) + { + if(DB_EnableLogging) + Print("DarvasBox: ", (orderType == ORDER_TYPE_BUY ? "Buy" : "Sell"), " Order Placed Successfully"); + } + else + { + // Always log failures with detailed info + uint retcode_uint = dbData.trade.ResultRetcode(); + int retcode = (int)retcode_uint; + string desc = dbData.trade.ResultRetcodeDescription(); + ulong deal = dbData.trade.ResultDeal(); + ulong order = dbData.trade.ResultOrder(); + Print("DarvasBox: ", (orderType == ORDER_TYPE_BUY ? "Buy" : "Sell"), + " Order Failed - Retcode: ", retcode, + ", Description: ", desc, + ", Deal: ", deal, + ", Order: ", order, + ", Symbol: ", dbData.symbol, + ", Requested Price: ", price, + ", SL: ", sl, + ", TP: ", tp); + } + + return result; +} + +void ProcessDarvasBox(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!dbData.isInitialized) + return; + + dbData.symbol = symbol; // Update symbol in case it changed + + // Calculate new box levels - EXACTLY like original (called every tick) + CalculateDarvasBox(); + + // Check for trading signals - EXACTLY like original (checked every tick) + if(dbData.boxFormed) + { + double currentPrice = SymbolInfoDouble(dbData.symbol, SYMBOL_ASK); + long currentVolume_long = iVolume(dbData.symbol, PERIOD_CURRENT, 0); + double currentVolume = (double)currentVolume_long; + + if(DB_EnableLogging) + { + Print("DarvasBox: Current Price: ", currentPrice, " Box High: ", dbData.boxHigh, " Box Low: ", dbData.boxLow); + Print("DarvasBox: Current Volume: ", currentVolume, " Volume Threshold: ", DB_VolumeThreshold); + } + + // Check for breakout above box - EXACTLY like original + if(currentPrice > dbData.boxHigh && currentVolume > DB_VolumeThreshold) + { + if(DB_EnableLogging) + Print("DarvasBox: Breakout Signal Detected - Price above box high"); + + // Buy signal + if(!PositionExistsByMagic(dbData.symbol, (ulong)DB_MagicNumber)) // No existing positions with our magic number + { + double sl = currentPrice - DB_StopLoss * dbData.point; + double tp = currentPrice + DB_TakeProfit * dbData.point; + + if(DB_EnableLogging) + Print("DarvasBox: Preparing Buy Order - Price: ", currentPrice, " SL: ", sl, " TP: ", tp); + + PlaceOrder(ORDER_TYPE_BUY, currentPrice, sl, tp); + } + else if(DB_EnableLogging) + Print("DarvasBox: Skipping Buy Signal - Position already exists"); + } + + // Check for breakdown below box - EXACTLY like original + if(currentPrice < dbData.boxLow && currentVolume > DB_VolumeThreshold) + { + if(DB_EnableLogging) + Print("DarvasBox: Breakdown Signal Detected - Price below box low"); + + // Sell signal + if(!PositionExistsByMagic(dbData.symbol, (ulong)DB_MagicNumber)) // No existing positions with our magic number + { + double sl = currentPrice + DB_StopLoss * dbData.point; + double tp = currentPrice - DB_TakeProfit * dbData.point; + + if(DB_EnableLogging) + Print("DarvasBox: Preparing Sell Order - Price: ", currentPrice, " SL: ", sl, " TP: ", tp); + + PlaceOrder(ORDER_TYPE_SELL, currentPrice, sl, tp); + } + else if(DB_EnableLogging) + Print("DarvasBox: Skipping Sell Signal - Position already exists"); + } + } + else if(DB_EnableLogging) + Print("DarvasBox: No Box Formed - Waiting for consolidation"); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united/Strategies/EMASlopeDistanceStrategy.mqh b/frontline/MQL5/_united/Strategies/EMASlopeDistanceStrategy.mqh new file mode 100644 index 0000000..70e4502 --- /dev/null +++ b/frontline/MQL5/_united/Strategies/EMASlopeDistanceStrategy.mqh @@ -0,0 +1,496 @@ +//+------------------------------------------------------------------+ +//| EMASlopeDistanceStrategy.mqh | +//+------------------------------------------------------------------+ + +bool InitEMASlopeDistance(string symbol) +{ + esData.symbol = symbol; + esData.letzte_überwachung_zeit = 0; + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + esData.ticket = 0; + esData.trades_in_current_crossover = 0; + esData.crossover_detected = false; + esData.trade_open_time = 0; + esData.last_bar_time = 0; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("EMASlopeDistance: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + esData.trade.SetExpertMagicNumber(ES_MagicNumber); + esData.trade.SetDeviationInPoints(10); + esData.trade.SetTypeFilling(ORDER_FILLING_IOC); + + esData.ema_handle = iMA(symbol, ES_Timeframe, ES_EMA_Periode, 0, MODE_EMA, PRICE_CLOSE); + + if(esData.ema_handle == INVALID_HANDLE) + { + Print("EMASlopeDistance: Error creating EMA indicator for '", symbol, "'"); + return false; + } + + ArraySetAsSeries(esData.ema_array, true); + esData.isInitialized = true; + Print("EMASlopeDistance: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitEMASlopeDistance() +{ + if(esData.ema_handle != INVALID_HANDLE) + IndicatorRelease(esData.ema_handle); +} + +//+------------------------------------------------------------------+ +//| EMA Berechnung (EMA Calculation) | +//+------------------------------------------------------------------+ +void BerechneEMA() +{ + //--- EMA Werte vom Indicator kopieren (Copy EMA values from indicator) + int copied = CopyBuffer(esData.ema_handle, 0, 0, 3, esData.ema_array); + + if(copied <= 0) + { + Print("TRACE: Fehler beim Kopieren der EMA Werte - Copied: ", copied); + return; + } + + Print("TRACE: EMA Werte kopiert: ", copied, " Bars"); + Print("TRACE: EMA [0]: ", esData.ema_array[0], " [1]: ", esData.ema_array[1], " [2]: ", esData.ema_array[2]); +} + +//+------------------------------------------------------------------+ +//| Trigger-Bedingungen prüfen (Check trigger conditions) | +//+------------------------------------------------------------------+ +void PrüfeTrigger() +{ + if(ArraySize(esData.ema_array) < 2) + { + Print("TRACE: Array zu klein - Größe: ", ArraySize(esData.ema_array)); + return; + } + + //--- Aktuelle Werte (Current values) + double aktueller_preis = SymbolInfoDouble(esData.symbol, SYMBOL_BID); + double aktueller_ask = SymbolInfoDouble(esData.symbol, SYMBOL_ASK); + double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); + double pips_multiplier = (digits == 3 || digits == 5) ? 10.0 : 1.0; + + //--- EMA Werte in Variablen (EMA values in variables) + double ema_aktuell = esData.ema_array[0]; + double ema_vorher = esData.ema_array[1]; + + //--- EMA Crossover Erkennung (EMA Crossover Detection) + // Prüfe ob Preis die EMA kreuzt (Check if price crosses EMA) + static double last_close = 0; + static double last_ema = 0; + + if(last_close != 0 && last_ema != 0) + { + bool crossover_bullish = (last_close <= last_ema) && (aktueller_close > ema_aktuell); + bool crossover_bearish = (last_close >= last_ema) && (aktueller_close < ema_aktuell); + + //--- Neues Crossover-Ereignis erkannt (New crossover event detected) + if(crossover_bullish || crossover_bearish) + { + esData.trades_in_current_crossover = 0; // Reset trade counter + Print("TRACE: EMA Crossover erkannt - ", (crossover_bullish ? "BULLISH" : "BEARISH"), " - Trade-Counter zurückgesetzt"); + Print("TRACE: Vorher: Close=", last_close, " EMA=", last_ema, " Jetzt: Close=", aktueller_close, " EMA=", ema_aktuell); + } + } + + //--- Aktuelle Werte für nächsten Vergleich speichern (Save current values for next comparison) + last_close = aktueller_close; + last_ema = ema_aktuell; + + //--- Preisbewegung zur EMA prüfen (Check price action to EMA) + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / point / pips_multiplier; + + Print("TRACE: Preis-Abstand: ", preis_abstand, " Pips (Schwelle: ", ES_PreisSchwelle, ")"); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Trades im aktuellen Crossover: ", esData.trades_in_current_crossover, "/", ES_MaxTradesPerCrossover); + + if(preis_abstand > ES_PreisSchwelle && !esData.preis_trigger_aktiv) + { + esData.preis_trigger_aktiv = true; + Print("TRACE: Preis-Trigger aktiviert: ", preis_abstand, " Pips"); + } + + //--- EMA Steigung prüfen (Check EMA slope) + double steigung = (ema_aktuell - ema_vorher) / point / pips_multiplier; + + Print("TRACE: EMA Steigung: ", steigung, " Pips (Schwelle: ", ES_SteigungSchwelle, ")"); + + if(MathAbs(steigung) > ES_SteigungSchwelle && !esData.steigung_trigger_aktiv) + { + esData.steigung_trigger_aktiv = true; + Print("TRACE: Steigungs-Trigger aktiviert: ", steigung, " Pips"); + } + + //--- Überwachung starten wenn beide Trigger aktiv sind (Start monitoring when both triggers are active) + if(esData.preis_trigger_aktiv && esData.steigung_trigger_aktiv && !esData.überwachung_aktiv) + { + esData.überwachung_aktiv = true; + + if(ES_UseBarData) + { + esData.letzte_überwachung_zeit = iTime(esData.symbol, ES_Timeframe, 0); // Aktuelle Bar-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Bar: ", TimeToString(esData.letzte_überwachung_zeit), ")"); + } + else + { + esData.letzte_überwachung_zeit = TimeCurrent(); // Aktuelle Tick-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Tick)"); + } + } + + //--- Trade platzieren wenn Überwachung aktiv und Preis über/unter EMA (Place trade when monitoring active and price above/below EMA) + if(esData.überwachung_aktiv) + { + bool bullish_signal = aktueller_close > ema_aktuell; + bool bearish_signal = aktueller_close < ema_aktuell; + + Print("TRACE: Signal Check - Bullish: ", bullish_signal, " Bearish: ", bearish_signal); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Differenz: ", aktueller_close - ema_aktuell); + + //--- Trade-Limit prüfen (Check trade limit) + if(esData.trades_in_current_crossover >= ES_MaxTradesPerCrossover) + { + Print("TRACE: Trade-Limit erreicht (", ES_MaxTradesPerCrossover, ") - Kein neuer Trade"); + return; + } + + if(bullish_signal && !PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Versuche KAUF-Trade zu platzieren (Trade #", esData.trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_BUY)) + { + esData.trades_in_current_crossover++; + } + } + else if(bearish_signal && !PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Versuche VERKAUF-Trade zu platzieren (Trade #", esData.trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_SELL)) + { + esData.trades_in_current_crossover++; + } + } + else if(PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Position bereits offen - kein neuer Trade"); + } + } +} + +//+------------------------------------------------------------------+ +//| Trade platzieren (Place trade) | +//+------------------------------------------------------------------+ +bool PlatziereTrade(ENUM_ORDER_TYPE order_type) +{ + Print("TRACE: Versuche Trade zu platzieren - Typ: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF"); + Print("TRACE: Lot: ", g_ES_LotSize); + + bool success = false; + + if(order_type == ORDER_TYPE_BUY) + { + success = esData.trade.Buy(g_ES_LotSize, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); + } + else + { + success = esData.trade.Sell(g_ES_LotSize, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); + } + + if(success) + { + esData.ticket = (int)esData.trade.ResultOrder(); + Print("TRACE: Trade erfolgreich platziert: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF", " Ticket: ", esData.ticket); + + //--- Trade-Öffnungszeit speichern (Save trade opening time) + esData.trade_open_time = iTime(esData.symbol, ES_Timeframe, 0); + Print("TRACE: Trade-Öffnungszeit: ", TimeToString(esData.trade_open_time)); + + //--- Überwachung zurücksetzen (Reset monitoring) + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + + return true; + } + else + { + Print("TRACE: Fehler beim Platzieren des Trades - Retcode: ", esData.trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", esData.trade.ResultRetcodeDescription()); + + return false; + } +} + +//+------------------------------------------------------------------+ +//| Trades verwalten (Manage trades) | +//+------------------------------------------------------------------+ +void VerwalteTrades() +{ + if(!PositionSelectByMagic(esData.symbol, (ulong)ES_MagicNumber)) + return; + + double position_profit = PositionGetDouble(POSITION_PROFIT); + double position_open_price = PositionGetDouble(POSITION_PRICE_OPEN); + double current_price = PositionGetDouble(POSITION_PRICE_CURRENT); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); + double pips_multiplier = (digits == 3 || digits == 5) ? 10.0 : 1.0; + double trailing_stop_pips = ES_TrailingStop; + + //--- Gleitender Stop (Trailing Stop) - nur wenn Position im Profit ist + if(position_profit > 0) // Only apply trailing stop when in profit + { + if(position_type == POSITION_TYPE_BUY) + { + double new_stop_loss = current_price - (trailing_stop_pips * point * pips_multiplier); + double current_stop_loss = PositionGetDouble(POSITION_SL); + + // Only move stop loss if new stop is higher than current stop + if(new_stop_loss > current_stop_loss) + { + ÄndereStopLoss(new_stop_loss); + } + } + else if(position_type == POSITION_TYPE_SELL) + { + double new_stop_loss = current_price + (trailing_stop_pips * point * pips_multiplier); + double current_stop_loss = PositionGetDouble(POSITION_SL); + + // Only move stop loss if new stop is lower than current stop + if(new_stop_loss < current_stop_loss || current_stop_loss == 0) + { + ÄndereStopLoss(new_stop_loss); + } + } + } + + //--- Ausstieg bei Preis unter/über EMA (Exit when price below/above EMA) + if(ArraySize(esData.ema_array) >= 1) + { + double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); + double ema_aktuell = esData.ema_array[0]; + bool exit_bullish = (position_type == POSITION_TYPE_SELL && aktueller_close > ema_aktuell); + bool exit_bearish = (position_type == POSITION_TYPE_BUY && aktueller_close < ema_aktuell); + + if(exit_bullish || exit_bearish) + { + Print("TRACE: Ausstiegssignal - Close: ", aktueller_close, " EMA: ", ema_aktuell); + SchließePosition("EMA Crossover Exit"); + + Print("TRACE: Position geschlossen - Trade-Counter bleibt bei ", esData.trades_in_current_crossover); + } + } + + //--- Profit-Prüfung nach X Bars (Profit check after X bars) + if(ES_CloseUnprofitableTrades && esData.trade_open_time != 0 && PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Profit-Prüfung aktiviert - CloseUnprofitableTrades: ", ES_CloseUnprofitableTrades); + PrüfeProfitNachBars(); + } + else if(!ES_CloseUnprofitableTrades) + { + Print("TRACE: Profit-Prüfung deaktiviert - CloseUnprofitableTrades: ", ES_CloseUnprofitableTrades); + } +} + +//+------------------------------------------------------------------+ +//| Profit-Prüfung nach X Bars (Profit check after X bars) | +//+------------------------------------------------------------------+ +void PrüfeProfitNachBars() +{ + if(!PositionSelectByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + return; // Keine Position offen + } + + datetime current_bar_time = iTime(esData.symbol, ES_Timeframe, 0); + int bars_since_trade_open = iBarShift(esData.symbol, ES_Timeframe, esData.trade_open_time); + + Print("TRACE: Bars seit Trade-Öffnung: ", bars_since_trade_open, "/", ES_ProfitCheckBars); + + //--- Prüfe ob genügend Bars vergangen sind (Check if enough bars have passed) + if(bars_since_trade_open >= ES_ProfitCheckBars) + { + double position_profit = PositionGetDouble(POSITION_PROFIT); + double position_volume = PositionGetDouble(POSITION_VOLUME); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + Print("TRACE: Profit-Prüfung nach ", ES_ProfitCheckBars, " Bars"); + Print("TRACE: Position Profit: ", position_profit, " USD"); + + //--- Schließe Position wenn nicht im Profit (Close position if not in profit) + if(position_profit <= 0) + { + Print("TRACE: Position nicht im Profit - Schließe Position"); + SchließePosition("Profit Check - Unprofitable"); + + //--- Trade-Öffnungszeit zurücksetzen (Reset trade opening time) + esData.trade_open_time = 0; + Print("TRACE: Trade-Öffnungszeit zurückgesetzt"); + } + else + { + Print("TRACE: Position im Profit - Behalte Position"); + //--- Trade-Öffnungszeit zurücksetzen um weitere Prüfungen zu vermeiden (Reset to avoid further checks) + esData.trade_open_time = 0; + } + } +} + +//+------------------------------------------------------------------+ +//| Stop Loss ändern (Modify Stop Loss) | +//+------------------------------------------------------------------+ +void ÄndereStopLoss(double new_stop_loss) +{ + Print("TRACE: Versuche Stop Loss zu ändern auf: ", new_stop_loss); + + bool success = ModifyPositionByMagic(esData.trade, esData.symbol, (ulong)ES_MagicNumber, new_stop_loss, PositionGetDouble(POSITION_TP)); + + if(success) + { + Print("TRACE: Stop Loss erfolgreich geändert auf: ", new_stop_loss); + } + else + { + Print("TRACE: Fehler beim Ändern des Stop Loss - Retcode: ", esData.trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", esData.trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Position schließen (Close position) | +//+------------------------------------------------------------------+ +void SchließePosition(string reason = "Unbekannt") +{ + Print("TRACE: Versuche Position zu schließen - Grund: ", reason); + + bool success = ClosePositionByMagic(esData.trade, esData.symbol, (ulong)ES_MagicNumber); + + if(success) + { + Print("TRACE: Position erfolgreich geschlossen - Grund: ", reason); + } + else + { + Print("TRACE: Fehler beim Schließen der Position - Retcode: ", esData.trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", esData.trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void ProcessEMASlopeDistance(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!esData.isInitialized) + return; + + esData.symbol = symbol; // Update symbol in case it changed + + //--- Bar-Daten oder Tick-Daten verwenden (Use bar data or tick data) + if(ES_UseBarData) + { + //--- Nur bei neuen Bars ausführen (Only execute on new bars) + datetime current_bar_time = iTime(esData.symbol, ES_Timeframe, 0); + + if(current_bar_time == esData.last_bar_time) + { + return; // Kein neuer Bar, nichts tun + } + + esData.last_bar_time = current_bar_time; + } + + //--- EMA Werte berechnen (Calculate EMA values) + BerechneEMA(); + + //--- Debug: Aktuelle Werte ausgeben (Debug: Output current values) + if(ArraySize(esData.ema_array) > 0) + { + double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); + double ema_aktuell = esData.ema_array[0]; + double ema_vorher = esData.ema_array[1]; + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / point; + double steigung = (ema_aktuell - ema_vorher) / point; + + if(ES_UseBarData) + { + Print("=== DEBUG INFO (Neuer Bar) ==="); + Print("Bar Zeit: ", TimeToString(iTime(esData.symbol, ES_Timeframe, 0))); + } + else + { + Print("=== DEBUG INFO (Tick) ==="); + } + + Print("Aktueller Close: ", aktueller_close); + Print("EMA: ", ema_aktuell); + Print("Preis-Abstand: ", preis_abstand, " Pips"); + Print("EMA Steigung: ", steigung, " Pips"); + Print("Differenz Close-EMA: ", aktueller_close - ema_aktuell); + Print("Preis-Trigger: ", esData.preis_trigger_aktiv, " Steigungs-Trigger: ", esData.steigung_trigger_aktiv); + Print("Überwachung aktiv: ", esData.überwachung_aktiv); + Print("Position offen: ", PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)); + Print("Trades im aktuellen Crossover: ", esData.trades_in_current_crossover, "/", ES_MaxTradesPerCrossover); + Print("=================="); + } + + //--- Überwachung prüfen (Check monitoring) + if(esData.überwachung_aktiv) + { + if(ES_UseBarData) + { + // Bar-basierte Überwachungszeit + int bars_since_monitoring = iBarShift(esData.symbol, ES_Timeframe, esData.letzte_überwachung_zeit); + int timeout_bars = (int)(ES_ÜberwachungTimeout / PeriodSeconds(ES_Timeframe)); + + if(bars_since_monitoring > timeout_bars) + { + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + Print("Überwachung beendet - Bar-basierte Zeitüberschreitung (", bars_since_monitoring, " Bars)"); + } + } + else + { + // Tick-basierte Überwachungszeit + if(TimeCurrent() - esData.letzte_überwachung_zeit > ES_ÜberwachungTimeout) + { + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + Print("Überwachung beendet - Tick-basierte Zeitüberschreitung"); + } + } + } + + //--- Trigger-Bedingungen prüfen (Check trigger conditions) + PrüfeTrigger(); + + //--- Trade Management (Trade management) + VerwalteTrades(); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united/Strategies/RSICrossOverReversalStrategy.mqh b/frontline/MQL5/_united/Strategies/RSICrossOverReversalStrategy.mqh new file mode 100644 index 0000000..f182476 --- /dev/null +++ b/frontline/MQL5/_united/Strategies/RSICrossOverReversalStrategy.mqh @@ -0,0 +1,240 @@ +//+------------------------------------------------------------------+ +//| RSICrossOverReversalStrategy.mqh | +//+------------------------------------------------------------------+ + +void WeekDays_Init() +{ + rcData.WeekDays[0] = RC_Sunday; + rcData.WeekDays[1] = RC_Monday; + rcData.WeekDays[2] = RC_Tuesday; + rcData.WeekDays[3] = RC_Wednesday; + rcData.WeekDays[4] = RC_Thursday; + rcData.WeekDays[5] = RC_Friday; + rcData.WeekDays[6] = RC_Saturday; +} + +bool WeekDays_Check(datetime aTime) +{ + MqlDateTime stm; + TimeToStruct(aTime, stm); + return(rcData.WeekDays[stm.day_of_week]); +} + +int TimeHour(datetime when = 0) +{ + if(when == 0) when = TimeCurrent(); + MqlDateTime dt; + TimeToStruct(when, dt); + return dt.hour; +} + +bool InitRSICrossOverReversal(string symbol) +{ + WeekDays_Init(); + + rcData.symbol = symbol; + rcData.previousRSIDef = 0; + rcData.lastTradeTime = 0; + rcData.bartime = 0; + rcData.lastBarTime = 0; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSICrossOverReversal: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + rcData.rsiHandle = iRSI(symbol, RC_TimeFrame1, RC_rsiPeriod, PRICE_CLOSE); + if(rcData.rsiHandle == INVALID_HANDLE) + { + Print("RSICrossOverReversal: Error creating RSI handle for '", symbol, "'"); + return false; + } + + rcData.emaHandle = iMA(symbol, RC_TimeFrame2, RC_emaPeriod, 0, MODE_EMA, PRICE_CLOSE); + if(rcData.emaHandle == INVALID_HANDLE) + { + Print("RSICrossOverReversal: Error creating EMA handle for '", symbol, "'"); + return false; + } + + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + rcData.isInitialized = true; + Print("RSICrossOverReversal: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitRSICrossOverReversal() +{ + if(rcData.rsiHandle != INVALID_HANDLE) + IndicatorRelease(rcData.rsiHandle); + if(rcData.emaHandle != INVALID_HANDLE) + IndicatorRelease(rcData.emaHandle); +} + +void Close_Position_MN(ulong magicNumber) +{ + ClosePositionByMagic(rcData.trade, rcData.symbol, (int)magicNumber); +} + +void ApplyTrailingStop() +{ + if(!PositionSelectByMagic(rcData.symbol, RC_MagicNumber)) + return; + + ulong PositionTicket = PositionGetInteger(POSITION_TICKET); + ENUM_POSITION_TYPE trade_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + string symbol = rcData.symbol; + + double POINT = SymbolInfoDouble(symbol, SYMBOL_POINT); + int DIGIT = (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS); + + if(trade_type == POSITION_TYPE_BUY) + { + double Bid = NormalizeDouble(SymbolInfoDouble(symbol, SYMBOL_BID), DIGIT); + + if(Bid - PositionGetDouble(POSITION_PRICE_OPEN) > NormalizeDouble(POINT * RC_TrailingStop, DIGIT)) + { + if(PositionGetDouble(POSITION_SL) < NormalizeDouble(Bid - POINT * RC_TrailingStop, DIGIT)) + { + ModifyPositionByMagic(rcData.trade, symbol, RC_MagicNumber, + NormalizeDouble(Bid - POINT * RC_TrailingStop, DIGIT), + PositionGetDouble(POSITION_TP)); + } + } + } + else if(trade_type == POSITION_TYPE_SELL) + { + double Ask = NormalizeDouble(SymbolInfoDouble(symbol, SYMBOL_ASK), DIGIT); + + if((PositionGetDouble(POSITION_PRICE_OPEN) - Ask) > NormalizeDouble(POINT * RC_TrailingStop, DIGIT)) + { + if((PositionGetDouble(POSITION_SL) > NormalizeDouble(Ask + POINT * RC_TrailingStop, DIGIT)) || + (PositionGetDouble(POSITION_SL) == 0)) + { + ModifyPositionByMagic(rcData.trade, symbol, RC_MagicNumber, + NormalizeDouble(Ask + POINT * RC_TrailingStop, DIGIT), + PositionGetDouble(POSITION_TP)); + } + } + } +} + +void ProcessRSICrossOverReversal(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!rcData.isInitialized) + return; + + rcData.symbol = symbol; // Update symbol in case it changed + if(rcData.bartime == iTime(rcData.symbol, RC_BarTimeFrame, 0)) + return; + rcData.bartime = iTime(rcData.symbol, RC_BarTimeFrame, 0); + + double rsi[]; + if(CopyBuffer(rcData.rsiHandle, 0, 0, 2, rsi) <= 0) + return; + + double ema[]; + if(CopyBuffer(rcData.emaHandle, 0, 0, 2, ema) <= 0) + return; + + datetime currentTime = TimeCurrent(); + int currentHour = TimeHour(TimeCurrent()); + + if(!WeekDays_Check(TimeTradeServer())) + { + Close_Position_MN(RC_MagicNumber); + return; + } + + if(!((currentHour < RC_tradingHourOneEnd && currentHour > RC_tradingHourOneBegin) || + (currentHour < RC_tradingHourTwoEnd && currentHour > RC_tradingHourTwoBegin))) + { + Close_Position_MN(RC_MagicNumber); + return; + } + + bool hasPosition = PositionExistsByMagic(rcData.symbol, RC_MagicNumber); + + double currentRSI = rsi[0]; + double previousRSI = rsi[1]; + + if(rcData.previousRSIDef == 0) + { + rcData.previousRSIDef = currentRSI; + return; + } + + double currentEMA = ema[0]; + double previousEMA = ema[1]; + + double emaSlope = (currentEMA - previousEMA) * 100; + double closeCurr = iClose(Symbol(), Period(), 0); + double priceToEmaDistance = (closeCurr - currentEMA) * 10; + + bool isBuyPosition = false; + bool isSellPosition = false; + if(hasPosition) + { + if(PositionSelectByMagic(rcData.symbol, RC_MagicNumber)) + { + ENUM_POSITION_TYPE positionType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if(positionType == POSITION_TYPE_BUY) + isBuyPosition = true; + else if(positionType == POSITION_TYPE_SELL) + isSellPosition = true; + } + } + + ApplyTrailingStop(); + + bool cooldownPassed = (currentTime - rcData.lastTradeTime) >= RC_cooldownSeconds; + bool isTrendStrong = MathAbs(emaSlope) > RC_emaSlopeThreshold || MathAbs(priceToEmaDistance) > RC_emaDistanceThreshold; + + if(isBuyPosition && currentRSI > RC_exitBuyRSI) + { + Close_Position_MN(RC_MagicNumber); + rcData.lastTradeTime = currentTime; + } + + if(isSellPosition && currentRSI < RC_exitSellRSI) + { + Close_Position_MN(RC_MagicNumber); + rcData.lastTradeTime = currentTime; + } + + if(isTrendStrong) + { + Close_Position_MN(RC_MagicNumber); + rcData.lastTradeTime = currentTime; + return; + } + + if(currentRSI < RC_overboughtLevel - RC_entryRSISellSpread && rcData.previousRSIDef >= RC_overboughtLevel && + !isSellPosition && !hasPosition && cooldownPassed) + { + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + if(rcData.trade.Sell(g_RC_LotSize, rcData.symbol, 0.0, 0.0, 0.0, "Sell Order")) + { + rcData.lastTradeTime = currentTime; + } + } + + if(currentRSI > RC_oversoldLevel + RC_entryRSIBuySpread && rcData.previousRSIDef <= RC_oversoldLevel && + !isBuyPosition && !hasPosition && cooldownPassed) + { + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + if(rcData.trade.Buy(g_RC_LotSize, rcData.symbol, 0.0, 0.0, 0.0, "Buy Order")) + { + rcData.lastTradeTime = currentTime; + } + } + + rcData.previousRSIDef = currentRSI; +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united/Strategies/RSIMidPointHijackStrategy.mqh b/frontline/MQL5/_united/Strategies/RSIMidPointHijackStrategy.mqh new file mode 100644 index 0000000..3db8db5 --- /dev/null +++ b/frontline/MQL5/_united/Strategies/RSIMidPointHijackStrategy.mqh @@ -0,0 +1,471 @@ +//+------------------------------------------------------------------+ +//| RSIMidPointHijackStrategy.mqh | +//+------------------------------------------------------------------+ + +bool IsNewBar(string symbol) +{ + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + { + if(time[0] != rmData.lastBarTime) + { + rmData.lastBarTime = time[0]; + return true; + } + } + return false; +} + +bool IsWithinTradingHours(int startHour, int endHour) +{ + MqlDateTime currentTime; + TimeToStruct(TimeCurrent(), currentTime); + + if(startHour <= endHour) + return (currentTime.hour >= startHour && currentTime.hour < endHour); + else + return (currentTime.hour >= startHour || currentTime.hour < endHour); +} + +bool HasPosition(string symbol, int magic) +{ + return PositionExistsByMagic(symbol, magic); +} + +bool HasProfitablePosition(int excludeMagic) +{ + bool hasProfitable = false; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(rmData.positionInfo.SelectByIndex(i)) + { + if(rmData.positionInfo.Magic() != excludeMagic) + { + double profit = rmData.positionInfo.Profit(); + if(profit > RM_InpLockProfitThreshold * _Point) + { + hasProfitable = true; + if(RM_InpCloseOppositeTrades) + { + if((excludeMagic == RM_InpMagicNumberRSIFollow && rmData.positionInfo.Magic() == RM_InpMagicNumberRSIReverse) || + (excludeMagic == RM_InpMagicNumberRSIReverse && rmData.positionInfo.Magic() == RM_InpMagicNumberRSIFollow) || + (excludeMagic == RM_InpMagicNumberEMACross && (rmData.positionInfo.Magic() == RM_InpMagicNumberRSIReverse || rmData.positionInfo.Magic() == RM_InpMagicNumberRSIFollow)) || + ((excludeMagic == RM_InpMagicNumberRSIFollow || excludeMagic == RM_InpMagicNumberRSIReverse) && rmData.positionInfo.Magic() == RM_InpMagicNumberEMACross)) + { + ClosePosition(rmData.symbol, (int)rmData.positionInfo.Magic()); + } + } + } + } + } + } + return hasProfitable; +} + +bool IsRSIReverseInCooldown(string symbol) +{ + if(RM_InpRSIReverseCooldownBars <= 0) + return false; + + if(!rmData.rsiReverseInCooldown) + return false; + + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + { + datetime currentBarTime = time[0]; + datetime cooldownEndTime = rmData.rsiReverseLastCloseTime + RM_InpRSIReverseCooldownBars * PeriodSeconds(RM_InpTimeframe); + + if(currentBarTime >= cooldownEndTime) + { + rmData.rsiReverseInCooldown = false; + return false; + } + } + + return true; +} + +void CheckRSIFollowStrategy(string symbol) +{ + if(!IsWithinTradingHours(RM_InpRSIFollowStartHour, RM_InpRSIFollowEndHour)) + { + if(RM_InpRSIFollowCloseOutsideHours) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + ClosePosition(symbol, RM_InpMagicNumberRSIFollow); + } + return; + } + + if(RM_InpEnableStrategyLock && HasProfitablePosition(RM_InpMagicNumberRSIFollow)) + return; + + if(rmData.lastBarRSI > RM_InpRSIOverbought) + rmData.rsiOverbought = true; + else if(rmData.lastBarRSI < RM_InpRSIOversold) + rmData.rsiOversold = true; + + if(rmData.rsiOverbought && rmData.lastBarRSI < RM_InpRSIExitLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "RSI Follow"); + } + rmData.rsiOverbought = false; + } + else if(rmData.rsiOversold && rmData.lastBarRSI > RM_InpRSIExitLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "RSI Follow"); + } + rmData.rsiOversold = false; + } +} + +void CheckRSIReverseStrategy(string symbol) +{ + if(!IsWithinTradingHours(RM_InpRSIReverseStartHour, RM_InpRSIReverseEndHour)) + { + if(RM_InpRSIReverseCloseOutsideHours) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + ClosePosition(symbol, RM_InpMagicNumberRSIReverse); + } + return; + } + + if(RM_InpEnableStrategyLock && HasProfitablePosition(RM_InpMagicNumberRSIReverse)) + return; + + if(IsRSIReverseInCooldown(symbol)) + return; + + if(rmData.lastBarRSIReverse > RM_InpRSIReverseOverbought) + rmData.rsiReverseOverbought = true; + else if(rmData.lastBarRSIReverse < RM_InpRSIReverseOversold) + rmData.rsiReverseOversold = true; + + if(rmData.rsiReverseOverbought && rmData.lastBarRSIReverse < RM_InpRSIReverseCrossLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIReverse); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "RSI Reverse"); + } + rmData.rsiReverseOverbought = false; + } + else if(rmData.rsiReverseOversold && rmData.lastBarRSIReverse > RM_InpRSIReverseCrossLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIReverse); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "RSI Reverse"); + } + rmData.rsiReverseOversold = false; + } +} + +void CheckEMACrossStrategy(string symbol) +{ + if(!IsWithinTradingHours(RM_InpEMACrossStartHour, RM_InpEMACrossEndHour)) + { + if(RM_InpEMACrossCloseOutsideHours) + { + if(HasPosition(symbol, RM_InpMagicNumberEMACross)) + ClosePosition(symbol, RM_InpMagicNumberEMACross); + } + return; + } + + if(RM_InpEnableStrategyLock && HasProfitablePosition(RM_InpMagicNumberEMACross)) + return; + + if(rmData.lastBarEMAPrev < rmData.lastBarClosePrev && rmData.lastBarEMA > rmData.lastBarClose) + { + rmData.emaCrossBuySignal = true; + rmData.emaCrossSellSignal = false; + rmData.emaCrossSignalBar = 0; + } + else if(rmData.lastBarEMAPrev > rmData.lastBarClosePrev && rmData.lastBarEMA < rmData.lastBarClose) + { + rmData.emaCrossSellSignal = true; + rmData.emaCrossBuySignal = false; + rmData.emaCrossSignalBar = 0; + } + + if(RM_InpUseEMADistanceEntry) + { + if(rmData.emaCrossBuySignal) + { + bool distanceConditionMet = true; + double emaHistory[], closeHistory[]; + ArraySetAsSeries(emaHistory, true); + ArraySetAsSeries(closeHistory, true); + + if(CopyBuffer(rmData.emaHandle, 0, 0, RM_InpEMADistancePeriod, emaHistory) > 0 && + CopyClose(symbol, RM_InpTimeframe, 0, RM_InpEMADistancePeriod, closeHistory) > 0) + { + double point = SymbolInfoDouble(symbol, SYMBOL_POINT); + for(int i = 0; i < RM_InpEMADistancePeriod; i++) + { + double distance = (closeHistory[i] - emaHistory[i]) / point; + if(distance < RM_InpEMADistancePips) + { + distanceConditionMet = false; + break; + } + } + + if(distanceConditionMet && !HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross Distance"); + rmData.emaCrossBuySignal = false; + } + } + } + else if(rmData.emaCrossSellSignal) + { + bool distanceConditionMet = true; + double emaHistory[], closeHistory[]; + ArraySetAsSeries(emaHistory, true); + ArraySetAsSeries(closeHistory, true); + + if(CopyBuffer(rmData.emaHandle, 0, 0, RM_InpEMADistancePeriod, emaHistory) > 0 && + CopyClose(symbol, RM_InpTimeframe, 0, RM_InpEMADistancePeriod, closeHistory) > 0) + { + double point = SymbolInfoDouble(symbol, SYMBOL_POINT); + for(int i = 0; i < RM_InpEMADistancePeriod; i++) + { + double distance = (emaHistory[i] - closeHistory[i]) / point; + if(distance < RM_InpEMADistancePips) + { + distanceConditionMet = false; + break; + } + } + + if(distanceConditionMet && !HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross Distance"); + rmData.emaCrossSellSignal = false; + } + } + } + } + else + { + if(rmData.lastBarEMAPrev < rmData.lastBarClosePrev && rmData.lastBarEMA > rmData.lastBarClose) + { + if(!HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross"); + } + } + else if(rmData.lastBarEMAPrev > rmData.lastBarClosePrev && rmData.lastBarEMA < rmData.lastBarClose) + { + if(!HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross"); + } + } + } + + if(rmData.emaCrossBuySignal || rmData.emaCrossSellSignal) + { + rmData.emaCrossSignalBar++; + if(rmData.emaCrossSignalBar > RM_InpEMADistancePeriod * 2) + { + rmData.emaCrossBuySignal = false; + rmData.emaCrossSellSignal = false; + } + } +} + +void CheckExitConditions(string symbol) +{ + if(RM_InpEnableRSIFollow) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + { + if(PositionSelectByMagic(symbol, RM_InpMagicNumberRSIFollow)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if((posType == POSITION_TYPE_BUY && rmData.lastBarRSI < RM_InpRSIExitLevel) || + (posType == POSITION_TYPE_SELL && rmData.lastBarRSI > RM_InpRSIExitLevel)) + { + ClosePosition(symbol, RM_InpMagicNumberRSIFollow); + } + } + } + } + + if(RM_InpEnableRSIReverse) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + { + if(PositionSelectByMagic(symbol, RM_InpMagicNumberRSIReverse)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if((posType == POSITION_TYPE_BUY && rmData.lastBarRSIReverse < RM_InpRSIReverseExitLevel) || + (posType == POSITION_TYPE_SELL && rmData.lastBarRSIReverse > RM_InpRSIReverseExitLevel)) + { + ClosePosition(symbol, RM_InpMagicNumberRSIReverse); + } + } + } + } + + if(RM_InpEnableEMACross) + { + if(HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + if(PositionSelectByMagic(symbol, RM_InpMagicNumberEMACross)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if((posType == POSITION_TYPE_BUY && rmData.lastBarEMA > rmData.lastBarClose) || + (posType == POSITION_TYPE_SELL && rmData.lastBarEMA < rmData.lastBarClose)) + { + ClosePosition(symbol, RM_InpMagicNumberEMACross); + } + } + } + } +} + +void ClosePosition(string symbol, int magic) +{ + if(!PositionExistsByMagic(symbol, magic)) + return; + + ulong ticket = GetPositionTicketByMagic(symbol, magic); + if(ticket == 0) + return; + + if(magic == RM_InpMagicNumberRSIReverse) + { + if(PositionSelectByTicketSymbolAndMagic(ticket, symbol, magic)) + { + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + { + rmData.rsiReverseLastCloseTime = time[0]; + double profit = PositionGetDouble(POSITION_PROFIT); + if(!RM_InpRSIReverseCooldownOnLoss || profit < 0) + { + rmData.rsiReverseInCooldown = true; + } + } + } + } + + ClosePositionByMagic(rmData.trade, symbol, magic); +} + +bool InitRSIMidPointHijack(string symbol) +{ + rmData.symbol = symbol; + rmData.rsiOverbought = false; + rmData.rsiOversold = false; + rmData.rsiReverseOverbought = false; + rmData.rsiReverseOversold = false; + rmData.emaCrossBuySignal = false; + rmData.emaCrossSellSignal = false; + rmData.emaCrossSignalBar = 0; + rmData.rsiReverseInCooldown = false; + rmData.lastBarRSI = 0; + rmData.lastBarRSIReverse = 0; + rmData.lastBarEMA = 0; + rmData.lastBarClose = 0; + rmData.lastBarEMAPrev = 0; + rmData.lastBarClosePrev = 0; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSIMidPointHijack: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + rmData.rsiHandle = iRSI(symbol, RM_InpTimeframe, RM_InpRSIPeriod, PRICE_CLOSE); + rmData.rsiReverseHandle = iRSI(symbol, RM_InpTimeframe, RM_InpRSIReversePeriod, PRICE_CLOSE); + rmData.emaHandle = iMA(symbol, RM_InpTimeframe, RM_InpEMAPeriod, 0, MODE_EMA, PRICE_CLOSE); + + if(rmData.rsiHandle == INVALID_HANDLE || rmData.rsiReverseHandle == INVALID_HANDLE || rmData.emaHandle == INVALID_HANDLE) + { + Print("RSIMidPointHijack: Error creating indicators for '", symbol, "'"); + return false; + } + + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); + rmData.trade.SetMarginMode(); + rmData.trade.SetTypeFillingBySymbol(symbol); + rmData.trade.SetDeviationInPoints(10); + + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + rmData.lastBarTime = time[0]; + + rmData.isInitialized = true; + Print("RSIMidPointHijack: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitRSIMidPointHijack() +{ + if(rmData.rsiHandle != INVALID_HANDLE) IndicatorRelease(rmData.rsiHandle); + if(rmData.rsiReverseHandle != INVALID_HANDLE) IndicatorRelease(rmData.rsiReverseHandle); + if(rmData.emaHandle != INVALID_HANDLE) IndicatorRelease(rmData.emaHandle); +} + +void ProcessRSIMidPointHijack(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!rmData.isInitialized) + return; + + rmData.symbol = symbol; // Update symbol in case it changed + if(!IsNewBar(rmData.symbol)) + return; + + double rsi[], rsiReverse[], ema[], close[]; + ArraySetAsSeries(rsi, true); + ArraySetAsSeries(rsiReverse, true); + ArraySetAsSeries(ema, true); + ArraySetAsSeries(close, true); + + rmData.lastBarEMAPrev = rmData.lastBarEMA; + rmData.lastBarClosePrev = rmData.lastBarClose; + + if(CopyBuffer(rmData.rsiHandle, 0, 0, 1, rsi) > 0) + rmData.lastBarRSI = rsi[0]; + + if(CopyBuffer(rmData.rsiReverseHandle, 0, 0, 1, rsiReverse) > 0) + rmData.lastBarRSIReverse = rsiReverse[0]; + + if(CopyBuffer(rmData.emaHandle, 0, 0, 1, ema) > 0) + rmData.lastBarEMA = ema[0]; + + if(CopyClose(rmData.symbol, RM_InpTimeframe, 0, 1, close) > 0) + rmData.lastBarClose = close[0]; + + if(RM_InpEnableRSIFollow) + CheckRSIFollowStrategy(rmData.symbol); + if(RM_InpEnableRSIReverse) + CheckRSIReverseStrategy(rmData.symbol); + if(RM_InpEnableEMACross) + CheckEMACrossStrategy(rmData.symbol); + + CheckExitConditions(rmData.symbol); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united/Strategies/RSIReversalAsianStrategy.mqh b/frontline/MQL5/_united/Strategies/RSIReversalAsianStrategy.mqh new file mode 100644 index 0000000..46dc9d3 --- /dev/null +++ b/frontline/MQL5/_united/Strategies/RSIReversalAsianStrategy.mqh @@ -0,0 +1,493 @@ +//+------------------------------------------------------------------+ +//| RSIReversalAsianStrategy.mqh | +//+------------------------------------------------------------------+ + +//+------------------------------------------------------------------+ +//| RSI Reversal Asian Strategy Data Structure | +//+------------------------------------------------------------------+ +struct RSIReversalAsianData { + string symbol; + bool isInitialized; + int rsiHandle; + CTrade trade; + bool isPositionOpen; + double positionOpenPrice; + datetime positionOpenTime; + ENUM_POSITION_TYPE lastPositionType; + bool sessionCloseAttempted; + + // RSI crossover variables + double rsiCurrent; + double rsiPrevious; + double rsiPrevious2; + bool rsiCrossedOverbought; + bool rsiCrossedOversold; + bool rsiCrossedExitLevel; + + // Strategy parameters + int RSIPeriod; + double OverboughtLevel; + double OversoldLevel; + int TakeProfitPips; + int StopLossPips; + double MaxLotSize; + int MaxSpread; + int MaxDuration; + bool UseStopLoss; + bool UseTakeProfit; + bool UseRSIExit; + double RSIExitLevel; + bool CloseOutsideSession; + ENUM_TIMEFRAMES TimeFrame; + int MagicNumber; + int Slippage; + double point; +}; + +// Session times (UTC) +const int AsianSessionStart = 0; // 00:00 UTC +const int AsianSessionEnd = 8; // 08:00 UTC + +//+------------------------------------------------------------------+ +//| Check if current time is in Asian session | +//+------------------------------------------------------------------+ +bool IsAsianSession() +{ + datetime currentTime = TimeCurrent(); + MqlDateTime timeStruct; + TimeToStruct(currentTime, timeStruct); + + return (timeStruct.hour >= AsianSessionStart && timeStruct.hour < AsianSessionEnd); +} + +//+------------------------------------------------------------------+ +//| Check if trading is allowed for symbol | +//+------------------------------------------------------------------+ +bool IsTradingAllowed(RSIReversalAsianData& data) +{ + // Check if market is open + long tradeMode = SymbolInfoInteger(data.symbol, SYMBOL_TRADE_MODE); + if(tradeMode != SYMBOL_TRADE_MODE_FULL) + { + return false; + } + + // Check if we have enough money + if(AccountInfoDouble(ACCOUNT_MARGIN_FREE) <= 0) + { + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Check RSI crossover conditions | +//+------------------------------------------------------------------+ +void CheckRSICrossover(RSIReversalAsianData& data) +{ + // Reset crossover flags + data.rsiCrossedOverbought = false; + data.rsiCrossedOversold = false; + data.rsiCrossedExitLevel = false; + + // Check for overbought crossover (RSI crosses above overbought level) + if(data.rsiPrevious < data.OverboughtLevel && data.rsiCurrent >= data.OverboughtLevel) + { + data.rsiCrossedOverbought = true; + } + + // Check for oversold crossover (RSI crosses below oversold level) + if(data.rsiPrevious > data.OversoldLevel && data.rsiCurrent <= data.OversoldLevel) + { + data.rsiCrossedOversold = true; + } + + // Check for exit level crossover + if(data.rsiPrevious < data.RSIExitLevel && data.rsiCurrent >= data.RSIExitLevel) + { + data.rsiCrossedExitLevel = true; + } + else if(data.rsiPrevious > data.RSIExitLevel && data.rsiCurrent <= data.RSIExitLevel) + { + data.rsiCrossedExitLevel = true; + } +} + +//+------------------------------------------------------------------+ +//| Close all trades for the symbol | +//+------------------------------------------------------------------+ +bool CloseAllTrades(RSIReversalAsianData& data, string reason = "") +{ + bool allClosed = true; + int totalPositions = PositionsTotal(); + + if(totalPositions == 0) + return true; + + for(int i = totalPositions - 1; i >= 0; i--) + { + if(PositionGetSymbol(i) == data.symbol) + { + ulong ticket = PositionGetTicket(i); + if(ticket > 0 && PositionSelectByTicket(ticket)) + { + if(PositionGetInteger(POSITION_MAGIC) == (ulong)data.MagicNumber) + { + // Try to close position with retry logic + int retryCount = 0; + bool positionClosed = false; + + while(retryCount < 3 && !positionClosed) + { + if(data.trade.PositionClose(ticket)) + { + data.isPositionOpen = false; + positionClosed = true; + } + else + { + int error = GetLastError(); + + // If error is 4756 (Trade disabled), wait longer before retry + if(error == 4756) + { + Sleep(5000); // Wait 5 seconds before retry + retryCount++; + } + else + { + // For other errors, break the loop + break; + } + } + } + + if(!positionClosed) + { + allClosed = false; + } + } + } + } + } + + return allClosed; +} + +//+------------------------------------------------------------------+ +//| Initialize RSI Reversal Asian Strategy | +//+------------------------------------------------------------------+ +bool InitRSIReversalAsian(RSIReversalAsianData& data, string symbol, + int RSIPeriod, double OverboughtLevel, double OversoldLevel, + int TakeProfitPips, int StopLossPips, double MaxLotSize, + int MaxSpread, int MaxDuration, bool UseStopLoss, + bool UseTakeProfit, bool UseRSIExit, double RSIExitLevel, + bool CloseOutsideSession, ENUM_TIMEFRAMES TimeFrame, + int MagicNumber, int Slippage) +{ + data.symbol = symbol; + data.isInitialized = false; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSIReversalAsian: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + // Wait a bit for symbol to be ready + Sleep(100); + + // Get symbol point + data.point = SymbolInfoDouble(symbol, SYMBOL_POINT); + + // Store parameters + data.RSIPeriod = RSIPeriod; + data.OverboughtLevel = OverboughtLevel; + data.OversoldLevel = OversoldLevel; + data.TakeProfitPips = TakeProfitPips; + data.StopLossPips = StopLossPips; + data.MaxLotSize = MaxLotSize; + data.MaxSpread = MaxSpread; + data.MaxDuration = MaxDuration; + data.UseStopLoss = UseStopLoss; + data.UseTakeProfit = UseTakeProfit; + data.UseRSIExit = UseRSIExit; + data.RSIExitLevel = RSIExitLevel; + data.CloseOutsideSession = CloseOutsideSession; + data.TimeFrame = TimeFrame; + data.MagicNumber = MagicNumber; + data.Slippage = Slippage; + + // Initialize RSI indicator with retry logic (for insufficient history in backtesting) + data.rsiHandle = INVALID_HANDLE; + int retryCount = 0; + int maxRetries = 5; + + while(retryCount < maxRetries && data.rsiHandle == INVALID_HANDLE) + { + data.rsiHandle = iRSI(symbol, TimeFrame, RSIPeriod, PRICE_CLOSE); + + if(data.rsiHandle == INVALID_HANDLE) + { + int error = GetLastError(); + + // Error 4805 = insufficient history - wait longer and retry + if(error == 4805 && retryCount < maxRetries - 1) + { + Sleep(1000); // Wait 1 second for history to load + retryCount++; + continue; + } + + Print("RSIReversalAsian: Error creating RSI indicator for '", symbol, "' - Error: ", error, " (", error == 4805 ? "Insufficient history data" : "Unknown", ")"); + return false; + } + } + + if(data.rsiHandle == INVALID_HANDLE) + { + Print("RSIReversalAsian: Failed to create RSI indicator for '", symbol, "' after ", maxRetries, " retries"); + return false; + } + + // Wait a bit for the indicator to be ready + Sleep(100); + + // Initialize RSI values with retry logic + double rsi[]; + ArraySetAsSeries(rsi, true); + + int retryCount = 0; + bool rsiInitialized = false; + + while(retryCount < 10 && !rsiInitialized) + { + int copied = CopyBuffer(data.rsiHandle, 0, 0, 3, rsi); + if(copied >= 3) + { + data.rsiCurrent = rsi[0]; + data.rsiPrevious = rsi[1]; + data.rsiPrevious2 = rsi[2]; + rsiInitialized = true; + } + else + { + retryCount++; + Sleep(100); + } + } + + if(!rsiInitialized) + { + // Don't fail initialization, just set default values + data.rsiCurrent = 50.0; + data.rsiPrevious = 50.0; + data.rsiPrevious2 = 50.0; + } + + // Set trade parameters + data.trade.SetExpertMagicNumber(MagicNumber); + data.trade.SetDeviationInPoints(Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Initialize state + data.isPositionOpen = false; + data.positionOpenPrice = 0; + data.positionOpenTime = 0; + data.lastPositionType = POSITION_TYPE_BUY; + data.sessionCloseAttempted = false; + data.rsiCrossedOverbought = false; + data.rsiCrossedOversold = false; + data.rsiCrossedExitLevel = false; + + data.isInitialized = true; + + Print("RSIReversalAsian: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +//+------------------------------------------------------------------+ +//| Deinitialize RSI Reversal Asian Strategy | +//+------------------------------------------------------------------+ +void DeinitRSIReversalAsian(RSIReversalAsianData& data) +{ + if(data.rsiHandle != INVALID_HANDLE) + IndicatorRelease(data.rsiHandle); +} + +//+------------------------------------------------------------------+ +//| Process RSI Reversal Asian Strategy | +//+------------------------------------------------------------------+ +void ProcessRSIReversalAsian(RSIReversalAsianData& data, double lotSize) +{ + if(!data.isInitialized) + return; + + // Check if trading is allowed + if(!IsTradingAllowed(data)) + { + return; + } + + // Check if we're in Asian session + if(!IsAsianSession()) + { + // Close all positions if outside Asian session and CloseOutsideSession is true + if(data.CloseOutsideSession && !data.sessionCloseAttempted) + { + CloseAllTrades(data, "Outside Asian session"); + data.sessionCloseAttempted = true; + } + return; + } + else + { + // Reset the session close attempt flag when we enter Asian session + data.sessionCloseAttempted = false; + } + + // Get current spread + double spread = SymbolInfoDouble(data.symbol, SYMBOL_ASK) - SymbolInfoDouble(data.symbol, SYMBOL_BID); + int spreadInPips = (int)(spread / data.point); + + // Check if spread is too high + if(spreadInPips > data.MaxSpread) + { + return; + } + + // Get RSI values from bar data + double rsi[]; + ArraySetAsSeries(rsi, true); + + int copied = CopyBuffer(data.rsiHandle, 0, 0, 3, rsi); + if(copied < 3) + { + return; + } + + // Update RSI values + data.rsiPrevious2 = data.rsiPrevious; + data.rsiPrevious = data.rsiCurrent; + data.rsiCurrent = rsi[0]; + + // Validate RSI values + if(data.rsiCurrent == 0 || data.rsiPrevious == 0) + { + return; + } + + // Check for RSI crossovers + CheckRSICrossover(data); + + // Get current prices + double currentBid = SymbolInfoDouble(data.symbol, SYMBOL_BID); + double currentAsk = SymbolInfoDouble(data.symbol, SYMBOL_ASK); + + // Check for open position + bool hasOpenPosition = PositionExistsByMagic(data.symbol, (ulong)data.MagicNumber); + + if(hasOpenPosition) + { + // Get position details + ulong ticket = GetPositionTicketByMagic(data.symbol, (ulong)data.MagicNumber); + if(ticket > 0 && PositionSelectByTicket(ticket)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + datetime openTime = (datetime)PositionGetInteger(POSITION_TIME); + + // Check for RSI exit if enabled + if(data.UseRSIExit && data.rsiCrossedExitLevel) + { + bool shouldExit = false; + + // For long positions, exit when RSI crosses above exit level + if(posType == POSITION_TYPE_BUY && data.rsiCurrent >= data.RSIExitLevel && data.rsiPrevious < data.RSIExitLevel) + { + shouldExit = true; + } + // For short positions, exit when RSI crosses below exit level + else if(posType == POSITION_TYPE_SELL && data.rsiCurrent <= data.RSIExitLevel && data.rsiPrevious > data.RSIExitLevel) + { + shouldExit = true; + } + + if(shouldExit) + { + CloseAllTrades(data, "RSI Exit Crossover"); + return; + } + } + + // Check for timeout + if(TimeCurrent() - openTime > data.MaxDuration * 3600) + { + CloseAllTrades(data, "Timeout"); + return; + } + } + } + + // If no position is open, look for entry signals based on RSI crossover + if(!hasOpenPosition) + { + // Place buy order if RSI crosses below oversold level (oversold crossover) + if(data.rsiCrossedOversold) + { + double sl = data.UseStopLoss ? currentBid - data.StopLossPips * data.point : 0; + double tp = data.UseTakeProfit ? currentBid + data.TakeProfitPips * data.point : 0; + + if(data.UseStopLoss && sl >= currentBid) + return; + if(data.UseTakeProfit && tp <= currentBid) + return; + + // Set trade parameters + data.trade.SetDeviationInPoints(data.Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetExpertMagicNumber(data.MagicNumber); + + // Use dynamic lot size + double tradeLotSize = lotSize > 0 ? lotSize : data.MaxLotSize; + + // Place buy order using CTrade + if(data.trade.Buy(tradeLotSize, data.symbol, currentAsk, sl, tp, "RSI Oversold Crossover Buy")) + { + data.isPositionOpen = true; + data.positionOpenPrice = currentAsk; + data.positionOpenTime = TimeCurrent(); + data.lastPositionType = POSITION_TYPE_BUY; + } + } + // Place sell order if RSI crosses above overbought level (overbought crossover) + else if(data.rsiCrossedOverbought) + { + double sl = data.UseStopLoss ? currentAsk + data.StopLossPips * data.point : 0; + double tp = data.UseTakeProfit ? currentAsk - data.TakeProfitPips * data.point : 0; + + if(data.UseStopLoss && sl <= currentAsk) + return; + if(data.UseTakeProfit && tp >= currentAsk) + return; + + // Set trade parameters + data.trade.SetDeviationInPoints(data.Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetExpertMagicNumber(data.MagicNumber); + + // Use dynamic lot size + double tradeLotSize = lotSize > 0 ? lotSize : data.MaxLotSize; + + // Place sell order using CTrade + if(data.trade.Sell(tradeLotSize, data.symbol, currentBid, sl, tp, "RSI Overbought Crossover Sell")) + { + data.isPositionOpen = true; + data.positionOpenPrice = currentBid; + data.positionOpenTime = TimeCurrent(); + data.lastPositionType = POSITION_TYPE_SELL; + } + } + } +} diff --git a/frontline/MQL5/_united/Strategies/RSIScalpingStrategy.mqh b/frontline/MQL5/_united/Strategies/RSIScalpingStrategy.mqh new file mode 100644 index 0000000..666dc1d --- /dev/null +++ b/frontline/MQL5/_united/Strategies/RSIScalpingStrategy.mqh @@ -0,0 +1,451 @@ +//+------------------------------------------------------------------+ +//| RSIScalpingStrategy.mqh | +//+------------------------------------------------------------------+ + +//+------------------------------------------------------------------+ +//| RSI Scalping Strategy Data Structure | +//+------------------------------------------------------------------+ +struct RSIScalpingData { + string symbol; + bool isInitialized; + CTrade trade; + int rsi_handle; + double rsi_buffer[]; + double rsi_prev; + double rsi_current; + double rsi_two_bars_ago; + bool position_open; + ulong position_ticket; + ENUM_POSITION_TYPE current_position_type; + datetime last_bar_time; + bool rsi_against_position; + int bars_against_count; +}; + +string ErrorDescription(int errorCode) +{ + switch(errorCode) + { + case 4801: return "Symbol not found"; + case 4802: return "Symbol not selected"; + case 4803: return "Symbol not visible"; + case 4804: return "Symbol not available"; + case 4805: return "Cannot load indicator - insufficient history data"; + default: return "Unknown error " + IntegerToString(errorCode); + } +} + +bool InitRSIScalping(RSIScalpingData& data, string symbol, ENUM_TIMEFRAMES TimeFrame, int RSI_Period, + ENUM_APPLIED_PRICE RSI_Applied_Price, int MagicNumber, int Slippage) +{ + data.symbol = symbol; + data.isInitialized = false; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSIScalping: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; // Return false but don't fail entire EA + } + + // Wait a bit for symbol to be ready + Sleep(100); + + // Try to create RSI indicator with retry logic (for insufficient history in backtesting) + data.rsi_handle = INVALID_HANDLE; + int retryCount = 0; + int maxRetries = 5; + + while(retryCount < maxRetries && data.rsi_handle == INVALID_HANDLE) + { + data.rsi_handle = iRSI(symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + + if(data.rsi_handle == INVALID_HANDLE) + { + int error = GetLastError(); + + // Error 4805 = insufficient history - wait longer and retry + if(error == 4805 && retryCount < maxRetries - 1) + { + Sleep(1000); // Wait 1 second for history to load + retryCount++; + continue; + } + + Print("RSIScalping: Error creating RSI indicator for '", symbol, "' - Error: ", error, " (", ErrorDescription(error), ")"); + return false; // Return false but don't fail entire EA + } + } + + if(data.rsi_handle == INVALID_HANDLE) + { + Print("RSIScalping: Failed to create RSI indicator for '", symbol, "' after ", maxRetries, " retries"); + return false; + } + + data.trade.SetExpertMagicNumber(MagicNumber); + data.trade.SetDeviationInPoints(Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_FOK); + + ArraySetAsSeries(data.rsi_buffer, true); + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + data.isInitialized = true; + + Print("RSIScalping: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitRSIScalping(RSIScalpingData& data) +{ + if(data.rsi_handle != INVALID_HANDLE) + IndicatorRelease(data.rsi_handle); +} + +bool UpdateRSI(RSIScalpingData& data) +{ + if(CopyBuffer(data.rsi_handle, 0, 0, 3, data.rsi_buffer) < 3) + return false; + + data.rsi_current = data.rsi_buffer[0]; + data.rsi_prev = data.rsi_buffer[1]; + data.rsi_two_bars_ago = data.rsi_buffer[2]; + + return true; +} + +void CheckExistingPosition(RSIScalpingData& data, ENUM_TIMEFRAMES TimeFrame, int MagicNumber, + double RSI_Oversold, double RSI_Overbought, double RSI_Target_Buy, + double RSI_Target_Sell, int BarsToWait) +{ + // Always check if position exists, even if tracking says it doesn't + bool positionExists = PositionExistsByMagic(data.symbol, MagicNumber); + + if(!positionExists && data.position_open) + { + // Position was closed externally, reset tracking + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + return; + } + + if(!positionExists) + return; + + // Update tracking if we have a position but tracking was lost + if(!data.position_open && positionExists) + { + ulong ticket = GetPositionTicketByMagic(data.symbol, MagicNumber); + if(ticket > 0 && PositionSelectByTicketSymbolAndMagic(ticket, data.symbol, MagicNumber)) + { + data.position_ticket = ticket; + data.position_open = true; + data.current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + } + } + + // Verify our tracked position still exists + if(data.position_open && data.position_ticket > 0) + { + if(!PositionSelectByTicketSymbolAndMagic(data.position_ticket, data.symbol, MagicNumber)) + { + // Try to find the position again + ulong ticket = GetPositionTicketByMagic(data.symbol, MagicNumber); + if(ticket > 0 && PositionSelectByTicketSymbolAndMagic(ticket, data.symbol, MagicNumber)) + { + data.position_ticket = ticket; + data.current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + } + else + { + // Position doesn't exist, reset tracking + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + return; + } + } + else + { + // Update position type in case it changed (shouldn't happen, but be safe) + data.current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + } + } + + if(data.current_position_type == POSITION_TYPE_BUY) + { + if(data.rsi_current < RSI_Oversold) + { + if(!data.rsi_against_position) + { + data.rsi_against_position = true; + data.bars_against_count = 1; + } + else + { + data.bars_against_count++; + } + + if(data.bars_against_count >= BarsToWait) + { + ClosePosition(data, MagicNumber); + return; + } + } + else + { + if(data.rsi_against_position) + { + data.rsi_against_position = false; + data.bars_against_count = 0; + } + + if(data.rsi_current >= RSI_Target_Buy) + { + ClosePosition(data, MagicNumber); + } + } + } + else if(data.current_position_type == POSITION_TYPE_SELL) + { + if(data.rsi_current > RSI_Overbought) + { + if(!data.rsi_against_position) + { + data.rsi_against_position = true; + data.bars_against_count = 1; + } + else + { + data.bars_against_count++; + } + + if(data.bars_against_count >= BarsToWait) + { + ClosePosition(data, MagicNumber); + return; + } + } + else + { + if(data.rsi_against_position) + { + data.rsi_against_position = false; + data.bars_against_count = 0; + } + + if(data.rsi_current <= RSI_Target_Sell) + { + ClosePosition(data, MagicNumber); + } + } + } +} + +void CheckEntrySignals(RSIScalpingData& data, ENUM_TIMEFRAMES TimeFrame, int MagicNumber, + double RSI_Oversold, double RSI_Overbought, double LotSize) +{ + if(data.rsi_two_bars_ago <= RSI_Oversold && data.rsi_prev > RSI_Oversold) + { + OpenBuyPosition(data, MagicNumber, LotSize); + } + + if(data.rsi_two_bars_ago >= RSI_Overbought && data.rsi_prev < RSI_Overbought) + { + OpenSellPosition(data, MagicNumber, LotSize); + } +} + +//+------------------------------------------------------------------+ +//| Normalize Lot Size According to Symbol Properties | +//+------------------------------------------------------------------+ +double NormalizeLotSize(string symbol, double lotSize) +{ + double minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); + double maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX); + double lotStep = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP); + + // Round to lot step + if(lotStep > 0) + lotSize = MathFloor(lotSize / lotStep) * lotStep; + + // Apply min/max constraints + if(lotSize < minLot) + lotSize = minLot; + if(lotSize > maxLot) + lotSize = maxLot; + + return lotSize; +} + +void OpenBuyPosition(RSIScalpingData& data, int MagicNumber, double LotSize) +{ + if(PositionExistsByMagic(data.symbol, MagicNumber)) + return; + + // Normalize lot size according to symbol properties + double normalizedLot = NormalizeLotSize(data.symbol, LotSize); + + double ask = SymbolInfoDouble(data.symbol, SYMBOL_ASK); + + if(data.trade.Buy(normalizedLot, data.symbol, ask, 0, 0, "RSI Scalping Buy")) + { + ulong new_ticket = data.trade.ResultOrder(); + if(new_ticket > 0) + { + if(PositionSelectByTicketSymbolAndMagic(new_ticket, data.symbol, MagicNumber)) + { + data.position_ticket = new_ticket; + data.position_open = true; + data.current_position_type = POSITION_TYPE_BUY; + } + } + } +} + +void OpenSellPosition(RSIScalpingData& data, int MagicNumber, double LotSize) +{ + if(PositionExistsByMagic(data.symbol, MagicNumber)) + return; + + // Normalize lot size according to symbol properties + double normalizedLot = NormalizeLotSize(data.symbol, LotSize); + + double bid = SymbolInfoDouble(data.symbol, SYMBOL_BID); + + if(data.trade.Sell(normalizedLot, data.symbol, bid, 0, 0, "RSI Scalping Sell")) + { + ulong new_ticket = data.trade.ResultOrder(); + if(new_ticket > 0) + { + if(PositionSelectByTicketSymbolAndMagic(new_ticket, data.symbol, MagicNumber)) + { + data.position_ticket = new_ticket; + data.position_open = true; + data.current_position_type = POSITION_TYPE_SELL; + } + } + } +} + +void ClosePosition(RSIScalpingData& data, int MagicNumber) +{ + // First verify position still exists + if(!PositionExistsByMagic(data.symbol, MagicNumber)) + { + // Position doesn't exist, reset tracking + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + return; + } + + // Try to close by ticket first (more reliable) + bool closed = false; + if(data.position_ticket > 0) + { + if(PositionSelectByTicket(data.position_ticket)) + { + // Verify it's our position + if(PositionGetString(POSITION_SYMBOL) == data.symbol && + PositionGetInteger(POSITION_MAGIC) == MagicNumber) + { + closed = data.trade.PositionClose(data.position_ticket); + if(!closed) + { + Print("RSIScalping: Failed to close position by ticket ", data.position_ticket, + " - Error: ", data.trade.ResultRetcode(), " (", data.trade.ResultRetcodeDescription(), ")"); + } + } + } + } + + // If ticket method failed, try magic number method + if(!closed) + { + closed = ClosePositionByMagic(data.trade, data.symbol, MagicNumber); + if(!closed) + { + Print("RSIScalping: Failed to close position by magic number for '", data.symbol, + "' - Error: ", data.trade.ResultRetcode(), " (", data.trade.ResultRetcodeDescription(), ")"); + } + } + + // Verify position is actually closed + if(closed) + { + // Wait a moment and verify + Sleep(50); + if(!PositionExistsByMagic(data.symbol, MagicNumber)) + { + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + Print("RSIScalping: Position successfully closed for '", data.symbol, "'"); + } + else + { + Print("RSIScalping: Warning - Close returned success but position still exists for '", data.symbol, "'"); + // Try one more time + Sleep(100); + if(PositionExistsByMagic(data.symbol, MagicNumber)) + { + ClosePositionByMagic(data.trade, data.symbol, MagicNumber); + } + // Reset tracking anyway to prevent getting stuck + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + } + } + else + { + // Close failed, but reset tracking to prevent getting stuck + // The position might have been closed externally + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + } +} + +void ProcessRSIScalping(RSIScalpingData& data, string symbol, ENUM_TIMEFRAMES TimeFrame, int RSI_Period, + ENUM_APPLIED_PRICE RSI_Applied_Price, double RSI_Overbought, + double RSI_Oversold, double RSI_Target_Buy, double RSI_Target_Sell, + int BarsToWait, double LotSize, int MagicNumber) +{ + // Skip if not initialized (symbol not available) + if(!data.isInitialized) + return; + + data.symbol = symbol; // Update symbol in case it changed + if(Bars(data.symbol, TimeFrame) < RSI_Period + 2) + return; + + datetime current_bar_time = iTime(data.symbol, TimeFrame, 0); + if(current_bar_time == data.last_bar_time) + return; + + data.last_bar_time = current_bar_time; + + if(!UpdateRSI(data)) + return; + + CheckExistingPosition(data, TimeFrame, MagicNumber, RSI_Oversold, RSI_Overbought, + RSI_Target_Buy, RSI_Target_Sell, BarsToWait); + + if(!data.position_open && !PositionExistsByMagic(data.symbol, MagicNumber)) + { + CheckEntrySignals(data, TimeFrame, MagicNumber, RSI_Oversold, RSI_Overbought, LotSize); + } +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united/main.mq5 b/frontline/MQL5/_united/main.mq5 index 0ced54c..891c18a 100644 --- a/frontline/MQL5/_united/main.mq5 +++ b/frontline/MQL5/_united/main.mq5 @@ -1,441 +1,500 @@ //+------------------------------------------------------------------+ -//| UnitedEA.mq5 | +//| UnitedEA.mq5 | //| Copyright 2025, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2025, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" -#property description "United EA - Runs multiple strategies on multiple instruments with instrument-specific parameters" +#property strict #include +#include +#include +#include #include "MagicNumberHelpers.mqh" +// Include strategy implementations early so structs are available +#include "Strategies/DarvasBoxStrategy.mqh" +#include "Strategies/EMASlopeDistanceStrategy.mqh" +#include "Strategies/RSICrossOverReversalStrategy.mqh" +#include "Strategies/RSIMidPointHijackStrategy.mqh" +#include "Strategies/RSIScalpingStrategy.mqh" +#include "Strategies/RSIReversalAsianStrategy.mqh" -//--- Strategy Selection -input bool EnableRSIScalping = true; // Enable RSI Scalping Strategy -input bool EnableMeanReversion = true; // Enable Mean Reversion Strategy -input bool EnableDarvasBox = true; // Enable Darvas Box Strategy -input bool EnableRSICrossOver = true; // Enable RSI Crossover Strategy -input bool EnableRSIMidPoint = true; // Enable RSI Midpoint Strategy +//+------------------------------------------------------------------+ +//| Global Lot Size Variables (for dynamic lot sizing) | +//+------------------------------------------------------------------+ +double g_ES_LotSize; // EMA Slope Distance lot size +double g_RC_LotSize; // RSI CrossOver Reversal lot size +double g_RM_LotSize; // RSI MidPoint Hijack lot size -//--- Instrument Selection for RSI Scalping (each with its own parameters) -input bool EnableRSI_XAUUSD = true; // Enable RSI Scalping on XAUUSD -input bool EnableRSI_APPL = true; // Enable RSI Scalping on APPL -input bool EnableRSI_BTCUSD = true; // Enable RSI Scalping on BTCUSD -input bool EnableRSI_MSFT = true; // Enable RSI Scalping on MSFT -input bool EnableRSI_NVDA = true; // Enable RSI Scalping on NVDA -input bool EnableRSI_TSLA = true; // Enable RSI Scalping on TSLA +//+------------------------------------------------------------------+ +//| Strategy Enable/Disable Switches | +//+------------------------------------------------------------------+ +input group "=== Strategy Enable/Disable ===" +input bool EnableDarvasBox = true; +input bool EnableEMASlopeDistance = true; +input bool EnableRSICrossOverReversal = true; +input bool EnableRSIMidPointHijack = true; +input bool EnableRSIScalpingAPPL = true; +input bool EnableRSIScalpingBTCUSD = true; +input bool EnableRSIScalpingMSFT = true; +input bool EnableRSIScalpingNVDA = true; +input bool EnableRSIScalpingTSLA = true; +input bool EnableRSIScalpingXAUUSD = true; +input bool EnableRSIReversalAsianEURUSD = true; +input bool EnableRSIReversalAsianAUDUSD = true; -//--- Magic Numbers for RSI Scalping (one per instrument) -input int MagicNumber_RSI_XAUUSD = 129102315; // Magic Number for RSI Scalping XAUUSD -input int MagicNumber_RSI_APPL = 123457; // Magic Number for RSI Scalping APPL -input int MagicNumber_RSI_BTCUSD = 123459123; // Magic Number for RSI Scalping BTCUSD -input int MagicNumber_RSI_MSFT = 123456; // Magic Number for RSI Scalping MSFT -input int MagicNumber_RSI_NVDA = 12345; // Magic Number for RSI Scalping NVDA -input int MagicNumber_RSI_TSLA = 125421321; // Magic Number for RSI Scalping TSLA +//+------------------------------------------------------------------+ +//| Strategy 1: DarvasBoxXAUUSD | +//+------------------------------------------------------------------+ +input group "=== DarvasBox Strategy ===" +input string DB_Symbol = "XAUUSD"; +input int DB_BoxPeriod = 165; +input double DB_BoxDeviation = 30000; // Increased to allow larger ranges (was 25140) +input int DB_VolumeThreshold = 0; // Set to 0 to disable volume threshold check. Volume data from indicator used instead. +input double DB_StopLoss = 1665; +input double DB_TakeProfit = 3685; +input bool DB_EnableLogging = false; +input color DB_BoxColor = clrBlue; +input int DB_BoxWidth = 1; +input ENUM_TIMEFRAMES DB_TrendTimeframe = PERIOD_H2; +input int DB_MA_Period = 125; +input ENUM_MA_METHOD DB_MA_Method = MODE_EMA; +input ENUM_APPLIED_PRICE DB_MA_Price = PRICE_WEIGHTED; +input double DB_TrendThreshold = 4.94; +input int DB_VolumeMA_Period = 110; +input double DB_VolumeThresholdMultiplier = 1.5; +input int DB_MagicNumber = 135790; -//--- Magic Numbers for Other Strategies -input int MagicNumber_MeanReversion = 12351; // Magic Number for Mean Reversion -input int MagicNumber_DarvasBox = 135790; // Magic Number for Darvas Box -input int MagicNumber_RSICrossOver = 123456; // Magic Number for RSI Crossover -input int MagicNumber_RSIMidPoint = 123457; // Magic Number for RSI Midpoint +//+------------------------------------------------------------------+ +//| Strategy 2: EMASlopeDistanceCocktailXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== EMA Slope Distance Strategy ===" +input string ES_Symbol = "XAUUSD"; +input int ES_EMA_Periode = 46; +input double ES_PreisSchwelle = 600.0; +input double ES_SteigungSchwelle = 80.0; +input int ES_ÜberwachungTimeout = 800; +input double ES_TrailingStop = 250.0; +input double ES_LotGröße = 0.03; +input int ES_MagicNumber = 12350; +input bool ES_UseSpreadAdjustment = true; +input ENUM_TIMEFRAMES ES_Timeframe = PERIOD_H1; +input bool ES_UseBarData = true; +input int ES_MaxTradesPerCrossover = 9; +input int ES_ProfitCheckBars = 18; +input bool ES_CloseUnprofitableTrades = true; -//--- RSI Scalping Parameters: XAUUSD -input ENUM_TIMEFRAMES RSI_XAUUSD_TimeFrame = PERIOD_H1; -input int RSI_XAUUSD_Period = 14; -input double RSI_XAUUSD_Overbought = 71; -input double RSI_XAUUSD_Oversold = 57; -input double RSI_XAUUSD_Target_Buy = 80; -input double RSI_XAUUSD_Target_Sell = 57; -input int RSI_XAUUSD_BarsToWait = 4; -input double RSI_XAUUSD_LotSize = 0.1; +//+------------------------------------------------------------------+ +//| Strategy 3: RSICrossOverReversalXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== RSI CrossOver Reversal Strategy ===" +input string RC_Symbol = "XAUUSD"; +input int RC_MagicNumber = 7; +input int RC_rsiPeriod = 19; +input int RC_overboughtLevel = 93; +input int RC_oversoldLevel = 22; +input double RC_entryRSIBuySpread = 0; +input double RC_entryRSISellSpread = 0; +input double RC_lotSize = 0.01; +input int RC_slippage = 3; +input int RC_cooldownSeconds = 209; +input ENUM_TIMEFRAMES RC_TimeFrame1 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_TimeFrame2 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_BarTimeFrame = PERIOD_M12; +input int RC_emaPeriod = 140; +input double RC_emaSlopeThreshold = 105; +input double RC_exitBuyRSI = 86; +input double RC_exitSellRSI = 10; +input double RC_TrailingStop = 295; +input double RC_emaDistanceThreshold = 165; +input int RC_tradingHourOneBegin = 24; +input int RC_tradingHourOneEnd = 22; +input int RC_tradingHourTwoBegin = 6; +input int RC_tradingHourTwoEnd = 19; +input bool RC_Sunday = false; +input bool RC_Monday = false; +input bool RC_Tuesday = true; +input bool RC_Wednesday = true; +input bool RC_Thursday = true; +input bool RC_Friday = false; +input bool RC_Saturday = false; -//--- RSI Scalping Parameters: APPL -input ENUM_TIMEFRAMES RSI_APPL_TimeFrame = PERIOD_M10; -input int RSI_APPL_Period = 14; -input double RSI_APPL_Overbought = 80; -input double RSI_APPL_Oversold = 78; -input double RSI_APPL_Target_Buy = 94; -input double RSI_APPL_Target_Sell = 44; -input int RSI_APPL_BarsToWait = 7; -input double RSI_APPL_LotSize = 25; +//+------------------------------------------------------------------+ +//| Strategy 4: RSIMidPointHijackXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== RSI MidPoint Hijack Strategy ===" +input string RM_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES RM_InpTimeframe = PERIOD_H1; +input double RM_InpLotSize = 0.02; +input int RM_InpMagicNumberRSIFollow = 1001; +input int RM_InpMagicNumberRSIReverse = 1002; +input int RM_InpMagicNumberEMACross = 1003; +input bool RM_InpEnableRSIFollow = true; +input bool RM_InpEnableRSIReverse = true; +input bool RM_InpEnableEMACross = true; +input bool RM_InpEnableStrategyLock = false; +input double RM_InpLockProfitThreshold = 0.0; +input bool RM_InpCloseOppositeTrades = false; +input int RM_InpRSIPeriod = 32; +input int RM_InpRSIOverbought = 78; +input int RM_InpRSIOversold = 46; +input int RM_InpRSIExitLevel = 44; +input int RM_InpRSIFollowStartHour = 23; +input int RM_InpRSIFollowEndHour = 8; +input bool RM_InpRSIFollowCloseOutsideHours = false; +input int RM_InpRSIReversePeriod = 59; +input int RM_InpRSIReverseOverbought = 51; +input int RM_InpRSIReverseOversold = 49; +input int RM_InpRSIReverseCrossLevel = 53; +input int RM_InpRSIReverseExitLevel = 48; +input int RM_InpRSIReverseStartHour = 7; +input int RM_InpRSIReverseEndHour = 13; +input bool RM_InpRSIReverseCloseOutsideHours = false; +input int RM_InpRSIReverseCooldownBars = 15; +input bool RM_InpRSIReverseCooldownOnLoss = true; +input int RM_InpEMAPeriod = 120; +input int RM_InpEMACrossStartHour = 8; +input int RM_InpEMACrossEndHour = 14; +input bool RM_InpEMACrossCloseOutsideHours = true; +input bool RM_InpUseEMADistanceEntry = true; +input double RM_InpEMADistancePips = 160.0; +input int RM_InpEMADistancePeriod = 26; -//--- RSI Scalping Parameters: BTCUSD -input ENUM_TIMEFRAMES RSI_BTCUSD_TimeFrame = PERIOD_H1; -input int RSI_BTCUSD_Period = 14; -input double RSI_BTCUSD_Overbought = 90; -input double RSI_BTCUSD_Oversold = 73; -input double RSI_BTCUSD_Target_Buy = 88; -input double RSI_BTCUSD_Target_Sell = 48; -input int RSI_BTCUSD_BarsToWait = 6; -input double RSI_BTCUSD_LotSize = 0.1; +//+------------------------------------------------------------------+ +//| Strategy 5-10: RSI Scalping Strategies | +//| Each RSI Scalping strategy trades on its own symbol: | +//| - APPL: Apple stock (AAPL) | +//| - BTCUSD: Bitcoin/USD | +//| - MSFT: Microsoft stock | +//| - NVDA: NVIDIA stock | +//| - TSLA: Tesla stock | +//| - XAUUSD: Gold/USD | +//| | +//| PEPPERSTONE US SYMBOL FORMATS: | +//| - Stocks may use: "AAPL.US", "NASDAQ:AAPL", or just "AAPL" | +//| - To find correct symbols: | +//| 1. Open Market Watch (Ctrl+M) | +//| 2. Right-click > Show All | +//| 3. Search for the stock name | +//| 4. Use the exact symbol name shown | +//+------------------------------------------------------------------+ +input group "=== RSI Scalping APPL (AAPL) - Pepperstone US ===" +input string RS_APPL_Symbol = "AAPL.US"; // Try: "AAPL.US", "NASDAQ:AAPL", or "AAPL" +input ENUM_TIMEFRAMES RS_APPL_TimeFrame = PERIOD_M10; +input int RS_APPL_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_APPL_RSI_Applied_Price = PRICE_CLOSE; +input double RS_APPL_RSI_Overbought = 80; +input double RS_APPL_RSI_Oversold = 78; +input double RS_APPL_RSI_Target_Buy = 94; +input double RS_APPL_RSI_Target_Sell = 44; +input int RS_APPL_BarsToWait = 7; +input double RS_APPL_LotSize = 25; +input int RS_APPL_MagicNumber = 20001; +input int RS_APPL_Slippage = 3; -//--- RSI Scalping Parameters: MSFT -input ENUM_TIMEFRAMES RSI_MSFT_TimeFrame = PERIOD_H3; -input int RSI_MSFT_Period = 14; -input double RSI_MSFT_Overbought = 19; -input double RSI_MSFT_Oversold = 50; -input double RSI_MSFT_Target_Buy = 71; -input double RSI_MSFT_Target_Sell = 70; -input int RSI_MSFT_BarsToWait = 1; -input double RSI_MSFT_LotSize = 5; +input group "=== RSI Scalping BTCUSD ===" +input string RS_BTCUSD_Symbol = "BTCUSD"; // Pepperstone may use: "BTCUSD", "BTC/USD", or "BTCUSD.c" +input ENUM_TIMEFRAMES RS_BTCUSD_TimeFrame = PERIOD_H1; +input int RS_BTCUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_BTCUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_BTCUSD_RSI_Overbought = 90; +input double RS_BTCUSD_RSI_Oversold = 73; +input double RS_BTCUSD_RSI_Target_Buy = 88; +input double RS_BTCUSD_RSI_Target_Sell = 48; +input int RS_BTCUSD_BarsToWait = 6; +input double RS_BTCUSD_LotSize = 0.1; +input int RS_BTCUSD_MagicNumber = 123459123; +input int RS_BTCUSD_Slippage = 3; -//--- RSI Scalping Parameters: NVDA -input ENUM_TIMEFRAMES RSI_NVDA_TimeFrame = PERIOD_M15; -input int RSI_NVDA_Period = 8; -input double RSI_NVDA_Overbought = 36; -input double RSI_NVDA_Oversold = 38; -input double RSI_NVDA_Target_Buy = 90; -input double RSI_NVDA_Target_Sell = 70; -input int RSI_NVDA_BarsToWait = 5; -input double RSI_NVDA_LotSize = 5; +input group "=== RSI Scalping MSFT - Pepperstone US ===" +input string RS_MSFT_Symbol = "MSFT.US"; // Try: "MSFT.US", "NASDAQ:MSFT", or "MSFT" +input ENUM_TIMEFRAMES RS_MSFT_TimeFrame = PERIOD_H3; +input int RS_MSFT_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_MSFT_RSI_Applied_Price = PRICE_CLOSE; +input double RS_MSFT_RSI_Overbought = 19; +input double RS_MSFT_RSI_Oversold = 50; +input double RS_MSFT_RSI_Target_Buy = 71; +input double RS_MSFT_RSI_Target_Sell = 70; +input int RS_MSFT_BarsToWait = 1; +input double RS_MSFT_LotSize = 50; +input int RS_MSFT_MagicNumber = 20002; +input int RS_MSFT_Slippage = 3; -//--- RSI Scalping Parameters: TSLA -input ENUM_TIMEFRAMES RSI_TSLA_TimeFrame = PERIOD_H1; -input int RSI_TSLA_Period = 14; -input double RSI_TSLA_Overbought = 54; -input double RSI_TSLA_Oversold = 73; -input double RSI_TSLA_Target_Buy = 87; -input double RSI_TSLA_Target_Sell = 33; -input int RSI_TSLA_BarsToWait = 1; -input double RSI_TSLA_LotSize = 5; +input group "=== RSI Scalping NVDA - Pepperstone US ===" +input string RS_NVDA_Symbol = "NVDA.US"; // Try: "NVDA.US", "NASDAQ:NVDA", or "NVDA" +input ENUM_TIMEFRAMES RS_NVDA_TimeFrame = PERIOD_M15; +input int RS_NVDA_RSI_Period = 8; +input ENUM_APPLIED_PRICE RS_NVDA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_NVDA_RSI_Overbought = 36; +input double RS_NVDA_RSI_Oversold = 38; +input double RS_NVDA_RSI_Target_Buy = 90; +input double RS_NVDA_RSI_Target_Sell = 70; +input int RS_NVDA_BarsToWait = 5; +input double RS_NVDA_LotSize = 50; +input int RS_NVDA_MagicNumber = 20003; +input int RS_NVDA_Slippage = 3; -//--- Mean Reversion Parameters -input int EMA_Periode = 46; -input double PreisSchwelle = 600.0; -input double SteigungSchwelle = 80.0; -input int ÜberwachungTimeout = 800; -input double TrailingStop = 260.0; -input double MeanRev_LotSize = 0.03; -input ENUM_TIMEFRAMES MeanRev_Timeframe = PERIOD_H1; +input group "=== RSI Scalping TSLA - Pepperstone US ===" +input string RS_TSLA_Symbol = "TSLA.US"; // Try: "TSLA.US", "NASDAQ:TSLA", or "TSLA" +input ENUM_TIMEFRAMES RS_TSLA_TimeFrame = PERIOD_H1; +input int RS_TSLA_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_TSLA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_TSLA_RSI_Overbought = 54; +input double RS_TSLA_RSI_Oversold = 73; +input double RS_TSLA_RSI_Target_Buy = 87; +input double RS_TSLA_RSI_Target_Sell = 33; +input int RS_TSLA_BarsToWait = 1; +input double RS_TSLA_LotSize = 50; +input int RS_TSLA_MagicNumber = 125421321; +input int RS_TSLA_Slippage = 3; -//--- Structure for RSI Scalping Strategy Instance -struct RSIScalpingStrategy -{ +input group "=== RSI Scalping XAUUSD ===" +input string RS_XAUUSD_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES RS_XAUUSD_TimeFrame = PERIOD_H1; +input int RS_XAUUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_XAUUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_XAUUSD_RSI_Overbought = 71; +input double RS_XAUUSD_RSI_Oversold = 57; +input double RS_XAUUSD_RSI_Target_Buy = 80; +input double RS_XAUUSD_RSI_Target_Sell = 57; +input int RS_XAUUSD_BarsToWait = 4; +input double RS_XAUUSD_LotSize = 0.1; +input int RS_XAUUSD_MagicNumber = 129102315; +input int RS_XAUUSD_Slippage = 3; + +//+------------------------------------------------------------------+ +//| Strategy 11-12: RSI Reversal Asian Strategies | +//| Each RSI Reversal Asian strategy trades on its own symbol: | +//| - EURUSD: Euro/USD | +//| - AUDUSD: Australian Dollar/USD | +//+------------------------------------------------------------------+ +input group "=== RSI Reversal Asian EURUSD ===" +input string RRA_EURUSD_Symbol = "EURUSD"; +input int RRA_EURUSD_RSIPeriod = 28; +input double RRA_EURUSD_OverboughtLevel = 60; +input double RRA_EURUSD_OversoldLevel = 8; +input int RRA_EURUSD_TakeProfitPips = 175; +input int RRA_EURUSD_StopLossPips = 5; +input double RRA_EURUSD_MaxLotSize = 0.1; +input int RRA_EURUSD_MaxSpread = 1000; +input int RRA_EURUSD_MaxDuration = 270; +input bool RRA_EURUSD_UseStopLoss = false; +input bool RRA_EURUSD_UseTakeProfit = false; +input bool RRA_EURUSD_UseRSIExit = true; +input double RRA_EURUSD_RSIExitLevel = 55; +input bool RRA_EURUSD_CloseOutsideSession = false; +input ENUM_TIMEFRAMES RRA_EURUSD_TimeFrame = PERIOD_M15; +input int RRA_EURUSD_MagicNumber = 30001; +input int RRA_EURUSD_Slippage = 3; + +input group "=== RSI Reversal Asian AUDUSD ===" +input string RRA_AUDUSD_Symbol = "AUDUSD"; +input int RRA_AUDUSD_RSIPeriod = 28; +input double RRA_AUDUSD_OverboughtLevel = 68; +input double RRA_AUDUSD_OversoldLevel = 30; +input int RRA_AUDUSD_TakeProfitPips = 175; +input int RRA_AUDUSD_StopLossPips = 5; +input double RRA_AUDUSD_MaxLotSize = 0.2; +input int RRA_AUDUSD_MaxSpread = 1000; +input int RRA_AUDUSD_MaxDuration = 340; +input bool RRA_AUDUSD_UseStopLoss = false; +input bool RRA_AUDUSD_UseTakeProfit = false; +input bool RRA_AUDUSD_UseRSIExit = true; +input double RRA_AUDUSD_RSIExitLevel = 48; +input bool RRA_AUDUSD_CloseOutsideSession = true; +input ENUM_TIMEFRAMES RRA_AUDUSD_TimeFrame = PERIOD_M15; +input int RRA_AUDUSD_MagicNumber = 30002; +input int RRA_AUDUSD_Slippage = 3; + +//+------------------------------------------------------------------+ +//| Global Variables - DarvasBox | +//+------------------------------------------------------------------+ +struct DarvasBoxData { string symbol; - int magic_number; - ENUM_TIMEFRAMES timeframe; - int period; - double overbought; - double oversold; - double target_buy; - double target_sell; - int bars_to_wait; - double lot_size; - int rsi_handle; - double rsi_buffer[]; - ulong position_ticket; - bool position_open; - bool buy_position_open; - bool sell_position_open; - datetime last_bar_time; - bool rsi_against_position; - int bars_against_count; - ENUM_POSITION_TYPE current_position_type; + bool isInitialized; + double boxHigh; + double boxLow; + bool boxFormed; + datetime lastBoxTime; + string boxName; + double minStopLevel; + double point; + CTrade trade; + int maHandle; + int volumeHandle; + datetime lastBarTime; }; -//--- Global variables -CTrade trade; -RSIScalpingStrategy rsi_strategies[6]; // Array for 6 instruments -int rsi_strategy_count = 0; +//+------------------------------------------------------------------+ +//| Global Variables - EMA Slope Distance | +//+------------------------------------------------------------------+ +struct EMASlopeData { + string symbol; + bool isInitialized; + int ema_handle; + double ema_array[]; + datetime letzte_überwachung_zeit; + bool überwachung_aktiv; + bool preis_trigger_aktiv; + bool steigung_trigger_aktiv; + int ticket; + CTrade trade; + int trades_in_current_crossover; + bool crossover_detected; + datetime trade_open_time; + datetime last_bar_time; +}; -int ema_handle_meanrev = INVALID_HANDLE; -double ema_array[]; -ulong meanrev_ticket = 0; -bool meanrev_position_open = false; -datetime last_bar_time_meanrev = 0; +//+------------------------------------------------------------------+ +//| Global Variables - RSI CrossOver Reversal | +//+------------------------------------------------------------------+ +struct RSICrossOverData { + string symbol; + bool isInitialized; + int rsiHandle; + int emaHandle; + double previousRSIDef; + CTrade trade; + datetime lastTradeTime; + datetime bartime; + bool WeekDays[7]; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI MidPoint Hijack | +//+------------------------------------------------------------------+ +struct RSIMidPointData { + string symbol; + bool isInitialized; + int rsiHandle; + int rsiReverseHandle; + int emaHandle; + bool rsiOverbought; + bool rsiOversold; + bool rsiReverseOverbought; + bool rsiReverseOversold; + CTrade trade; + CPositionInfo positionInfo; + bool emaCrossBuySignal; + bool emaCrossSellSignal; + int emaCrossSignalBar; + datetime lastBarTime; + datetime rsiReverseLastCloseTime; + bool rsiReverseInCooldown; + double lastBarRSI; + double lastBarRSIReverse; + double lastBarEMA; + double lastBarClose; + double lastBarEMAPrev; + double lastBarClosePrev; +}; + +//+------------------------------------------------------------------+ +//| Global Strategy Instances | +//+------------------------------------------------------------------+ +DarvasBoxData dbData; +EMASlopeData esData; +RSICrossOverData rcData; +RSIMidPointData rmData; +RSIScalpingData rsAPPLData; +RSIScalpingData rsBTCUSDData; +RSIScalpingData rsMSFTData; +RSIScalpingData rsNVDAData; +RSIScalpingData rsTSLAData; +RSIScalpingData rsXAUUSDData; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI Reversal Asian | +//+------------------------------------------------------------------+ +RSIReversalAsianData rraEURUSDData; +RSIReversalAsianData rraAUDUSDData; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { - // Initialize trade object - trade.SetDeviationInPoints(10); - trade.SetTypeFilling(ORDER_FILLING_FOK); + int initResult = INIT_SUCCEEDED; - // Initialize RSI Scalping strategies for each enabled instrument - if(EnableRSIScalping) - { - if(EnableRSI_XAUUSD) - { - InitializeRSIStrategy("XAUUSD", MagicNumber_RSI_XAUUSD, - RSI_XAUUSD_TimeFrame, RSI_XAUUSD_Period, - RSI_XAUUSD_Overbought, RSI_XAUUSD_Oversold, - RSI_XAUUSD_Target_Buy, RSI_XAUUSD_Target_Sell, - RSI_XAUUSD_BarsToWait, RSI_XAUUSD_LotSize); - } - - if(EnableRSI_APPL) - { - // Try different symbol variations for Apple (Pepperstone typically uses AAPL without suffix) - // Try: AAPL, AAPL.US, APPL (in case of typo in broker) - string appl_symbol = GetValidSymbol("AAPL", "AAPL.US"); - if(appl_symbol != "") - { - InitializeRSIStrategy(appl_symbol, MagicNumber_RSI_APPL, - RSI_APPL_TimeFrame, RSI_APPL_Period, - RSI_APPL_Overbought, RSI_APPL_Oversold, - RSI_APPL_Target_Buy, RSI_APPL_Target_Sell, - RSI_APPL_BarsToWait, RSI_APPL_LotSize); - } - else - { - Print("Skipping AAPL strategy - symbol not available"); - } - } - - if(EnableRSI_BTCUSD) - { - InitializeRSIStrategy("BTCUSD", MagicNumber_RSI_BTCUSD, - RSI_BTCUSD_TimeFrame, RSI_BTCUSD_Period, - RSI_BTCUSD_Overbought, RSI_BTCUSD_Oversold, - RSI_BTCUSD_Target_Buy, RSI_BTCUSD_Target_Sell, - RSI_BTCUSD_BarsToWait, RSI_BTCUSD_LotSize); - } - - if(EnableRSI_MSFT) - { - // Pepperstone typically uses MSFT without suffix - string msft_symbol = GetValidSymbol("MSFT", "MSFT.US"); - if(msft_symbol != "") - { - InitializeRSIStrategy(msft_symbol, MagicNumber_RSI_MSFT, - RSI_MSFT_TimeFrame, RSI_MSFT_Period, - RSI_MSFT_Overbought, RSI_MSFT_Oversold, - RSI_MSFT_Target_Buy, RSI_MSFT_Target_Sell, - RSI_MSFT_BarsToWait, RSI_MSFT_LotSize); - } - else - { - Print("Skipping MSFT strategy - symbol not available"); - } - } - - if(EnableRSI_NVDA) - { - // Pepperstone typically uses NVDA without suffix - string nvda_symbol = GetValidSymbol("NVDA", "NVDA.US"); - if(nvda_symbol != "") - { - InitializeRSIStrategy(nvda_symbol, MagicNumber_RSI_NVDA, - RSI_NVDA_TimeFrame, RSI_NVDA_Period, - RSI_NVDA_Overbought, RSI_NVDA_Oversold, - RSI_NVDA_Target_Buy, RSI_NVDA_Target_Sell, - RSI_NVDA_BarsToWait, RSI_NVDA_LotSize); - } - else - { - Print("Skipping NVDA strategy - symbol not available"); - } - } - - if(EnableRSI_TSLA) - { - // Pepperstone typically uses TSLA without suffix - string tsla_symbol = GetValidSymbol("TSLA", "TSLA.US"); - if(tsla_symbol != "") - { - InitializeRSIStrategy(tsla_symbol, MagicNumber_RSI_TSLA, - RSI_TSLA_TimeFrame, RSI_TSLA_Period, - RSI_TSLA_Overbought, RSI_TSLA_Oversold, - RSI_TSLA_Target_Buy, RSI_TSLA_Target_Sell, - RSI_TSLA_BarsToWait, RSI_TSLA_LotSize); - } - else - { - Print("Skipping TSLA strategy - symbol not available"); - } - } - } + // Initialize global lot size variables + g_ES_LotSize = 0.03; + g_RC_LotSize = 0.01; + g_RM_LotSize = 0.02; - // Initialize Mean Reversion indicator - if(EnableMeanReversion) - { - ema_handle_meanrev = iMA(_Symbol, MeanRev_Timeframe, EMA_Periode, 0, MODE_EMA, PRICE_CLOSE); - if(ema_handle_meanrev == INVALID_HANDLE) - { - Print("Error: Failed to create EMA indicator for Mean Reversion"); - return(INIT_FAILED); - } - ArraySetAsSeries(ema_array, true); - trade.SetExpertMagicNumber(MagicNumber_MeanReversion); - Print("Mean Reversion Strategy initialized with Magic: ", MagicNumber_MeanReversion); - } + // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable + if(EnableDarvasBox) + if(!InitDarvasBox(DB_Symbol)) + Print("Warning: DarvasBox strategy failed to initialize for symbol '", DB_Symbol, "'"); - Print("United EA initialized successfully"); - Print("Active RSI Scalping Strategies: ", rsi_strategy_count); - for(int i = 0; i < rsi_strategy_count; i++) - { - Print(" - ", rsi_strategies[i].symbol, " (Magic: ", rsi_strategies[i].magic_number, - ", TF: ", EnumToString(rsi_strategies[i].timeframe), ")"); - } - if(EnableMeanReversion) Print(" - Mean Reversion (Magic: ", MagicNumber_MeanReversion, ")"); + if(EnableEMASlopeDistance) + if(!InitEMASlopeDistance(ES_Symbol)) + Print("Warning: EMASlopeDistance strategy failed to initialize for symbol '", ES_Symbol, "'"); - return(INIT_SUCCEEDED); -} - -//+------------------------------------------------------------------+ -//| Get valid symbol name (try variations) | -//+------------------------------------------------------------------+ -string GetValidSymbol(string preferred, string fallback) -{ - string symbols_to_try[]; - ArrayResize(symbols_to_try, 0); + if(EnableRSICrossOverReversal) + if(!InitRSICrossOverReversal(RC_Symbol)) + Print("Warning: RSICrossOverReversal strategy failed to initialize for symbol '", RC_Symbol, "'"); - // Build list of symbols to try - ArrayResize(symbols_to_try, 1); - symbols_to_try[0] = preferred; + if(EnableRSIMidPointHijack) + if(!InitRSIMidPointHijack(RM_Symbol)) + Print("Warning: RSIMidPointHijack strategy failed to initialize for symbol '", RM_Symbol, "'"); - if(fallback != preferred) - { - ArrayResize(symbols_to_try, 2); - symbols_to_try[1] = fallback; - } + // Initialize RSI Scalping strategies - don't fail entire EA if symbol unavailable + if(EnableRSIScalpingAPPL) + InitRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_MagicNumber, RS_APPL_Slippage); - // If preferred has .US, also try without it - if(StringFind(preferred, ".US") >= 0) - { - string without_suffix = preferred; - StringReplace(without_suffix, ".US", ""); - if(without_suffix != fallback) - { - int size = ArraySize(symbols_to_try); - ArrayResize(symbols_to_try, size + 1); - symbols_to_try[size] = without_suffix; - } - } + if(EnableRSIScalpingBTCUSD) + InitRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_MagicNumber, RS_BTCUSD_Slippage); - // Try each symbol variation - for(int i = 0; i < ArraySize(symbols_to_try); i++) - { - string test_symbol = symbols_to_try[i]; - - // Try to select the symbol - if(!SymbolSelect(test_symbol, true)) - { - // Symbol might already be selected, check if it exists - if(!SymbolInfoInteger(test_symbol, SYMBOL_SELECT)) - { - continue; // Symbol doesn't exist, try next - } - } - - // Verify symbol is visible - if(SymbolInfoInteger(test_symbol, SYMBOL_VISIBLE)) - { - // Check if we can get price data (symbol is really available) - // During initialization, prices might be 0 if symbol is still synchronizing - // So we'll be lenient and accept the symbol if it's visible - double bid = SymbolInfoDouble(test_symbol, SYMBOL_BID); - double ask = SymbolInfoDouble(test_symbol, SYMBOL_ASK); - - // Accept symbol if it has valid prices OR if it's visible (might be syncing) - if((bid > 0 && ask > 0) || SymbolInfoInteger(test_symbol, SYMBOL_VISIBLE)) - { - if(bid > 0 && ask > 0) - { - Print("Using symbol: ", test_symbol, " (Bid: ", bid, ", Ask: ", ask, ")"); - } - else - { - Print("Using symbol: ", test_symbol, " (synchronizing, prices not yet available)"); - } - return test_symbol; - } - } - } + if(EnableRSIScalpingMSFT) + InitRSIScalping(rsMSFTData, RS_MSFT_Symbol, RS_MSFT_TimeFrame, RS_MSFT_RSI_Period, RS_MSFT_RSI_Applied_Price, RS_MSFT_MagicNumber, RS_MSFT_Slippage); - Print("Error: Could not find valid symbol for ", preferred, " or ", fallback); - Print("Tried ", ArraySize(symbols_to_try), " symbol variations:"); - for(int i = 0; i < ArraySize(symbols_to_try); i++) - { - Print(" ", (i+1), ". ", symbols_to_try[i]); - } - Print("These symbols may not be available in your broker's symbol list."); - Print("Please add the symbol to Market Watch or disable this strategy."); + if(EnableRSIScalpingNVDA) + InitRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_MagicNumber, RS_NVDA_Slippage); - return ""; // Return empty string to indicate failure -} - -//+------------------------------------------------------------------+ -//| Initialize RSI Scalping Strategy for an instrument | -//+------------------------------------------------------------------+ -void InitializeRSIStrategy(string symbol, int magic, ENUM_TIMEFRAMES tf, int period, - double overbought, double oversold, double target_buy, - double target_sell, int bars_wait, double lot_size) -{ - if(rsi_strategy_count >= 6) - { - Print("Error: Maximum 6 RSI strategies allowed"); - return; - } + if(EnableRSIScalpingTSLA) + InitRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_MagicNumber, RS_TSLA_Slippage); - // Work directly with array element (no reference) - rsi_strategies[rsi_strategy_count].symbol = symbol; - rsi_strategies[rsi_strategy_count].magic_number = magic; - rsi_strategies[rsi_strategy_count].timeframe = tf; - rsi_strategies[rsi_strategy_count].period = period; - rsi_strategies[rsi_strategy_count].overbought = overbought; - rsi_strategies[rsi_strategy_count].oversold = oversold; - rsi_strategies[rsi_strategy_count].target_buy = target_buy; - rsi_strategies[rsi_strategy_count].target_sell = target_sell; - rsi_strategies[rsi_strategy_count].bars_to_wait = bars_wait; - rsi_strategies[rsi_strategy_count].lot_size = lot_size; - rsi_strategies[rsi_strategy_count].position_ticket = 0; - rsi_strategies[rsi_strategy_count].position_open = false; - rsi_strategies[rsi_strategy_count].buy_position_open = false; - rsi_strategies[rsi_strategy_count].sell_position_open = false; - rsi_strategies[rsi_strategy_count].last_bar_time = 0; - rsi_strategies[rsi_strategy_count].rsi_against_position = false; - rsi_strategies[rsi_strategy_count].bars_against_count = 0; - rsi_strategies[rsi_strategy_count].current_position_type = WRONG_VALUE; + if(EnableRSIScalpingXAUUSD) + InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); - // Ensure symbol is selected before creating indicator - if(!SymbolSelect(symbol, true)) - { - // Symbol might already be selected, check if it exists - if(!SymbolInfoInteger(symbol, SYMBOL_SELECT)) - { - Print("Error: Failed to select symbol ", symbol, " for RSI indicator"); - Print("Please ensure the symbol exists in Market Watch or add it manually"); - return; - } - } + // Initialize RSI Reversal Asian strategies + if(EnableRSIReversalAsianEURUSD) + if(!InitRSIReversalAsian(rraEURUSDData, RRA_EURUSD_Symbol, RRA_EURUSD_RSIPeriod, RRA_EURUSD_OverboughtLevel, RRA_EURUSD_OversoldLevel, + RRA_EURUSD_TakeProfitPips, RRA_EURUSD_StopLossPips, RRA_EURUSD_MaxLotSize, + RRA_EURUSD_MaxSpread, RRA_EURUSD_MaxDuration, RRA_EURUSD_UseStopLoss, + RRA_EURUSD_UseTakeProfit, RRA_EURUSD_UseRSIExit, RRA_EURUSD_RSIExitLevel, + RRA_EURUSD_CloseOutsideSession, RRA_EURUSD_TimeFrame, RRA_EURUSD_MagicNumber, RRA_EURUSD_Slippage)) + Print("Warning: RSIReversalAsianEURUSD strategy failed to initialize for symbol '", RRA_EURUSD_Symbol, "'"); - // Verify symbol is visible (prices might be 0 during synchronization) - if(!SymbolInfoInteger(symbol, SYMBOL_VISIBLE)) - { - Print("Error: Symbol ", symbol, " is not visible"); - Print("Please add the symbol to Market Watch"); - return; - } + if(EnableRSIReversalAsianAUDUSD) + if(!InitRSIReversalAsian(rraAUDUSDData, RRA_AUDUSD_Symbol, RRA_AUDUSD_RSIPeriod, RRA_AUDUSD_OverboughtLevel, RRA_AUDUSD_OversoldLevel, + RRA_AUDUSD_TakeProfitPips, RRA_AUDUSD_StopLossPips, RRA_AUDUSD_MaxLotSize, + RRA_AUDUSD_MaxSpread, RRA_AUDUSD_MaxDuration, RRA_AUDUSD_UseStopLoss, + RRA_AUDUSD_UseTakeProfit, RRA_AUDUSD_UseRSIExit, RRA_AUDUSD_RSIExitLevel, + RRA_AUDUSD_CloseOutsideSession, RRA_AUDUSD_TimeFrame, RRA_AUDUSD_MagicNumber, RRA_AUDUSD_Slippage)) + Print("Warning: RSIReversalAsianAUDUSD strategy failed to initialize for symbol '", RRA_AUDUSD_Symbol, "'"); - // Check prices (but don't fail if they're 0 - symbol might be syncing) - double bid = SymbolInfoDouble(symbol, SYMBOL_BID); - double ask = SymbolInfoDouble(symbol, SYMBOL_ASK); - if(bid <= 0 || ask <= 0) - { - Print("Warning: Symbol ", symbol, " has no prices yet (Bid: ", bid, ", Ask: ", ask, ")"); - Print("Symbol may be synchronizing. Will attempt to create indicator anyway..."); - } + Print("United EA initialized. Active strategies: ", + (EnableDarvasBox ? "DarvasBox " : ""), + (EnableEMASlopeDistance ? "EMASlope " : ""), + (EnableRSICrossOverReversal ? "RSICrossOver " : ""), + (EnableRSIMidPointHijack ? "RSIMidPoint " : ""), + (EnableRSIScalpingAPPL ? "RSIScalpingAPPL " : ""), + (EnableRSIScalpingBTCUSD ? "RSIScalpingBTCUSD " : ""), + (EnableRSIScalpingMSFT ? "RSIScalpingMSFT " : ""), + (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), + (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), + (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : ""), + (EnableRSIReversalAsianEURUSD ? "RSIReversalAsianEURUSD " : ""), + (EnableRSIReversalAsianAUDUSD ? "RSIReversalAsianAUDUSD " : "")); - // Create RSI indicator for this symbol - rsi_strategies[rsi_strategy_count].rsi_handle = iRSI(symbol, tf, period, PRICE_CLOSE); - if(rsi_strategies[rsi_strategy_count].rsi_handle == INVALID_HANDLE) - { - int error = GetLastError(); - Print("Error: Failed to create RSI indicator for ", symbol, " (Error: ", error, ")"); - Print("Symbol: ", symbol, ", Timeframe: ", EnumToString(tf), ", Period: ", period); - Print("Please check if the symbol is available in your broker's symbol list"); - return; - } - - ArraySetAsSeries(rsi_strategies[rsi_strategy_count].rsi_buffer, true); - rsi_strategy_count++; - - Print("RSI Scalping Strategy initialized for ", symbol, - " (Magic: ", magic, ", TF: ", EnumToString(tf), ")"); + return initResult; } //+------------------------------------------------------------------+ @@ -443,17 +502,43 @@ void InitializeRSIStrategy(string symbol, int magic, ENUM_TIMEFRAMES tf, int per //+------------------------------------------------------------------+ void OnDeinit(const int reason) { - // Release all RSI indicators - for(int i = 0; i < rsi_strategy_count; i++) - { - if(rsi_strategies[i].rsi_handle != INVALID_HANDLE) - IndicatorRelease(rsi_strategies[i].rsi_handle); - } + if(EnableDarvasBox) + DeinitDarvasBox(); - if(ema_handle_meanrev != INVALID_HANDLE) - IndicatorRelease(ema_handle_meanrev); + if(EnableEMASlopeDistance) + DeinitEMASlopeDistance(); - Print("United EA deinitialized"); + if(EnableRSICrossOverReversal) + DeinitRSICrossOverReversal(); + + if(EnableRSIMidPointHijack) + DeinitRSIMidPointHijack(); + + if(EnableRSIScalpingAPPL) + DeinitRSIScalping(rsAPPLData); + + if(EnableRSIScalpingBTCUSD) + DeinitRSIScalping(rsBTCUSDData); + + if(EnableRSIScalpingMSFT) + DeinitRSIScalping(rsMSFTData); + + if(EnableRSIScalpingNVDA) + DeinitRSIScalping(rsNVDAData); + + if(EnableRSIScalpingTSLA) + DeinitRSIScalping(rsTSLAData); + + if(EnableRSIScalpingXAUUSD) + DeinitRSIScalping(rsXAUUSDData); + + if(EnableRSIReversalAsianEURUSD) + DeinitRSIReversalAsian(rraEURUSDData); + + if(EnableRSIReversalAsianAUDUSD) + DeinitRSIReversalAsian(rraAUDUSDData); + + Print("United EA deinitialized. Reason: ", reason); } //+------------------------------------------------------------------+ @@ -461,502 +546,53 @@ void OnDeinit(const int reason) //+------------------------------------------------------------------+ void OnTick() { - // Run RSI Scalping Strategies for all enabled instruments - if(EnableRSIScalping) - { - for(int i = 0; i < rsi_strategy_count; i++) - { - RunRSIScalpingStrategy(i); - } - } + if(EnableDarvasBox) + ProcessDarvasBox(DB_Symbol); - // Run Mean Reversion Strategy - if(EnableMeanReversion) - { - RunMeanReversionStrategy(); - } -} - -//+------------------------------------------------------------------+ -//| RSI Scalping Strategy for a specific instrument (by index) | -//+------------------------------------------------------------------+ -void RunRSIScalpingStrategy(int strategy_index) -{ - // Access strategy by index (no reference needed) - // Check if we have enough bars - if(Bars(rsi_strategies[strategy_index].symbol, rsi_strategies[strategy_index].timeframe) < - rsi_strategies[strategy_index].period + 2) - return; - - // Check if this is a new bar - datetime current_bar_time = iTime(rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].timeframe, 0); - if(current_bar_time == rsi_strategies[strategy_index].last_bar_time) - return; - - rsi_strategies[strategy_index].last_bar_time = current_bar_time; - - // Update RSI values - if(CopyBuffer(rsi_strategies[strategy_index].rsi_handle, 0, 0, 3, - rsi_strategies[strategy_index].rsi_buffer) < 3) - return; - - double rsi_current = rsi_strategies[strategy_index].rsi_buffer[0]; - double rsi_prev = rsi_strategies[strategy_index].rsi_buffer[1]; - double rsi_two_bars_ago = rsi_strategies[strategy_index].rsi_buffer[2]; - - // Set magic number for this strategy - trade.SetExpertMagicNumber(rsi_strategies[strategy_index].magic_number); - - // Check if position exists (regardless of flag state - handles EA restart) - bool position_exists = PositionExistsByMagic(rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number); - - if(position_exists) - { - // Get actual position type and ticket - ulong ticket = GetPositionTicketByMagic(rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number); - ENUM_POSITION_TYPE pos_type = GetPositionTypeByMagic(rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number); - - if(ticket == 0 || pos_type == WRONG_VALUE) - { - // Position doesn't exist or invalid - rsi_strategies[strategy_index].position_open = false; - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = false; - rsi_strategies[strategy_index].position_ticket = 0; - rsi_strategies[strategy_index].rsi_against_position = false; - rsi_strategies[strategy_index].bars_against_count = 0; - return; - } - - // Update position tracking with fine-grained flags - rsi_strategies[strategy_index].position_ticket = ticket; - rsi_strategies[strategy_index].position_open = true; - rsi_strategies[strategy_index].current_position_type = pos_type; - - if(pos_type == POSITION_TYPE_BUY) - { - rsi_strategies[strategy_index].buy_position_open = true; - rsi_strategies[strategy_index].sell_position_open = false; - } - else if(pos_type == POSITION_TYPE_SELL) - { - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = true; - } - - // Verify position still exists with correct ticket, symbol, and magic number - if(!PositionSelectByTicketSymbolAndMagic(rsi_strategies[strategy_index].position_ticket, - rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number)) - { - // Position was closed externally or doesn't match this instrument, reset tracking - rsi_strategies[strategy_index].position_open = false; - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = false; - rsi_strategies[strategy_index].position_ticket = 0; - rsi_strategies[strategy_index].rsi_against_position = false; - rsi_strategies[strategy_index].bars_against_count = 0; - return; - } - - // Double-check position type matches our tracking (instrument-specific verification) - ENUM_POSITION_TYPE actual_pos_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); - string actual_symbol = PositionGetString(POSITION_SYMBOL); - - if(actual_symbol != rsi_strategies[strategy_index].symbol) - { - Print("Warning: Position symbol mismatch for ", rsi_strategies[strategy_index].symbol, - " - Found: ", actual_symbol, ". Resetting tracking."); - rsi_strategies[strategy_index].position_open = false; - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = false; - rsi_strategies[strategy_index].position_ticket = 0; - rsi_strategies[strategy_index].rsi_against_position = false; - rsi_strategies[strategy_index].bars_against_count = 0; - return; - } - - // Update position type if it changed (shouldn't happen, but safety check) - if(actual_pos_type != pos_type) - { - Print("Warning: Position type changed for ", rsi_strategies[strategy_index].symbol, - " - Updating from ", EnumToString(pos_type), " to ", EnumToString(actual_pos_type)); - pos_type = actual_pos_type; - rsi_strategies[strategy_index].current_position_type = pos_type; - - if(pos_type == POSITION_TYPE_BUY) - { - rsi_strategies[strategy_index].buy_position_open = true; - rsi_strategies[strategy_index].sell_position_open = false; - } - else if(pos_type == POSITION_TYPE_SELL) - { - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = true; - } - } - - if(pos_type == POSITION_TYPE_BUY) - { - // Check if RSI is against the position (below oversold) - if(rsi_current < rsi_strategies[strategy_index].oversold) - { - if(!rsi_strategies[strategy_index].rsi_against_position) - { - rsi_strategies[strategy_index].rsi_against_position = true; - rsi_strategies[strategy_index].bars_against_count = 1; - } - else - { - rsi_strategies[strategy_index].bars_against_count++; - } - - // Close position if RSI has been against for Y bars - if(rsi_strategies[strategy_index].bars_against_count >= - rsi_strategies[strategy_index].bars_to_wait) - { - if(ClosePositionByMagic(trade, rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number)) - { - rsi_strategies[strategy_index].position_open = false; - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = false; - rsi_strategies[strategy_index].position_ticket = 0; - rsi_strategies[strategy_index].rsi_against_position = false; - rsi_strategies[strategy_index].bars_against_count = 0; - Print("Closed ", rsi_strategies[strategy_index].symbol, " BUY position - RSI against for ", - rsi_strategies[strategy_index].bars_to_wait, " bars"); - } - else - { - Print("Failed to close ", rsi_strategies[strategy_index].symbol, " BUY position - will retry"); - } - return; - } - } - else - { - // RSI is no longer against the position, reset counter - if(rsi_strategies[strategy_index].rsi_against_position) - { - rsi_strategies[strategy_index].rsi_against_position = false; - rsi_strategies[strategy_index].bars_against_count = 0; - } - - // Exit long position when RSI reaches buy target - if(rsi_current >= rsi_strategies[strategy_index].target_buy) - { - if(ClosePositionByMagic(trade, rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number)) - { - rsi_strategies[strategy_index].position_open = false; - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = false; - rsi_strategies[strategy_index].position_ticket = 0; - rsi_strategies[strategy_index].rsi_against_position = false; - rsi_strategies[strategy_index].bars_against_count = 0; - Print("Closed ", rsi_strategies[strategy_index].symbol, " BUY position - RSI reached target: ", - rsi_strategies[strategy_index].target_buy); - } - else - { - Print("Failed to close ", rsi_strategies[strategy_index].symbol, " BUY position - will retry"); - } - } - } - } - else if(pos_type == POSITION_TYPE_SELL) - { - // Check if RSI is against the position (above overbought) - if(rsi_current > rsi_strategies[strategy_index].overbought) - { - if(!rsi_strategies[strategy_index].rsi_against_position) - { - rsi_strategies[strategy_index].rsi_against_position = true; - rsi_strategies[strategy_index].bars_against_count = 1; - } - else - { - rsi_strategies[strategy_index].bars_against_count++; - } - - // Close position if RSI has been against for Y bars - if(rsi_strategies[strategy_index].bars_against_count >= - rsi_strategies[strategy_index].bars_to_wait) - { - if(ClosePositionByMagic(trade, rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number)) - { - rsi_strategies[strategy_index].position_open = false; - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = false; - rsi_strategies[strategy_index].position_ticket = 0; - rsi_strategies[strategy_index].rsi_against_position = false; - rsi_strategies[strategy_index].bars_against_count = 0; - Print("Closed ", rsi_strategies[strategy_index].symbol, " SELL position - RSI against for ", - rsi_strategies[strategy_index].bars_to_wait, " bars"); - } - else - { - Print("Failed to close ", rsi_strategies[strategy_index].symbol, " SELL position - will retry"); - } - return; - } - } - else - { - // RSI is no longer against the position, reset counter - if(rsi_strategies[strategy_index].rsi_against_position) - { - rsi_strategies[strategy_index].rsi_against_position = false; - rsi_strategies[strategy_index].bars_against_count = 0; - } - - // Exit short position when RSI reaches sell target - if(rsi_current <= rsi_strategies[strategy_index].target_sell) - { - if(ClosePositionByMagic(trade, rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number)) - { - rsi_strategies[strategy_index].position_open = false; - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = false; - rsi_strategies[strategy_index].position_ticket = 0; - rsi_strategies[strategy_index].rsi_against_position = false; - rsi_strategies[strategy_index].bars_against_count = 0; - Print("Closed ", rsi_strategies[strategy_index].symbol, " SELL position - RSI reached target: ", - rsi_strategies[strategy_index].target_sell); - } - else - { - Print("Failed to close ", rsi_strategies[strategy_index].symbol, " SELL position - will retry"); - } - } - } - } - } - else - { - // No position exists - reset all tracking flags - rsi_strategies[strategy_index].position_open = false; - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = false; - rsi_strategies[strategy_index].position_ticket = 0; - rsi_strategies[strategy_index].rsi_against_position = false; - rsi_strategies[strategy_index].bars_against_count = 0; - - // Check for new entry signals (only if no position exists) - if(!PositionExistsByMagic(rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number)) - { - // Buy signal: RSI crosses from oversold to above oversold - // Only enter if we don't already have a buy position for THIS EA (magic number) on THIS INSTRUMENT - if(!rsi_strategies[strategy_index].buy_position_open) - { - if(rsi_two_bars_ago <= rsi_strategies[strategy_index].oversold && - rsi_prev > rsi_strategies[strategy_index].oversold) - { - double ask = SymbolInfoDouble(rsi_strategies[strategy_index].symbol, SYMBOL_ASK); - if(trade.Buy(rsi_strategies[strategy_index].lot_size, - rsi_strategies[strategy_index].symbol, ask, 0, 0, - "RSI Scalping Buy " + rsi_strategies[strategy_index].symbol)) - { - ulong new_ticket = trade.ResultOrder(); - if(new_ticket > 0) - { - // Verify the position was actually opened for THIS SPECIFIC INSTRUMENT - if(PositionSelectByTicketSymbolAndMagic(new_ticket, - rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number)) - { - rsi_strategies[strategy_index].position_ticket = new_ticket; - rsi_strategies[strategy_index].position_open = true; - rsi_strategies[strategy_index].buy_position_open = true; - rsi_strategies[strategy_index].sell_position_open = false; - rsi_strategies[strategy_index].current_position_type = POSITION_TYPE_BUY; - Print("Opened BUY position for ", rsi_strategies[strategy_index].symbol, - " (Ticket: ", rsi_strategies[strategy_index].position_ticket, - ", Magic: ", rsi_strategies[strategy_index].magic_number, ")"); - } - else - { - Print("Error: Position opened but doesn't match instrument ", - rsi_strategies[strategy_index].symbol, " - resetting tracking"); - rsi_strategies[strategy_index].position_ticket = 0; - rsi_strategies[strategy_index].position_open = false; - rsi_strategies[strategy_index].buy_position_open = false; - } - } - } - } - } - - // Sell signal: RSI crosses from overbought to below overbought - // Only enter if we don't already have a sell position for THIS EA (magic number) on THIS INSTRUMENT - if(!rsi_strategies[strategy_index].sell_position_open) - { - if(rsi_two_bars_ago >= rsi_strategies[strategy_index].overbought && - rsi_prev < rsi_strategies[strategy_index].overbought) - { - double bid = SymbolInfoDouble(rsi_strategies[strategy_index].symbol, SYMBOL_BID); - if(trade.Sell(rsi_strategies[strategy_index].lot_size, - rsi_strategies[strategy_index].symbol, bid, 0, 0, - "RSI Scalping Sell " + rsi_strategies[strategy_index].symbol)) - { - ulong new_ticket = trade.ResultOrder(); - if(new_ticket > 0) - { - // Verify the position was actually opened for THIS SPECIFIC INSTRUMENT - if(PositionSelectByTicketSymbolAndMagic(new_ticket, - rsi_strategies[strategy_index].symbol, - rsi_strategies[strategy_index].magic_number)) - { - rsi_strategies[strategy_index].position_ticket = new_ticket; - rsi_strategies[strategy_index].position_open = true; - rsi_strategies[strategy_index].buy_position_open = false; - rsi_strategies[strategy_index].sell_position_open = true; - rsi_strategies[strategy_index].current_position_type = POSITION_TYPE_SELL; - Print("Opened SELL position for ", rsi_strategies[strategy_index].symbol, - " (Ticket: ", rsi_strategies[strategy_index].position_ticket, - ", Magic: ", rsi_strategies[strategy_index].magic_number, ")"); - } - else - { - Print("Error: Position opened but doesn't match instrument ", - rsi_strategies[strategy_index].symbol, " - resetting tracking"); - rsi_strategies[strategy_index].position_ticket = 0; - rsi_strategies[strategy_index].position_open = false; - rsi_strategies[strategy_index].sell_position_open = false; - } - } - } - } - } - } - } -} - -//+------------------------------------------------------------------+ -//| Mean Reversion Strategy | -//+------------------------------------------------------------------+ -void RunMeanReversionStrategy() -{ - // Check if this is a new bar - datetime current_bar_time = iTime(_Symbol, MeanRev_Timeframe, 0); - if(current_bar_time == last_bar_time_meanrev) - return; - - last_bar_time_meanrev = current_bar_time; - - // Update EMA values - if(CopyBuffer(ema_handle_meanrev, 0, 0, 3, ema_array) < 3) - return; - - double ema_current = ema_array[0]; - double ema_prev = ema_array[1]; - double current_close = iClose(_Symbol, MeanRev_Timeframe, 0); - - // Set magic number for this strategy - trade.SetExpertMagicNumber(MagicNumber_MeanReversion); - - // Check existing position - if(PositionExistsByMagic(_Symbol, MagicNumber_MeanReversion)) - { - // Manage existing position (trailing stop, exit conditions, etc.) - ManageMeanReversionPosition(ema_current, current_close); - } - else - { - // Check for new entry signals - CheckMeanReversionEntry(ema_current, ema_prev, current_close); - } -} - -//+------------------------------------------------------------------+ -//| Manage Mean Reversion Position | -//+------------------------------------------------------------------+ -void ManageMeanReversionPosition(double ema_current, double current_close) -{ - if(!PositionSelectByMagic(_Symbol, MagicNumber_MeanReversion)) - return; - - double position_profit = PositionGetDouble(POSITION_PROFIT); - double current_price = PositionGetDouble(POSITION_PRICE_CURRENT); - ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); - - double pips_multiplier = (_Digits == 3 || _Digits == 5) ? 10.0 : 1.0; - - // Trailing stop - if(position_profit > 0) - { - if(position_type == POSITION_TYPE_BUY) - { - double new_stop_loss = current_price - (TrailingStop * _Point * pips_multiplier); - double current_stop_loss = PositionGetDouble(POSITION_SL); - if(new_stop_loss > current_stop_loss) - { - ModifyPositionByMagic(trade, _Symbol, MagicNumber_MeanReversion, - new_stop_loss, PositionGetDouble(POSITION_TP)); - } - } - else if(position_type == POSITION_TYPE_SELL) - { - double new_stop_loss = current_price + (TrailingStop * _Point * pips_multiplier); - double current_stop_loss = PositionGetDouble(POSITION_SL); - if(new_stop_loss < current_stop_loss || current_stop_loss == 0) - { - ModifyPositionByMagic(trade, _Symbol, MagicNumber_MeanReversion, - new_stop_loss, PositionGetDouble(POSITION_TP)); - } - } - } - - // Exit when price crosses EMA - bool exit_bullish = (position_type == POSITION_TYPE_SELL && current_close > ema_current); - bool exit_bearish = (position_type == POSITION_TYPE_BUY && current_close < ema_current); - - if(exit_bullish || exit_bearish) - { - ClosePositionByMagic(trade, _Symbol, MagicNumber_MeanReversion); - } -} - -//+------------------------------------------------------------------+ -//| Check Mean Reversion Entry Signals | -//+------------------------------------------------------------------+ -void CheckMeanReversionEntry(double ema_current, double ema_prev, double current_close) -{ - // Simplified entry logic - can be expanded - double pips_multiplier = (_Digits == 3 || _Digits == 5) ? 10.0 : 1.0; - double preis_abstand = MathAbs(current_close - ema_current) / _Point / pips_multiplier; - double steigung = (ema_current - ema_prev) / _Point / pips_multiplier; - - // Entry conditions - bool bullish_signal = (current_close > ema_current && preis_abstand > PreisSchwelle && - MathAbs(steigung) > SteigungSchwelle); - bool bearish_signal = (current_close < ema_current && preis_abstand > PreisSchwelle && - MathAbs(steigung) > SteigungSchwelle); - - if(bullish_signal) - { - if(trade.Buy(MeanRev_LotSize, _Symbol, 0, 0, 0, "Mean Reversion Buy")) - { - meanrev_ticket = trade.ResultOrder(); - meanrev_position_open = true; - } - } - else if(bearish_signal) - { - if(trade.Sell(MeanRev_LotSize, _Symbol, 0, 0, 0, "Mean Reversion Sell")) - { - meanrev_ticket = trade.ResultOrder(); - meanrev_position_open = true; - } - } + if(EnableEMASlopeDistance) + ProcessEMASlopeDistance(ES_Symbol); + + if(EnableRSICrossOverReversal) + ProcessRSICrossOverReversal(RC_Symbol); + + if(EnableRSIMidPointHijack) + ProcessRSIMidPointHijack(RM_Symbol); + + if(EnableRSIScalpingAPPL) + ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, + RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, + RS_APPL_BarsToWait, RS_APPL_LotSize, RS_APPL_MagicNumber); + + if(EnableRSIScalpingBTCUSD) + ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, + RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, + RS_BTCUSD_BarsToWait, RS_BTCUSD_LotSize, RS_BTCUSD_MagicNumber); + + if(EnableRSIScalpingMSFT) + ProcessRSIScalping(rsMSFTData, RS_MSFT_Symbol, RS_MSFT_TimeFrame, RS_MSFT_RSI_Period, RS_MSFT_RSI_Applied_Price, + RS_MSFT_RSI_Overbought, RS_MSFT_RSI_Oversold, RS_MSFT_RSI_Target_Buy, RS_MSFT_RSI_Target_Sell, + RS_MSFT_BarsToWait, RS_MSFT_LotSize, RS_MSFT_MagicNumber); + + if(EnableRSIScalpingNVDA) + ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, + RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, + RS_NVDA_BarsToWait, RS_NVDA_LotSize, RS_NVDA_MagicNumber); + + if(EnableRSIScalpingTSLA) + ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, + RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, + RS_TSLA_BarsToWait, RS_TSLA_LotSize, RS_TSLA_MagicNumber); + + if(EnableRSIScalpingXAUUSD) + ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, + RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, + RS_XAUUSD_BarsToWait, RS_XAUUSD_LotSize, RS_XAUUSD_MagicNumber); + + if(EnableRSIReversalAsianEURUSD) + ProcessRSIReversalAsian(rraEURUSDData, RRA_EURUSD_MaxLotSize); + + if(EnableRSIReversalAsianAUDUSD) + ProcessRSIReversalAsian(rraAUDUSDData, RRA_AUDUSD_MaxLotSize); } //+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united/self-evaluate.mq5 b/frontline/MQL5/_united/self-evaluate.mq5 new file mode 100644 index 0000000..b9d92e9 --- /dev/null +++ b/frontline/MQL5/_united/self-evaluate.mq5 @@ -0,0 +1,683 @@ +//+------------------------------------------------------------------+ +//| UnitedEA.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" +#property strict + +#include +#include +#include +#include +#include "MagicNumberHelpers.mqh" +#include "PerformanceEvaluator.mqh" + +//+------------------------------------------------------------------+ +//| Strategy Enable/Disable Switches | +//+------------------------------------------------------------------+ +input group "=== Strategy Enable/Disable ===" +input bool EnableDarvasBox = true; +input bool EnableEMASlopeDistance = true; +input bool EnableRSICrossOverReversal = true; +input bool EnableRSIMidPointHijack = true; +input bool EnableRSIScalpingAPPL = true; +input bool EnableRSIScalpingBTCUSD = true; +input bool EnableRSIScalpingMSFT = true; +input bool EnableRSIScalpingNVDA = true; +input bool EnableRSIScalpingTSLA = true; +input bool EnableRSIScalpingXAUUSD = true; + +//+------------------------------------------------------------------+ +//| Strategy 1: DarvasBoxXAUUSD | +//+------------------------------------------------------------------+ +input group "=== DarvasBox Strategy ===" +input string DB_Symbol = "XAUUSD"; +input int DB_BoxPeriod = 165; +input double DB_BoxDeviation = 30000; // Increased to allow larger ranges (was 25140) +input int DB_VolumeThreshold = 0; // Set to 0 to disable volume threshold check. Volume data from indicator used instead. +input double DB_StopLoss = 1665; +input double DB_TakeProfit = 3685; +input bool DB_EnableLogging = false; +input color DB_BoxColor = clrBlue; +input int DB_BoxWidth = 1; +input ENUM_TIMEFRAMES DB_TrendTimeframe = PERIOD_H2; +input int DB_MA_Period = 125; +input ENUM_MA_METHOD DB_MA_Method = MODE_EMA; +input ENUM_APPLIED_PRICE DB_MA_Price = PRICE_WEIGHTED; +input double DB_TrendThreshold = 4.94; +input int DB_VolumeMA_Period = 110; +input double DB_VolumeThresholdMultiplier = 1.5; +input int DB_MagicNumber = 135790; + +//+------------------------------------------------------------------+ +//| Strategy 2: EMASlopeDistanceCocktailXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== EMA Slope Distance Strategy ===" +input string ES_Symbol = "XAUUSD"; +input int ES_EMA_Periode = 46; +input double ES_PreisSchwelle = 600.0; +input double ES_SteigungSchwelle = 80.0; +input int ES_ÜberwachungTimeout = 800; +input double ES_TrailingStop = 250.0; +input double ES_LotGröße = 0.03; +input int ES_MagicNumber = 12350; +input bool ES_UseSpreadAdjustment = true; +input ENUM_TIMEFRAMES ES_Timeframe = PERIOD_H1; +input bool ES_UseBarData = true; +input int ES_MaxTradesPerCrossover = 9; +input int ES_ProfitCheckBars = 18; +input bool ES_CloseUnprofitableTrades = true; + +//+------------------------------------------------------------------+ +//| Strategy 3: RSICrossOverReversalXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== RSI CrossOver Reversal Strategy ===" +input string RC_Symbol = "XAUUSD"; +input int RC_MagicNumber = 7; +input int RC_rsiPeriod = 19; +input int RC_overboughtLevel = 93; +input int RC_oversoldLevel = 22; +input double RC_entryRSIBuySpread = 0; +input double RC_entryRSISellSpread = 0; +input double RC_lotSize = 0.01; +input int RC_slippage = 3; +input int RC_cooldownSeconds = 209; +input ENUM_TIMEFRAMES RC_TimeFrame1 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_TimeFrame2 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_BarTimeFrame = PERIOD_M12; +input int RC_emaPeriod = 140; +input double RC_emaSlopeThreshold = 105; +input double RC_exitBuyRSI = 86; +input double RC_exitSellRSI = 10; +input double RC_TrailingStop = 295; +input double RC_emaDistanceThreshold = 165; +input int RC_tradingHourOneBegin = 24; +input int RC_tradingHourOneEnd = 22; +input int RC_tradingHourTwoBegin = 6; +input int RC_tradingHourTwoEnd = 19; +input bool RC_Sunday = false; +input bool RC_Monday = false; +input bool RC_Tuesday = true; +input bool RC_Wednesday = true; +input bool RC_Thursday = true; +input bool RC_Friday = false; +input bool RC_Saturday = false; + +//+------------------------------------------------------------------+ +//| Strategy 4: RSIMidPointHijackXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== RSI MidPoint Hijack Strategy ===" +input string RM_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES RM_InpTimeframe = PERIOD_H1; +input double RM_InpLotSize = 0.02; +input int RM_InpMagicNumberRSIFollow = 1001; +input int RM_InpMagicNumberRSIReverse = 1002; +input int RM_InpMagicNumberEMACross = 1003; +input bool RM_InpEnableRSIFollow = true; +input bool RM_InpEnableRSIReverse = true; +input bool RM_InpEnableEMACross = true; +input bool RM_InpEnableStrategyLock = false; +input double RM_InpLockProfitThreshold = 0.0; +input bool RM_InpCloseOppositeTrades = false; +input int RM_InpRSIPeriod = 32; +input int RM_InpRSIOverbought = 78; +input int RM_InpRSIOversold = 46; +input int RM_InpRSIExitLevel = 44; +input int RM_InpRSIFollowStartHour = 23; +input int RM_InpRSIFollowEndHour = 8; +input bool RM_InpRSIFollowCloseOutsideHours = false; +input int RM_InpRSIReversePeriod = 59; +input int RM_InpRSIReverseOverbought = 51; +input int RM_InpRSIReverseOversold = 49; +input int RM_InpRSIReverseCrossLevel = 53; +input int RM_InpRSIReverseExitLevel = 48; +input int RM_InpRSIReverseStartHour = 7; +input int RM_InpRSIReverseEndHour = 13; +input bool RM_InpRSIReverseCloseOutsideHours = false; +input int RM_InpRSIReverseCooldownBars = 15; +input bool RM_InpRSIReverseCooldownOnLoss = true; +input int RM_InpEMAPeriod = 120; +input int RM_InpEMACrossStartHour = 8; +input int RM_InpEMACrossEndHour = 14; +input bool RM_InpEMACrossCloseOutsideHours = true; +input bool RM_InpUseEMADistanceEntry = true; +input double RM_InpEMADistancePips = 160.0; +input int RM_InpEMADistancePeriod = 26; + +//+------------------------------------------------------------------+ +//| Strategy 5-10: RSI Scalping Strategies | +//| Each RSI Scalping strategy trades on its own symbol: | +//| - APPL: Apple stock (AAPL) | +//| - BTCUSD: Bitcoin/USD | +//| - MSFT: Microsoft stock | +//| - NVDA: NVIDIA stock | +//| - TSLA: Tesla stock | +//| - XAUUSD: Gold/USD | +//| | +//| PEPPERSTONE US SYMBOL FORMATS: | +//| - Stocks may use: "AAPL.US", "NASDAQ:AAPL", or just "AAPL" | +//| - To find correct symbols: | +//| 1. Open Market Watch (Ctrl+M) | +//| 2. Right-click > Show All | +//| 3. Search for the stock name | +//| 4. Use the exact symbol name shown | +//+------------------------------------------------------------------+ +input group "=== RSI Scalping APPL (AAPL) - Pepperstone US ===" +input string RS_APPL_Symbol = "AAPL.US"; // Try: "AAPL.US", "NASDAQ:AAPL", or "AAPL" +input ENUM_TIMEFRAMES RS_APPL_TimeFrame = PERIOD_M10; +input int RS_APPL_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_APPL_RSI_Applied_Price = PRICE_CLOSE; +input double RS_APPL_RSI_Overbought = 80; +input double RS_APPL_RSI_Oversold = 78; +input double RS_APPL_RSI_Target_Buy = 94; +input double RS_APPL_RSI_Target_Sell = 44; +input int RS_APPL_BarsToWait = 7; +input double RS_APPL_LotSize = 25; +input int RS_APPL_MagicNumber = 20001; +input int RS_APPL_Slippage = 3; + +input group "=== RSI Scalping BTCUSD ===" +input string RS_BTCUSD_Symbol = "BTCUSD"; // Pepperstone may use: "BTCUSD", "BTC/USD", or "BTCUSD.c" +input ENUM_TIMEFRAMES RS_BTCUSD_TimeFrame = PERIOD_H1; +input int RS_BTCUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_BTCUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_BTCUSD_RSI_Overbought = 90; +input double RS_BTCUSD_RSI_Oversold = 73; +input double RS_BTCUSD_RSI_Target_Buy = 88; +input double RS_BTCUSD_RSI_Target_Sell = 48; +input int RS_BTCUSD_BarsToWait = 6; +input double RS_BTCUSD_LotSize = 0.1; +input int RS_BTCUSD_MagicNumber = 123459123; +input int RS_BTCUSD_Slippage = 3; + +input group "=== RSI Scalping MSFT - Pepperstone US ===" +input string RS_MSFT_Symbol = "MSFT.US"; // Try: "MSFT.US", "NASDAQ:MSFT", or "MSFT" +input ENUM_TIMEFRAMES RS_MSFT_TimeFrame = PERIOD_H3; +input int RS_MSFT_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_MSFT_RSI_Applied_Price = PRICE_CLOSE; +input double RS_MSFT_RSI_Overbought = 19; +input double RS_MSFT_RSI_Oversold = 50; +input double RS_MSFT_RSI_Target_Buy = 71; +input double RS_MSFT_RSI_Target_Sell = 70; +input int RS_MSFT_BarsToWait = 1; +input double RS_MSFT_LotSize = 50; +input int RS_MSFT_MagicNumber = 20002; +input int RS_MSFT_Slippage = 3; + +input group "=== RSI Scalping NVDA - Pepperstone US ===" +input string RS_NVDA_Symbol = "NVDA.US"; // Try: "NVDA.US", "NASDAQ:NVDA", or "NVDA" +input ENUM_TIMEFRAMES RS_NVDA_TimeFrame = PERIOD_M15; +input int RS_NVDA_RSI_Period = 8; +input ENUM_APPLIED_PRICE RS_NVDA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_NVDA_RSI_Overbought = 36; +input double RS_NVDA_RSI_Oversold = 38; +input double RS_NVDA_RSI_Target_Buy = 90; +input double RS_NVDA_RSI_Target_Sell = 70; +input int RS_NVDA_BarsToWait = 5; +input double RS_NVDA_LotSize = 50; +input int RS_NVDA_MagicNumber = 20003; +input int RS_NVDA_Slippage = 3; + +input group "=== RSI Scalping TSLA - Pepperstone US ===" +input string RS_TSLA_Symbol = "TSLA.US"; // Try: "TSLA.US", "NASDAQ:TSLA", or "TSLA" +input ENUM_TIMEFRAMES RS_TSLA_TimeFrame = PERIOD_H1; +input int RS_TSLA_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_TSLA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_TSLA_RSI_Overbought = 54; +input double RS_TSLA_RSI_Oversold = 73; +input double RS_TSLA_RSI_Target_Buy = 87; +input double RS_TSLA_RSI_Target_Sell = 33; +input int RS_TSLA_BarsToWait = 1; +input double RS_TSLA_LotSize = 50; +input int RS_TSLA_MagicNumber = 125421321; +input int RS_TSLA_Slippage = 3; + +input group "=== RSI Scalping XAUUSD ===" +input string RS_XAUUSD_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES RS_XAUUSD_TimeFrame = PERIOD_H1; +input int RS_XAUUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_XAUUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_XAUUSD_RSI_Overbought = 71; +input double RS_XAUUSD_RSI_Oversold = 57; +input double RS_XAUUSD_RSI_Target_Buy = 80; +input double RS_XAUUSD_RSI_Target_Sell = 57; +input int RS_XAUUSD_BarsToWait = 4; +input double RS_XAUUSD_LotSize = 0.1; +input int RS_XAUUSD_MagicNumber = 129102315; +input int RS_XAUUSD_Slippage = 3; + +//+------------------------------------------------------------------+ +//| Global Variables - DarvasBox | +//+------------------------------------------------------------------+ +struct DarvasBoxData { + string symbol; + bool isInitialized; + double boxHigh; + double boxLow; + bool boxFormed; + datetime lastBoxTime; + string boxName; + double minStopLevel; + double point; + CTrade trade; + int maHandle; + int volumeHandle; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - EMA Slope Distance | +//+------------------------------------------------------------------+ +struct EMASlopeData { + string symbol; + bool isInitialized; + int ema_handle; + double ema_array[]; + datetime letzte_überwachung_zeit; + bool überwachung_aktiv; + bool preis_trigger_aktiv; + bool steigung_trigger_aktiv; + int ticket; + CTrade trade; + int trades_in_current_crossover; + bool crossover_detected; + datetime trade_open_time; + datetime last_bar_time; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI CrossOver Reversal | +//+------------------------------------------------------------------+ +struct RSICrossOverData { + string symbol; + bool isInitialized; + int rsiHandle; + int emaHandle; + double previousRSIDef; + CTrade trade; + datetime lastTradeTime; + datetime bartime; + bool WeekDays[7]; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI MidPoint Hijack | +//+------------------------------------------------------------------+ +struct RSIMidPointData { + string symbol; + bool isInitialized; + int rsiHandle; + int rsiReverseHandle; + int emaHandle; + bool rsiOverbought; + bool rsiOversold; + bool rsiReverseOverbought; + bool rsiReverseOversold; + CTrade trade; + CPositionInfo positionInfo; + bool emaCrossBuySignal; + bool emaCrossSellSignal; + int emaCrossSignalBar; + datetime lastBarTime; + datetime rsiReverseLastCloseTime; + bool rsiReverseInCooldown; + double lastBarRSI; + double lastBarRSIReverse; + double lastBarEMA; + double lastBarClose; + double lastBarEMAPrev; + double lastBarClosePrev; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI Scalping | +//+------------------------------------------------------------------+ +struct RSIScalpingData { + string symbol; + bool isInitialized; + CTrade trade; + int rsi_handle; + double rsi_buffer[]; + double rsi_prev; + double rsi_current; + double rsi_two_bars_ago; + bool position_open; + ulong position_ticket; + ENUM_POSITION_TYPE current_position_type; + datetime last_bar_time; + bool rsi_against_position; + int bars_against_count; +}; + +//+------------------------------------------------------------------+ +//| Global Strategy Instances | +//+------------------------------------------------------------------+ +DarvasBoxData dbData; +EMASlopeData esData; +RSICrossOverData rcData; +RSIMidPointData rmData; +RSIScalpingData rsAPPLData; +RSIScalpingData rsBTCUSDData; +RSIScalpingData rsMSFTData; +RSIScalpingData rsNVDAData; +RSIScalpingData rsTSLAData; +RSIScalpingData rsXAUUSDData; + +//+------------------------------------------------------------------+ +//| Global Variables for Dynamic Lot Sizes | +//+------------------------------------------------------------------+ +// All strategies start with minimum lot size for safety (will be adjusted by performance evaluator) +double g_DB_LotSize = 0.01; // DarvasBox uses fixed lot size +double g_ES_LotSize = 0.01; // EMA Slope Distance - start with minimum +double g_RC_LotSize = 0.01; // RSI CrossOver Reversal - start with minimum +double g_RM_LotSize = 0.01; // RSI MidPoint Hijack - start with minimum +double g_RS_APPL_LotSize = 5.0; // Stock - start with stock minimum (5.0) +double g_RS_BTCUSD_LotSize = 0.01; // Crypto - start with forex minimum (0.01) +double g_RS_MSFT_LotSize = 5.0; // Stock - start with stock minimum (5.0) +double g_RS_NVDA_LotSize = 5.0; // Stock - start with stock minimum (5.0) +double g_RS_TSLA_LotSize = 5.0; // Stock - start with stock minimum (5.0) +double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + int initResult = INIT_SUCCEEDED; + + // Initialize Performance Evaluator + InitPerformanceTracking(); + + // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable + if(EnableDarvasBox) + { + if(!InitDarvasBox(DB_Symbol)) + Print("Warning: DarvasBox strategy failed to initialize for symbol '", DB_Symbol, "'"); + else + RegisterStrategy("DarvasBox", DB_MagicNumber, 0.01, DB_Symbol); // Fixed lot size + } + + if(EnableEMASlopeDistance) + { + if(!InitEMASlopeDistance(ES_Symbol)) + Print("Warning: EMASlopeDistance strategy failed to initialize for symbol '", ES_Symbol, "'"); + else + { + RegisterStrategy("EMASlopeDistance", ES_MagicNumber, ES_LotGröße, ES_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(ES_Symbol); + g_ES_LotSize = minLot; + } + } + + if(EnableRSICrossOverReversal) + { + if(!InitRSICrossOverReversal(RC_Symbol)) + Print("Warning: RSICrossOverReversal strategy failed to initialize for symbol '", RC_Symbol, "'"); + else + { + RegisterStrategy("RSICrossOverReversal", RC_MagicNumber, RC_lotSize, RC_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RC_Symbol); + g_RC_LotSize = minLot; + } + } + + if(EnableRSIMidPointHijack) + { + if(!InitRSIMidPointHijack(RM_Symbol)) + Print("Warning: RSIMidPointHijack strategy failed to initialize for symbol '", RM_Symbol, "'"); + else + { + RegisterStrategy("RSIMidPointHijack", RM_InpMagicNumberRSIFollow, RM_InpLotSize, RM_Symbol); + RegisterStrategy("RSIMidPointHijack_Reverse", RM_InpMagicNumberRSIReverse, RM_InpLotSize, RM_Symbol); + RegisterStrategy("RSIMidPointHijack_EMACross", RM_InpMagicNumberEMACross, RM_InpLotSize, RM_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RM_Symbol); + g_RM_LotSize = minLot; + } + } + + // Initialize RSI Scalping strategies - don't fail entire EA if symbol unavailable + if(EnableRSIScalpingAPPL) + { + InitRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_MagicNumber, RS_APPL_Slippage); + RegisterStrategy("RSIScalpingAPPL", RS_APPL_MagicNumber, RS_APPL_LotSize, RS_APPL_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_APPL_Symbol); + g_RS_APPL_LotSize = minLot; + } + + if(EnableRSIScalpingBTCUSD) + { + InitRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_MagicNumber, RS_BTCUSD_Slippage); + RegisterStrategy("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber, RS_BTCUSD_LotSize, RS_BTCUSD_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_BTCUSD_Symbol); + g_RS_BTCUSD_LotSize = minLot; + } + + if(EnableRSIScalpingMSFT) + { + InitRSIScalping(rsMSFTData, RS_MSFT_Symbol, RS_MSFT_TimeFrame, RS_MSFT_RSI_Period, RS_MSFT_RSI_Applied_Price, RS_MSFT_MagicNumber, RS_MSFT_Slippage); + RegisterStrategy("RSIScalpingMSFT", RS_MSFT_MagicNumber, RS_MSFT_LotSize, RS_MSFT_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_MSFT_Symbol); + g_RS_MSFT_LotSize = minLot; + } + + if(EnableRSIScalpingNVDA) + { + InitRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_MagicNumber, RS_NVDA_Slippage); + RegisterStrategy("RSIScalpingNVDA", RS_NVDA_MagicNumber, RS_NVDA_LotSize, RS_NVDA_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_NVDA_Symbol); + g_RS_NVDA_LotSize = minLot; + } + + if(EnableRSIScalpingTSLA) + { + InitRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_MagicNumber, RS_TSLA_Slippage); + RegisterStrategy("RSIScalpingTSLA", RS_TSLA_MagicNumber, RS_TSLA_LotSize, RS_TSLA_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_TSLA_Symbol); + g_RS_TSLA_LotSize = minLot; + } + + if(EnableRSIScalpingXAUUSD) + { + InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); + RegisterStrategy("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber, RS_XAUUSD_LotSize, RS_XAUUSD_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_XAUUSD_Symbol); + g_RS_XAUUSD_LotSize = minLot; + } + + // Load adjusted lot sizes from performance evaluator + if(PE_EnableAutoAdjustment) + { + double adjustedLot; + adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); + if(adjustedLot > 0) g_ES_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); + if(adjustedLot > 0) g_RC_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); + if(adjustedLot > 0) g_RM_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); + if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); + if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingMSFT", RS_MSFT_MagicNumber); + if(adjustedLot > 0) g_RS_MSFT_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); + if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); + if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); + if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; + } + + Print("United EA initialized. Active strategies: ", + (EnableDarvasBox ? "DarvasBox " : ""), + (EnableEMASlopeDistance ? "EMASlope " : ""), + (EnableRSICrossOverReversal ? "RSICrossOver " : ""), + (EnableRSIMidPointHijack ? "RSIMidPoint " : ""), + (EnableRSIScalpingAPPL ? "RSIScalpingAPPL " : ""), + (EnableRSIScalpingBTCUSD ? "RSIScalpingBTCUSD " : ""), + (EnableRSIScalpingMSFT ? "RSIScalpingMSFT " : ""), + (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), + (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), + (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : "")); + + if(PE_EnableLogging) + Print(GetPerformanceSummary()); + + return initResult; +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(EnableDarvasBox) + DeinitDarvasBox(); + + if(EnableEMASlopeDistance) + DeinitEMASlopeDistance(); + + if(EnableRSICrossOverReversal) + DeinitRSICrossOverReversal(); + + if(EnableRSIMidPointHijack) + DeinitRSIMidPointHijack(); + + if(EnableRSIScalpingAPPL) + DeinitRSIScalping(rsAPPLData); + + if(EnableRSIScalpingBTCUSD) + DeinitRSIScalping(rsBTCUSDData); + + if(EnableRSIScalpingMSFT) + DeinitRSIScalping(rsMSFTData); + + if(EnableRSIScalpingNVDA) + DeinitRSIScalping(rsNVDAData); + + if(EnableRSIScalpingTSLA) + DeinitRSIScalping(rsTSLAData); + + if(EnableRSIScalpingXAUUSD) + DeinitRSIScalping(rsXAUUSDData); + + Print("United EA deinitialized. Reason: ", reason); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Process performance evaluation (checks for quarter end and adjusts lot sizes) + ProcessPerformanceEvaluation(); + + // Update lot sizes from performance evaluator if auto-adjustment is enabled + if(PE_EnableAutoAdjustment) + { + double adjustedLot; + adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); + if(adjustedLot > 0) g_ES_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); + if(adjustedLot > 0) g_RC_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); + if(adjustedLot > 0) g_RM_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); + if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); + if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingMSFT", RS_MSFT_MagicNumber); + if(adjustedLot > 0) g_RS_MSFT_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); + if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); + if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); + if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; + } + + if(EnableDarvasBox) + ProcessDarvasBox(DB_Symbol); + + if(EnableEMASlopeDistance) + ProcessEMASlopeDistance(ES_Symbol); + + if(EnableRSICrossOverReversal) + ProcessRSICrossOverReversal(RC_Symbol); + + if(EnableRSIMidPointHijack) + ProcessRSIMidPointHijack(RM_Symbol); + + if(EnableRSIScalpingAPPL) + ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, + RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, + RS_APPL_BarsToWait, g_RS_APPL_LotSize, RS_APPL_MagicNumber); + + if(EnableRSIScalpingBTCUSD) + ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, + RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, + RS_BTCUSD_BarsToWait, g_RS_BTCUSD_LotSize, RS_BTCUSD_MagicNumber); + + if(EnableRSIScalpingMSFT) + ProcessRSIScalping(rsMSFTData, RS_MSFT_Symbol, RS_MSFT_TimeFrame, RS_MSFT_RSI_Period, RS_MSFT_RSI_Applied_Price, + RS_MSFT_RSI_Overbought, RS_MSFT_RSI_Oversold, RS_MSFT_RSI_Target_Buy, RS_MSFT_RSI_Target_Sell, + RS_MSFT_BarsToWait, g_RS_MSFT_LotSize, RS_MSFT_MagicNumber); + + if(EnableRSIScalpingNVDA) + ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, + RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, + RS_NVDA_BarsToWait, g_RS_NVDA_LotSize, RS_NVDA_MagicNumber); + + if(EnableRSIScalpingTSLA) + ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, + RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, + RS_TSLA_BarsToWait, g_RS_TSLA_LotSize, RS_TSLA_MagicNumber); + + if(EnableRSIScalpingXAUUSD) + ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, + RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, + RS_XAUUSD_BarsToWait, g_RS_XAUUSD_LotSize, RS_XAUUSD_MagicNumber); +} + +//+------------------------------------------------------------------+ +//| Include strategy implementations | +//+------------------------------------------------------------------+ +#include "Strategies/DarvasBoxStrategy.mqh" +#include "Strategies/EMASlopeDistanceStrategy.mqh" +#include "Strategies/RSICrossOverReversalStrategy.mqh" +#include "Strategies/RSIMidPointHijackStrategy.mqh" +#include "Strategies/RSIScalpingStrategy.mqh" + +//+------------------------------------------------------------------+ diff --git a/lab/EAs/EMAPriceSlope.mq5 b/lab/EAs/EMAPriceSlope.mq5 new file mode 100644 index 0000000..fbdd37b --- /dev/null +++ b/lab/EAs/EMAPriceSlope.mq5 @@ -0,0 +1,559 @@ +//+------------------------------------------------------------------+ +//| EMAPriceSlope.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" +#property description "Expert Advisor using EMA Slope for intelligent trend trading" +#property description "Trades based on EMA momentum, slope strength, and price confirmation" + +#include + +//--- Input parameters +input group "Timeframe Settings" +input ENUM_TIMEFRAMES InpTimeframe = PERIOD_M15; // Trading Timeframe + +input group "EMA Settings" +input int InpEMAPeriod = 20; // EMA Period +input int InpSlopeBars = 3; // Slope Calculation Bars (lookback for slope) + +input group "Slope Trading Logic" +input double InpMinSlopeStrength = 0.0001; // Minimum Slope Strength (0.01% per bar) +input bool InpUseSlopeAcceleration = true; // Require slope acceleration (increasing momentum) +input double InpMinAcceleration = 0.00005; // Minimum Acceleration Threshold +input bool InpUsePriceConfirmation = true; // Require price above/below EMA for confirmation +input double InpPriceDistanceMultiplier = 0.5; // Price distance from EMA (ATR multiplier) + +input group "Entry Filters" +input bool InpUseVolatilityFilter = true; // Use ATR volatility filter +input double InpMinATR = 0.0002; // Minimum ATR for trading (filter low volatility) +input double InpMaxATR = 0.01; // Maximum ATR for trading (filter high volatility) +input bool InpUseRSIFilter = false; // Use RSI filter +input int InpRSIPeriod = 14; // RSI Period +input double InpRSIOverbought = 70; // RSI Overbought (avoid longs) +input double InpRSIOversold = 30; // RSI Oversold (avoid shorts) + +input group "Trading Hours (Server Time)" +input int InpStartHour = 8; // Trading Start Hour (0-23) +input int InpEndHour = 18; // Trading End Hour (0-23) +input bool InpUseTimeFilter = true; // Use Trading Hours Filter + +input group "Risk Management" +input double InpLotSize = 0.01; // Lot Size +input int InpStopLoss = 50; // Stop Loss (pips) - 0 = no SL +input int InpTakeProfit = 100; // Take Profit (pips) - 0 = no TP +input bool InpUseTrailingStop = true; // Use Trailing Stop +input int InpTrailingStop = 30; // Trailing Stop (pips) +input int InpTrailingStep = 5; // Trailing Step (pips) +input int InpMagicNumber = 890123; // Magic Number +input int InpSlippage = 3; // Slippage (points) + +input group "Exit Strategy" +input bool InpUseSlopeReversalExit = true; // Exit on slope reversal +input double InpSlopeReversalThreshold = -0.00005; // Slope reversal threshold (negative slope for long exit) +input bool InpUseEMAExit = false; // Exit when price crosses EMA + +input group "Loss Minimization" +input bool InpUseMaxDailyLoss = true; // Use Max Daily Loss +input double InpMaxDailyLoss = 50.0; // Max Daily Loss (USD) + +//--- Global variables +CTrade trade; +int ema_handle; +int atr_handle; +int rsi_handle; +datetime last_bar_time = 0; +double daily_profit = 0.0; +datetime last_daily_reset = 0; +double last_profit = 0.0; +double last_slope = 0.0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Set trade parameters + trade.SetExpertMagicNumber(InpMagicNumber); + trade.SetDeviationInPoints(InpSlippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Create indicators + ema_handle = iMA(_Symbol, InpTimeframe, InpEMAPeriod, 0, MODE_EMA, PRICE_CLOSE); + + if(InpUseVolatilityFilter) + { + atr_handle = iATR(_Symbol, InpTimeframe, 14); + if(atr_handle == INVALID_HANDLE) + { + Print("ERROR: Failed to create ATR indicator"); + return(INIT_FAILED); + } + } + + if(InpUseRSIFilter) + { + rsi_handle = iRSI(_Symbol, InpTimeframe, InpRSIPeriod, PRICE_CLOSE); + if(rsi_handle == INVALID_HANDLE) + { + Print("ERROR: Failed to create RSI indicator"); + return(INIT_FAILED); + } + } + + if(ema_handle == INVALID_HANDLE) + { + Print("ERROR: Failed to create EMA indicator"); + return(INIT_FAILED); + } + + // Initialize daily tracking + last_daily_reset = TimeCurrent(); + daily_profit = 0.0; + + Print("EMAPriceSlope EA initialized for ", _Symbol); + Print("Timeframe: ", EnumToString(InpTimeframe)); + Print("EMA Period: ", InpEMAPeriod, " Slope Bars: ", InpSlopeBars); + Print("Min Slope Strength: ", InpMinSlopeStrength); + Print("Trading Hours: ", InpStartHour, ":00 - ", InpEndHour, ":00"); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + // Release indicators + if(ema_handle != INVALID_HANDLE) + IndicatorRelease(ema_handle); + if(atr_handle != INVALID_HANDLE) + IndicatorRelease(atr_handle); + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Check if new bar on the specified timeframe + datetime current_bar_time = iTime(_Symbol, InpTimeframe, 0); + if(current_bar_time == last_bar_time) + { + // Still same bar - only manage existing positions + ManagePosition(); + return; + } + last_bar_time = current_bar_time; + + // Reset daily profit at midnight + MqlDateTime dt; + TimeToStruct(TimeCurrent(), dt); + MqlDateTime last_dt; + TimeToStruct(last_daily_reset, last_dt); + bool is_new_day = (dt.day != last_dt.day || dt.month != last_dt.month || dt.year != last_dt.year); + + if(is_new_day) + { + daily_profit = 0.0; + last_daily_reset = TimeCurrent(); + Print("Daily reset: New trading day started. Daily profit reset to 0."); + } + + // Check daily loss limit + if(InpUseMaxDailyLoss && daily_profit <= -InpMaxDailyLoss) + { + Print("Daily loss limit reached: ", daily_profit, " USD. Trading stopped for today."); + return; + } + + // Check trading hours + if(InpUseTimeFilter && !IsWithinTradingHours()) + { + return; // Outside trading hours + } + + // Get EMA values for slope calculation + double ema[]; + ArraySetAsSeries(ema, true); + + // Need enough bars for slope calculation + int bars_needed = InpSlopeBars + 5; + if(CopyBuffer(ema_handle, 0, 0, bars_needed, ema) < bars_needed) + { + Print("ERROR: Failed to copy EMA buffer"); + return; + } + + // Calculate EMA slope (rate of change) + double current_ema = ema[0]; + double previous_ema = ema[InpSlopeBars]; + double slope = (current_ema - previous_ema) / previous_ema; // Percentage change + + // Calculate slope acceleration (change in slope) + double previous_slope = last_slope; + double acceleration = 0.0; + if(previous_slope != 0.0) + { + acceleration = slope - previous_slope; + } + last_slope = slope; + + // Get current price + double current_price = iClose(_Symbol, InpTimeframe, 0); + double price_distance_from_ema = MathAbs(current_price - current_ema) / current_ema; + + // Get ATR for volatility filter + double atr_value = 0.0; + if(InpUseVolatilityFilter) + { + double atr_array[]; + ArraySetAsSeries(atr_array, true); + if(CopyBuffer(atr_handle, 0, 0, 1, atr_array) > 0) + { + atr_value = atr_array[0]; + } + } + + // Get RSI for filter + double rsi_value = 50.0; + if(InpUseRSIFilter) + { + double rsi_array[]; + ArraySetAsSeries(rsi_array, true); + if(CopyBuffer(rsi_handle, 0, 0, 1, rsi_array) > 0) + { + rsi_value = rsi_array[0]; + } + } + + // Check existing position + if(PositionSelect(_Symbol)) + { + ManagePosition(); + + // Check exit conditions + long position_type = PositionGetInteger(POSITION_TYPE); + + // Exit on slope reversal + if(InpUseSlopeReversalExit) + { + if(position_type == POSITION_TYPE_BUY && slope < InpSlopeReversalThreshold) + { + // Long position: exit on negative slope reversal + if(trade.PositionClose(_Symbol)) + { + Print("Position closed: Slope reversal (slope=", slope, ")"); + } + return; + } + else if(position_type == POSITION_TYPE_SELL && slope > -InpSlopeReversalThreshold) + { + // Short position: exit on positive slope reversal + if(trade.PositionClose(_Symbol)) + { + Print("Position closed: Slope reversal (slope=", slope, ")"); + } + return; + } + } + + // Exit when price crosses EMA (if enabled) + if(InpUseEMAExit) + { + double prev_price = iClose(_Symbol, InpTimeframe, 1); + if(position_type == POSITION_TYPE_BUY && current_price < current_ema && prev_price >= ema[1]) + { + if(trade.PositionClose(_Symbol)) + { + Print("Position closed: Price crossed below EMA"); + } + return; + } + else if(position_type == POSITION_TYPE_SELL && current_price > current_ema && prev_price <= ema[1]) + { + if(trade.PositionClose(_Symbol)) + { + Print("Position closed: Price crossed above EMA"); + } + return; + } + } + } + else + { + // No position - check for entry signals + + // Volatility filter + if(InpUseVolatilityFilter && atr_value > 0) + { + if(atr_value < InpMinATR || atr_value > InpMaxATR) + { + return; // Volatility out of range + } + } + + // RSI filter + if(InpUseRSIFilter) + { + if(rsi_value > InpRSIOverbought || rsi_value < InpRSIOversold) + { + return; // RSI in extreme zone + } + } + + // BUY Signal: Positive slope with strength + bool buy_signal = false; + if(slope > InpMinSlopeStrength) + { + // Check acceleration (if enabled) + if(InpUseSlopeAcceleration) + { + if(acceleration > InpMinAcceleration) + { + buy_signal = true; + } + } + else + { + buy_signal = true; + } + + // Price confirmation (if enabled) + if(buy_signal && InpUsePriceConfirmation) + { + double min_distance = atr_value * InpPriceDistanceMultiplier / current_price; + if(price_distance_from_ema < min_distance || current_price < current_ema) + { + buy_signal = false; // Price too close to EMA or below EMA + } + } + + // RSI filter for buy + if(buy_signal && InpUseRSIFilter && rsi_value > InpRSIOverbought) + { + buy_signal = false; + } + } + + // SELL Signal: Negative slope with strength + bool sell_signal = false; + if(slope < -InpMinSlopeStrength) + { + // Check acceleration (if enabled) + if(InpUseSlopeAcceleration) + { + if(acceleration < -InpMinAcceleration) + { + sell_signal = true; + } + } + else + { + sell_signal = true; + } + + // Price confirmation (if enabled) + if(sell_signal && InpUsePriceConfirmation) + { + double min_distance = atr_value * InpPriceDistanceMultiplier / current_price; + if(price_distance_from_ema < min_distance || current_price > current_ema) + { + sell_signal = false; // Price too close to EMA or above EMA + } + } + + // RSI filter for sell + if(sell_signal && InpUseRSIFilter && rsi_value < InpRSIOversold) + { + sell_signal = false; + } + } + + // Execute trades + if(buy_signal) + { + Print("BUY Signal: Slope=", slope, " Acceleration=", acceleration, " Price=", current_price); + OpenBuyPosition(); + } + else if(sell_signal) + { + Print("SELL Signal: Slope=", slope, " Acceleration=", acceleration, " Price=", current_price); + OpenSellPosition(); + } + } +} + +//+------------------------------------------------------------------+ +//| Check if current time is within trading hours | +//+------------------------------------------------------------------+ +bool IsWithinTradingHours() +{ + MqlDateTime dt; + TimeToStruct(TimeCurrent(), dt); + int current_hour = dt.hour; + + // Handle case where end hour is before start hour (overnight) + if(InpEndHour < InpStartHour) + { + return (current_hour >= InpStartHour || current_hour < InpEndHour); + } + else + { + return (current_hour >= InpStartHour && current_hour < InpEndHour); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + double price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double sl = 0.0; + double tp = 0.0; + + if(InpStopLoss > 0) + { + sl = price - InpStopLoss * _Point * 10; + } + if(InpTakeProfit > 0) + { + tp = price + InpTakeProfit * _Point * 10; + } + + // Validate stops + int stop_level = (int)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + double min_stop = stop_level * point; + + if(sl > 0 && (price - sl) < min_stop) + sl = price - min_stop; + if(tp > 0 && (tp - price) < min_stop) + tp = price + min_stop; + + if(trade.Buy(InpLotSize, _Symbol, price, sl, tp, "EMA Slope Buy")) + { + Print("Buy order opened at ", price, " SL: ", sl, " TP: ", tp); + } + else + { + Print("Failed to open buy order: ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + double price = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double sl = 0.0; + double tp = 0.0; + + if(InpStopLoss > 0) + { + sl = price + InpStopLoss * _Point * 10; + } + if(InpTakeProfit > 0) + { + tp = price - InpTakeProfit * _Point * 10; + } + + // Validate stops + int stop_level = (int)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + double min_stop = stop_level * point; + + if(sl > 0 && (sl - price) < min_stop) + sl = price + min_stop; + if(tp > 0 && (price - tp) < min_stop) + tp = price - min_stop; + + if(trade.Sell(InpLotSize, _Symbol, price, sl, tp, "EMA Slope Sell")) + { + Print("Sell order opened at ", price, " SL: ", sl, " TP: ", tp); + } + else + { + Print("Failed to open sell order: ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Manage existing position | +//+------------------------------------------------------------------+ +void ManagePosition() +{ + if(!PositionSelect(_Symbol)) + return; + + // Update daily profit + double current_profit = PositionGetDouble(POSITION_PROFIT); + if(current_profit != last_profit) + { + daily_profit += (current_profit - last_profit); + last_profit = current_profit; + } + + // Apply trailing stop + if(InpUseTrailingStop && InpTrailingStop > 0) + { + ApplyTrailingStop(); + } +} + +//+------------------------------------------------------------------+ +//| Apply trailing stop | +//+------------------------------------------------------------------+ +void ApplyTrailingStop() +{ + if(!PositionSelect(_Symbol)) + return; + + double position_sl = PositionGetDouble(POSITION_SL); + double position_tp = PositionGetDouble(POSITION_TP); + long position_type = PositionGetInteger(POSITION_TYPE); + double current_price = (position_type == POSITION_TYPE_BUY) ? + SymbolInfoDouble(_Symbol, SYMBOL_BID) : + SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + double trailing_distance = InpTrailingStop * _Point * 10; + double new_sl = 0; + + if(position_type == POSITION_TYPE_BUY) + { + new_sl = current_price - trailing_distance; + if(new_sl > position_sl && new_sl < current_price) + { + // Check trailing step + if(position_sl == 0 || (new_sl - position_sl) >= InpTrailingStep * _Point * 10) + { + if(trade.PositionModify(_Symbol, new_sl, position_tp)) + { + Print("Trailing stop updated: New SL=", new_sl); + } + } + } + } + else if(position_type == POSITION_TYPE_SELL) + { + new_sl = current_price + trailing_distance; + if((position_sl == 0 || new_sl < position_sl) && new_sl > current_price) + { + // Check trailing step + if(position_sl == 0 || (position_sl - new_sl) >= InpTrailingStep * _Point * 10) + { + if(trade.PositionModify(_Symbol, new_sl, position_tp)) + { + Print("Trailing stop updated: New SL=", new_sl); + } + } + } + } +} diff --git a/lab/EAs/TimeSelectiveEMA.mq5 b/lab/EAs/TimeSelectiveEMA.mq5 new file mode 100644 index 0000000..6fb0068 --- /dev/null +++ b/lab/EAs/TimeSelectiveEMA.mq5 @@ -0,0 +1,342 @@ +//+------------------------------------------------------------------+ +//| TimeSelectiveEMA.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" +#property description "EMA Crossover EA for EURUSD with Trading Hours Filter" +#property description "Minimizes loss by trading only during optimal hours" + +#include + +//--- Input parameters +input group "Timeframe Settings" +input ENUM_TIMEFRAMES InpTimeframe = PERIOD_M15; // Trading Timeframe + +input group "EMA Settings" +input int InpFastEMA = 12; // Fast EMA Period +input int InpSlowEMA = 26; // Slow EMA Period + +input group "Trading Hours (Server Time)" +input int InpStartHour = 8; // Trading Start Hour (0-23) +input int InpEndHour = 18; // Trading End Hour (0-23) +input bool InpUseTimeFilter = true; // Use Trading Hours Filter + +input group "Risk Management" +input double InpLotSize = 0.01; // Lot Size +input int InpMagicNumber = 789012; // Magic Number +input int InpSlippage = 3; // Slippage (points) +input bool InpUseRecrossExit = true; // Use EMA Recross as Exit (No SL/TP) + +input group "Loss Minimization" +input bool InpUseMaxDailyLoss = true; // Use Max Daily Loss +input double InpMaxDailyLoss = 50.0; // Max Daily Loss (USD) + +//--- Global variables +CTrade trade; +int fast_ema_handle; +int slow_ema_handle; +datetime last_bar_time = 0; +double daily_profit = 0.0; +datetime last_daily_reset = 0; +double last_profit = 0.0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Check symbol + if(_Symbol != "EURUSD" && _Symbol != "EURUSD#") + { + Alert("This EA is designed for EURUSD only. Current symbol: ", _Symbol); + return(INIT_FAILED); + } + + // Set trade parameters + trade.SetExpertMagicNumber(InpMagicNumber); + trade.SetDeviationInPoints(InpSlippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Create EMA indicators on specified timeframe + fast_ema_handle = iMA(_Symbol, InpTimeframe, InpFastEMA, 0, MODE_EMA, PRICE_CLOSE); + slow_ema_handle = iMA(_Symbol, InpTimeframe, InpSlowEMA, 0, MODE_EMA, PRICE_CLOSE); + + if(fast_ema_handle == INVALID_HANDLE || slow_ema_handle == INVALID_HANDLE) + { + Print("ERROR: Failed to create EMA indicators"); + return(INIT_FAILED); + } + + // Initialize daily tracking + last_daily_reset = TimeCurrent(); + daily_profit = 0.0; + + Print("TimeSelectiveEMA EA initialized for ", _Symbol); + Print("Timeframe: ", EnumToString(InpTimeframe)); + Print("Trading Hours: ", InpStartHour, ":00 - ", InpEndHour, ":00 (Server Time)"); + Print("EMA Crossover: Fast=", InpFastEMA, " Slow=", InpSlowEMA); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + // Release indicators + if(fast_ema_handle != INVALID_HANDLE) + IndicatorRelease(fast_ema_handle); + if(slow_ema_handle != INVALID_HANDLE) + IndicatorRelease(slow_ema_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Check if new bar on the specified timeframe + datetime current_bar_time = iTime(_Symbol, InpTimeframe, 0); + if(current_bar_time == last_bar_time) + { + // Still same bar - only manage existing positions + ManagePosition(); + return; + } + last_bar_time = current_bar_time; + + // Reset daily profit and consecutive losses at midnight + MqlDateTime dt; + TimeToStruct(TimeCurrent(), dt); + MqlDateTime last_dt; + TimeToStruct(last_daily_reset, last_dt); + + // Check if new day (day, month, or year changed) + bool is_new_day = (dt.day != last_dt.day || dt.month != last_dt.month || dt.year != last_dt.year); + + if(is_new_day) + { + // New day - reset daily profit + daily_profit = 0.0; + last_daily_reset = TimeCurrent(); + Print("Daily reset: New trading day started. Daily profit reset to 0."); + } + + // Check daily loss limit + if(InpUseMaxDailyLoss && daily_profit <= -InpMaxDailyLoss) + { + Print("Daily loss limit reached: ", daily_profit, " USD. Trading stopped for today."); + return; + } + + // Check trading hours + if(InpUseTimeFilter && !IsWithinTradingHours()) + { + return; // Outside trading hours + } + + // Get EMA values + double fast_ema[], slow_ema[]; + ArraySetAsSeries(fast_ema, true); + ArraySetAsSeries(slow_ema, true); + + if(CopyBuffer(fast_ema_handle, 0, 0, 3, fast_ema) < 3 || + CopyBuffer(slow_ema_handle, 0, 0, 3, slow_ema) < 3) + { + Print("ERROR: Failed to copy EMA buffers"); + return; + } + + // Check for crossover signals + bool bullish_cross = false; + bool bearish_cross = false; + + // Bullish: Fast EMA crosses above Slow EMA + if(fast_ema[1] > slow_ema[1] && fast_ema[2] <= slow_ema[2]) + { + bullish_cross = true; + } + + // Bearish: Fast EMA crosses below Slow EMA + if(fast_ema[1] < slow_ema[1] && fast_ema[2] >= slow_ema[2]) + { + bearish_cross = true; + } + + // Check existing position + if(PositionSelect(_Symbol)) + { + // Check for recross (opposite signal) - this is the exit signal + long position_type = PositionGetInteger(POSITION_TYPE); + if(InpUseRecrossExit) + { + if(position_type == POSITION_TYPE_BUY && bearish_cross) + { + // Close long position on bearish recross (Fast EMA crosses below Slow EMA) + if(trade.PositionClose(_Symbol)) + { + Print("Position closed due to bearish recross (Fast EMA crossed below Slow EMA)"); + } + } + else if(position_type == POSITION_TYPE_SELL && bullish_cross) + { + // Close short position on bullish recross (Fast EMA crosses above Slow EMA) + if(trade.PositionClose(_Symbol)) + { + Print("Position closed due to bullish recross (Fast EMA crossed above Slow EMA)"); + } + } + } + + // Manage existing position (trailing stop, break-even if enabled) + ManagePosition(); + } + else + { + // No position - check for new entry + if(bullish_cross) + { + OpenBuyPosition(); + } + else if(bearish_cross) + { + OpenSellPosition(); + } + } +} + +//+------------------------------------------------------------------+ +//| Check if current time is within trading hours | +//+------------------------------------------------------------------+ +bool IsWithinTradingHours() +{ + MqlDateTime dt; + TimeToStruct(TimeCurrent(), dt); + int current_hour = dt.hour; + + // Handle case where end hour is before start hour (overnight) + if(InpEndHour < InpStartHour) + { + return (current_hour >= InpStartHour || current_hour < InpEndHour); + } + else + { + return (current_hour >= InpStartHour && current_hour < InpEndHour); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + double price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + // No SL/TP - exit only on EMA recross + if(trade.Buy(InpLotSize, _Symbol, price, 0, 0, "EMA Crossover Buy")) + { + Print("Buy order opened at ", price, " (Exit on bearish recross)"); + } + else + { + Print("Failed to open buy order: ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + double price = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + // No SL/TP - exit only on EMA recross + if(trade.Sell(InpLotSize, _Symbol, price, 0, 0, "EMA Crossover Sell")) + { + Print("Sell order opened at ", price, " (Exit on bullish recross)"); + } + else + { + Print("Failed to open sell order: ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Manage existing position | +//+------------------------------------------------------------------+ +void ManagePosition() +{ + if(!PositionSelect(_Symbol)) + return; + + // Update daily profit + double current_profit = PositionGetDouble(POSITION_PROFIT); + if(current_profit != last_profit) + { + daily_profit += (current_profit - last_profit); + last_profit = current_profit; + } + + // Position management: Only track profit/loss + // Exit is handled by EMA recross signal in OnTick() +} + +//+------------------------------------------------------------------+ +//| Apply trailing stop (disabled - using recross exit only) | +//+------------------------------------------------------------------+ +void ApplyTrailingStop() +{ + // Trailing stop disabled - using EMA recross as exit signal only + // This function kept for compatibility but does nothing + return; +} + +//+------------------------------------------------------------------+ +//| Move stop loss to break-even (disabled - using recross exit only)| +//+------------------------------------------------------------------+ +void MoveToBreakEven() +{ + // Break-even disabled - using EMA recross as exit signal only + // This function kept for compatibility but does nothing + return; +} + +//+------------------------------------------------------------------+ +//| Trade transaction event handler | +//+------------------------------------------------------------------+ +void OnTradeTransaction(const MqlTradeTransaction& trans, + const MqlTradeRequest& request, + const MqlTradeResult& result) +{ + // Track daily profit only (consecutive losses feature removed) + if(trans.type == TRADE_TRANSACTION_DEAL_ADD) + { + if(HistoryDealSelect(trans.deal)) + { + long deal_type = HistoryDealGetInteger(trans.deal, DEAL_TYPE); + if(deal_type == DEAL_TYPE_BALANCE || deal_type == DEAL_TYPE_COMMISSION) + return; + + // Check if deal is from current day + datetime deal_time = (datetime)HistoryDealGetInteger(trans.deal, DEAL_TIME); + MqlDateTime deal_dt, current_dt; + TimeToStruct(deal_time, deal_dt); + TimeToStruct(TimeCurrent(), current_dt); + + // Only process deals from current day + bool is_current_day = (deal_dt.day == current_dt.day && + deal_dt.month == current_dt.month && + deal_dt.year == current_dt.year); + + if(is_current_day) + { + double deal_profit = HistoryDealGetDouble(trans.deal, DEAL_PROFIT); + // Daily profit is tracked in ManagePosition() + } + } + } +} diff --git a/pe-zero-to-one/chapter/ch01.tex b/pe-zero-to-one/chapter/ch01.tex new file mode 100644 index 0000000..10878d5 --- /dev/null +++ b/pe-zero-to-one/chapter/ch01.tex @@ -0,0 +1,17 @@ +\chapter{私募股权与另类投资版图} + +\section{另类投资在资产配置中的位置} + +另类投资(Alternative Investments)泛指在传统股票与债券之外、流动性通常较低、结构更复杂、信息披露与监管框架与公募不同的资产类别。机构组合引入另类资产的核心动机包括:\textbf{分散化}(与公开市场相关性不完全同步)、\textbf{风险溢价}(流动性折价与复杂度溢价)、以及在某些市场环境下\textbf{绝对收益}或\textbf{通胀对冲}的诉求。私募股权(PE)是其中体量最大、制度最成熟的一条主线,但与对冲基金、实物资产、私募信贷等边界常有交叉。 + +\section{私募股权的主要形态} + +\textbf{并购基金(Buyout)}通常以控股或重大少数股权方式收购成熟企业,依托杠杆、运营改善与行业整合提升退出倍数。\textbf{成长资本(Growth)}面向已盈利或接近盈利的扩张期企业,股权稀释程度与估值弹性介于 VC 与并购之间。\textbf{风险投资(VC)}聚焦早期技术与商业模式验证,单笔损失率可较高,依赖幂律分布中的极端成功项目。\textbf{夹层资本(Mezzanine)}与\textbf{困境/特殊机会}策略则更接近信贷或混合工具,在资本结构中的位置与纯股权 PE 不同。读者在本书语境下可将「PE」理解为\textbf{以非上市股权或相关工具为主、以主动治理与退出为收益来源}的广义家族,而不局限于某一细分标签。 + +\section{与公募、对冲基金的对照} + +\textbf{期限与流动性:}典型 PE 基金有固定存续期与资本召唤(capital call)节奏,LP 在基金层面难以按净值每日申赎;公募与多数对冲基金则强调份额流动性(尽管侧袋、门控等机制会削弱这一特征)。\textbf{定价:}非上市股权缺乏连续报价,估值依赖季度评估与交易事件,业绩归因与「账面回报」解读需要额外谨慎。\textbf{监管:}面向零售的公募受最严格的信息披露与销售规则约束;私募链条在各国法域下对应不同「合格投资者」门槛与募集方式限制(详见本书合规篇)。\textbf{收益结构:}PE 更强调\textbf{控制或强影响}下的价值创造叙事;多策略对冲基金可能以市场中性、套利或宏观为主,与单一企业基本面绑定度较低。 + +\section{为何「版图」思维重要} + +从零到一设立或参与一支基金时,先明确自己在版图中的\textbf{坐标}(阶段、行业、地域、币种、是否杠杆),能避免基金条款与团队能力与宣称策略错位。后续章节中的募资对象、尽调深度、条款谈判与退出假设,都隐含了这一坐标选择;合规篇则进一步约束该坐标在特定司法辖区是否可合法落地。 diff --git a/pe-zero-to-one/chapter/ch02.tex b/pe-zero-to-one/chapter/ch02.tex new file mode 100644 index 0000000..4889a35 --- /dev/null +++ b/pe-zero-to-one/chapter/ch02.tex @@ -0,0 +1,17 @@ +\chapter{生态链:LP、GP、被投企业与服务商} + +\section{LP 与 GP:信托关系与经济条款} + +有限合伙人(Limited Partner, LP)是基金的主要出资方,以认缴承诺为上限承担有限责任;普通合伙人(General Partner, GP)或其关联实体担任基金管理人,负责投资决议、投后管理与投资者关系。二者关系由\textbf{有限合伙协议(LPA)}及附属 side letter 约束,核心经济条款包括管理费基数与费率、业绩报酬(carried interest)与门槛收益率(hurdle)、分配瀑布(European vs American waterfall)以及 GP 跟投(GP commit)比例。法律上 LP 通常不得干预具体项目投资,以免丧失有限责任保护;实务中通过咨询委员会(advisory committee)与协议约定的重大事项同意权行使制衡。 + +\section{基金载体、管理人与被投企业} + +常见结构为:一支(或数支并列)\textbf{有限合伙基金}作为投资主体,向被投企业注资;\textbf{基金管理公司}(常由 GP 关联方设立)向基金收取管理费并聘用投资团队。被投企业处于生态链的「资产端」:其董事会构成、信息披露节奏与股东协议中的保护条款,直接决定 GP 能否有效行使治理。理解这一\textbf{三角结构}有助于划分「基金层面的义务」与「管理公司层面的义务」,例如在跨境架构中税务与监管申报的责任主体。 + +\section{交易服务商的角色} + +\textbf{财务顾问(FA)}组织买方或卖方流程、协调尽调数据室与谈判节奏,但不替代 GP 的投资判断。\textbf{律师事务所}起草交易文件与 LPA,并出具法律意见。\textbf{审计师}提供基金与被投企业的财务审计或商定程序报告,支撑估值与 LP 报告。\textbf{基金行政管理人(fund administrator)}处理 NAV、投资者报表与监管报送接口。\textbf{托管行}在适用法域下保管现金与证券。这些角色嵌入在「立项—签约—交割—季报—退出」的时间轴上;冷启动阶段可用外包与里程碑付款降低固定成本,但随着 AUM 与 LP 要求上升,服务商层级与独立性往往需加强。 + +\section{网络效应与声誉资本} + +生态链不是静态供应链:同一批 LP、FA 与律师在多个基金周期中重复博弈,\textbf{声誉}与\textbf{执行记录}成为比单次条款更重要的资产。新 GP 在构建生态位时,应优先建立可验证的里程碑(透明报告、按时交割、清晰沟通),以便在后续轮次中获得更优的介绍链与条款空间。 diff --git a/pe-zero-to-one/chapter/ch03.tex b/pe-zero-to-one/chapter/ch03.tex new file mode 100644 index 0000000..3f871bd --- /dev/null +++ b/pe-zero-to-one/chapter/ch03.tex @@ -0,0 +1,17 @@ +\chapter{基金设立:载体选择与基本条款} + +\section{有限合伙:PE 的主流选择} + +在多数法域,\textbf{有限合伙}因其\textbf{税收穿透}(在符合条件下由合伙人层面纳税而非实体层面双重征税)、GP 无限责任与 LP 有限责任的清晰划分,成为私募股权基金的首选载体。基金期限、投资期与延长期、GP 移除与关键人条款等,均在 LPA 中锁定。设立成本包括注册费用、首次法律起草与监管登记(若适用);跨境 LP 时还需考虑反洗钱(KYC)与制裁筛查流程。 + +\section{公司制与契约型:何时出现} + +\textbf{公司制}基金在部分辖区便于某些类型投资者(如养老基金子账户)持有,或用于上市载体(如部分投资信托结构);劣势常在于\textbf{双重征税}或治理灵活性不足。\textbf{契约型基金}在部分亚洲市场与资管产品中常见,依赖托管人与管理人合同网络;与经典离岸/在岸有限合伙相比,权利义务映射方式不同,需在律师协助下逐条对照 LPA 等价物。 + +\section{LPA 中的经济条款框架} + +\textbf{管理费}通常按认缴或实缴或 NAV 的一定比例计提,投资期后可能调降或切换基数。\textbf{业绩报酬}在超过 hurdle 后对利润分成;需明确是\textbf{whole-of-fund}还是 deal-by-deal、是否存在 clawback(回拨)机制。\textbf{分配瀑布}决定税、费、本金与收益在 LP 与 GP 之间的先后顺序,直接影响 IRR 与 DPI 的时间形态。Side letter 可能对大型 LP 给予最惠国(MFN)、共同投资权或额外信息权,管理公司需建立台账避免承诺冲突。 + +\section{治理与管理条款} + +投资委员会组成、关联交易审批、个人跟投(co-investment)规则、借款与担保限额、关键人事件与 GP 替换程序,构成管理条款的骨架。从零到一阶段,常见错误是\textbf{过度照搬大型基金模板}导致小团队无法合规执行;应在「可运营」与「LP 可接受」之间折中,并预留随基金规模扩大而修订的修正案机制(须符合适用法律)。 diff --git a/pe-zero-to-one/chapter/ch04.tex b/pe-zero-to-one/chapter/ch04.tex new file mode 100644 index 0000000..73c6a42 --- /dev/null +++ b/pe-zero-to-one/chapter/ch04.tex @@ -0,0 +1,17 @@ +\chapter{募资从零到一:材料、路演与合规边界} + +\section{材料体系:PPM、数据室与 DDQ} + +私募配售备忘录(PPM / 私募备忘录)是面向合格投资者的\textbf{核心法律与营销混合文件},需披露策略、风险因素、费用、利益冲突、管理团队与历史业绩(若有)。\textbf{数据室(VDR)}存放基金章程、LPA 草案、合规政策样本、过往审计与参考投资组合(在允许范围内)。\textbf{尽职调查问卷(DDQ)}回复机构 LP 的标准问题,便于进入 allocator 的内部评分流程。三类材料应\textbf{同源更新},避免路演口述与书面文件不一致引发监管或民事风险。 + +\section{路演节奏与叙事} + +首轮沟通通常以\textbf{一页 Teaser}与简短电话开始,确认策略与规模是否匹配 allocator 的授权。正式路演聚焦:投资逻辑可重复性、团队分工、风险控制、费用与条款、与同类基金的差异化。\textbf{演示材料}须经合规审查(若管理人已持牌或在持牌顾问指导下)。问答环节应如实记录;对无法承诺的事项(如未来收益)明确拒绝书面化。 + +\section{合格投资者与宣传边界} + +各法域对「合格投资者」「专业客户」的定义不同;本书合规篇提供框架性索引。一般原则是:\textbf{非公开募集}、\textbf{不对不特定对象宣传保本或确定收益}、\textbf{适当性匹配}。社交媒体与公开会议上的表述极易构成「公开劝诱」的争议,冷启动章节亦强调有节制的触达;本章从基金文件角度要求:所有对外版本留有\textbf{版本号与审批记录}。 + +\section{首次交割与后续关闭} + +首次关闭(first closing)确定首批 LP 的认缴与计费起点;后续关闭(subsequent closings)可能涉及\textbf{同等条款最惠}、对早期 LP 的补偿(equalisation)与对价调整。行政上需协调认购书签署、KYC、资金到账与工商/登记变更(视载体而定)。延长的募集期会增加法律与市场成本,应在 PPM 中设定明确截止条件与 GP 的权利。 diff --git a/pe-zero-to-one/chapter/ch05.tex b/pe-zero-to-one/chapter/ch05.tex new file mode 100644 index 0000000..3a66474 --- /dev/null +++ b/pe-zero-to-one/chapter/ch05.tex @@ -0,0 +1,17 @@ +\chapter{赛道与策略:如何定义你的「第一只基金」} + +\section{聚焦优于泛化} + +首只基金若宣称「全行业、全阶段、全球配置」,在 allocator 视角中往往等同于\textbf{无清晰边际优势}。更可行的做法是在\textbf{行业 × 地域 × 阶段 × 单笔规模}四维中至少锁定两维,形成可辩护的「为什么是你」的故事。聚焦不等于永久狭窄:可在 LPA 中保留\textbf{合理扩展投资范围}的修正案机制,但首轮沟通应强调核心圈。 + +\section{可重复的筛选标准} + +建立书面化的\textbf{立项标准}:最低收入/利润门槛、市场集中度上限、禁止行业(如强监管敏感领域)、ESG 红线、以及技术与团队评分卡。标准应可回溯:每个过会/否决决策对应哪一条标准被触发。这样既能训练初级投资人员,也能向 LP 证明流程非拍脑袋。量化背景团队可将部分标准\textbf{指标化},但仍需与投资委员会的人文判断结合。 + +\section{基金规模与机会集的匹配} + +目标募资额应与\textbf{可完成投资节奏}及\textbf{团队覆盖能力}一致:过小则管理费无法覆盖固定成本;过大则被迫降低标准或拉长投资期,损害 IRR 与声誉。冷启动阶段可采用较低硬上限 + 后续基金接力,而不是单支基金「一步到位」。 + +\section{品牌与执行的乘数} + +赛道定义会通过每一次公开露面、案例研究与 LP 推荐被\textbf{重复强化}。频繁切换叙事会稀释品牌,使介绍链无法累积。建议每年复盘一次策略声明,仅在证据充分时调整表述,并同步修订 PPM 与网站(若有)。 diff --git a/pe-zero-to-one/chapter/ch06.tex b/pe-zero-to-one/chapter/ch06.tex new file mode 100644 index 0000000..891de95 --- /dev/null +++ b/pe-zero-to-one/chapter/ch06.tex @@ -0,0 +1,17 @@ +\chapter{项目获取与初步判断} + +\section{项目流的来源} + +冷触达(cold outreach)在缺乏品牌时效率低但并非无效:关键是\textbf{高度定制}的切入点(对目标公司近期融资、产品或监管变化的具体评论)。更可持续的来源包括:创始人推荐、同行 FA、律师与会计师转介、行业会议与学术合作。\textbf{网络效应}随成功案例累积——第一单往往最难,需在冷启动章节所述触达策略与这里所述来源之间建立闭环。 + +\section{Teaser 与保密} + +卖方 Teaser 通常为匿名一页纸,概述行业、财务区间与交易诉求。买方在签署\textbf{保密协议(NDA)}前应明确:接触信息的人员范围、用途限制、存续期与管辖法律。NDA 不是万能盾:敏感信息仍应分层披露,核心技术细节可推迟至 exclusivity 阶段。 + +\section{商业逻辑的快速体检} + +在完整尽调之前,用有限时间回答:\textbf{客户为什么买单?}替代方案与切换成本?\textbf{单位经济模型}是否随规模改善?竞争格局是赢家通吃还是分散?若上述任一项无法在假设表格中自洽,可暂缓投入重度资源。市场大小(TAM/SAM/SOM)宜用多种方法交叉校验,避免单一夸张口径。 + +\section{与内部流程的衔接} + +立项会应产生\textbf{书面备忘录}:投资主题、主要风险、下一步工作清单与负责人。避免「口头立项、无编号」导致后续 DD 与法务脱节。对于可能触发利益冲突的项目(如 LP 关联),应尽早启动合规标注与回避程序。 diff --git a/pe-zero-to-one/chapter/ch07.tex b/pe-zero-to-one/chapter/ch07.tex new file mode 100644 index 0000000..1696a3b --- /dev/null +++ b/pe-zero-to-one/chapter/ch07.tex @@ -0,0 +1,21 @@ +\chapter{尽职调查:财务、法律与商业} + +\section{DD 的整体节奏} + +尽职调查(Due Diligence)应在 Term Sheet 签署后、重大交割款项划出前完成,但\textbf{高风险事项}(诉讼、环保、核心知识产权归属)宜在签署前做\textbf{有限度预尽调}以避免排他期浪费。典型工作流:数据室清单 → 管理层问答(Q\&A)→ 现场走访 → 第三方报告(环境、税务、IT)→ 问题汇总与价格/条款调整建议。投资团队须指定\textbf{工作流负责人},防止律师与会计师各跑各的、结论无法合并。 + +\section{财务尽调} + +关注\textbf{盈利质量}:收入确认政策是否激进?应收账款与现金流是否匹配?一次性收益与非经常性项目是否被误当作可持续利润?\textbf{正常化 EBITDA} 的调整须有证据支撑并在投资备忘录中披露假设。营运资金(NWC)目标与交割后「漏桶」条款常是谈判焦点。对早期企业,财务 DD 可能让位于\textbf{单位经济与跑道}分析。 + +\section{法律尽调} + +重点扫描:重大合同(客户/供应商集中度、变更控制权条款)、诉讼与监管调查、土地与环保许可、知识产权链条(职务发明、开源许可污染)、劳动与社保合规、数据隐私。红色事项应进入\textbf{交割条件(CP)}或价格机制(earn-out、托管账户),而非仅停留在尽调报告附录。 + +\section{商业与运营尽调} + +访谈中层与客户样本(在合规前提下)、考察供应链与产能利用率、评估数字化与内控成熟度。对 PE 而言,\textbf{100 日计划}的雏形往往在此阶段形成:投后哪些杠杆(采购、定价、组织)最可能兑现。 + +\section{内部与外部顾问的协作} + +内部:投资负责人对结论负总责,需参与关键会议而非仅读摘要。外部:律师与审计师的范围说明书(SOW)应明确交付物与时间,避免范围蔓延。所有重大发现应进入\textbf{问题清单}并标注状态(已解决/留待交割后/放弃交易)。 diff --git a/pe-zero-to-one/chapter/ch08.tex b/pe-zero-to-one/chapter/ch08.tex new file mode 100644 index 0000000..2427834 --- /dev/null +++ b/pe-zero-to-one/chapter/ch08.tex @@ -0,0 +1,21 @@ +\chapter{估值与交易结构入门} + +\section{可比公司与可比交易} + +上市公司估值倍数(EV/EBITDA、P/E 等)提供市场锚点,但需调整:流动性折价、控制权溢价、行业周期位置与会计差异。\textbf{可比交易}更接近一级市场,但样本稀疏、披露不全,应对区间取保守情景。两者结合形成\textbf{估值走廊},而非单点数字。 + +\section{DCF 与情景分析} + +现金流折现(DCF)强迫显式列出增长、利润率、资本支出与终值假设;敏感性分析可展示关键驱动因子。早期企业 DCF 权重常低于\textbf{最近融资价格}或\textbf{风险投资法},但仍有内部讨论价值。注意 WACC 与终值增长率假设勿机械套用教科书 defaults。 + +\section{股权比例与对价形式} + +估值决定入门股权比例;\textbf{员工期权池}是否投前扩池会稀释有效比例。对价可为现金、换股或分期支付;分期与\textbf{earn-out} 绑定未来业绩,降低买方 upfront 风险但增加争议与会计复杂性。 + +\section{对赌与调整机制} + +业绩承诺、回购与现金补偿等条款在中文语境常称「对赌」,实质是\textbf{价格与风险的再分配}。设计时应避免不可执行的惩罚、与公司法冲突的约定,以及税务上的意外后果。所有对赌须由\textbf{律师与税务顾问}联合审阅;本书仅强调经济含义:对赌不是「保证收益」,而是条件支付。 + +\section{谈判中的艺术} + +估值是\textbf{区间博弈}:卖方要叙事上限,买方要风险下限。交易结构(分期、托管、陈述保证保险)常比硬压估值更能成交。保留\textbf{双赢叙事}有利于投后合作——过度压榨条款往往在董事会层面反噬。 diff --git a/pe-zero-to-one/chapter/ch09.tex b/pe-zero-to-one/chapter/ch09.tex new file mode 100644 index 0000000..fc5e150 --- /dev/null +++ b/pe-zero-to-one/chapter/ch09.tex @@ -0,0 +1,21 @@ +\chapter{Term Sheet 与谈判要点} + +\section{Term Sheet 的法律地位} + +Term Sheet(条款清单)可分为\textbf{有约束力}(如保密、费用、排他)与\textbf{无约束力}(商业核心条款)段落。签署前应明确哪些条款在最终协议中\textbf{不得劣化},避免签署后被对方律师「技术性推翻」。中英文版本并存时须指定\textbf{优先语言}。 + +\section{经济条款簇} + +投资金额、投前/投后估值、股价与稀释、期权池、清算优先(1x non-participating vs participating)、股息(多为累积与否的象征性条款)。\textbf{反稀释}(full ratchet vs weighted average)在下行轮融资中争议最大,需与创始人心理预期和公司后续融资能力一并评估。 + +\section{治理与控制簇} + +董事会席位、观察员席位、否决权清单(预算、并购、关联交易、高管任免)。过多否决权会瘫痪公司;过少则 LP 对资产保护不足。应在「关键少数」事项上集中否决权,日常运营授权管理层。 + +\section{流动性与协同退出} + +\textbf{领售权(drag-along)}迫使小股东参与整体出售;\textbf{随售权(tag-along)}保护小股东参与买方要约。\textbf{优先认购权}与\textbf{共同出售权}影响后续轮次节奏。IPO 场景下需关注\textbf{注册权}与锁定期。 + +\section{谈判策略:底线与交换} + +事先内部分类:\textbf{必须守住}(如核心信息权、重大资产处置否决)、\textbf{可交换}(如观察员人数)、\textbf{可放弃}(如象征性股息)。用次要让步换取对方在估值或关键治理上的让步。记录谈判历史,避免口头承诺遗失;重大让步须经投资委员会书面确认。 diff --git a/pe-zero-to-one/chapter/ch10.tex b/pe-zero-to-one/chapter/ch10.tex new file mode 100644 index 0000000..3609614 --- /dev/null +++ b/pe-zero-to-one/chapter/ch10.tex @@ -0,0 +1,21 @@ +\chapter{交割、资金划付与投后治理} + +\section{交割条件(CP)} + +常见 CP 包括:陈述与保证真实、无法律禁令、关键第三方同意、政府审批(若需)、员工留任协议签署、无重大不利影响(MAC)未发生。GP 应维护\textbf{CP 检查表},由律师出具法律意见、财务确认资金路径。\textbf{划款指令}须双人复核,防范欺诈性邮件篡改账户。 + +\section{文件签署顺序} + +通常先满足 CP,再签署最终股份认购/增资文件,最后释放托管或直接划款。跨境交易可能涉及\textbf{外汇登记}与税务代扣;时间表应预留监管机构处理窗口。签字页与正本份数在 closing memo 中列明。 + +\section{投后信息权} + +股东协议与 LPA 往往规定:月度/季度报表、年度预算、重大事件即时通报、审计配合权。GP 应建立\textbf{被投企业报告模板}与内部 CRM 提醒,避免投后「失联」引发 LP 质疑。 + +\section{董事会节奏与赋能} + +董事会频率与议程应匹配公司阶段:早期可更密,成熟期可季度。GP 董事应在\textbf{战略、资本结构、关键招聘}上发力,避免微观管理日常运营。赋能形式包括介绍客户、补充高管、协助下一轮融资——均须注意利益冲突披露。 + +\section{重大事项同意权} + +基金层面可能对超过单笔金额或特定类型的投资要求 LPAC 或顾问委员会知情;被投企业层面的否决权行使应记录在案,以支持未来退出时的治理叙事。 diff --git a/pe-zero-to-one/chapter/ch11.tex b/pe-zero-to-one/chapter/ch11.tex new file mode 100644 index 0000000..3b43837 --- /dev/null +++ b/pe-zero-to-one/chapter/ch11.tex @@ -0,0 +1,21 @@ +\chapter{投后管理与价值创造} + +\section{从监控到主动价值创造} + +投后不仅是收取报表:优秀 GP 在交易完成前已草拟\textbf{价值创造路线图}(采购协同、定价、渠道、数字化、组织瘦身等)。执行依赖被投企业管理层的信任与激励——投后首 100 天的沟通节奏与「不做什么」的承诺同样重要。 + +\section{财务与运营 KPI} + +建立与战略一致的 KPI 仪表盘:收入增长、利润率、现金转换周期、客户留存、安全与环境指标(若适用)。对比投资备忘录中的基准,定期复盘偏差原因;必要时触发\textbf{预警会}与纠偏措施。 + +\section{人才与组织} + +关键人风险是 PE 失败主因之一。投后应参与\textbf{高管评估、薪酬与长期激励}设计,必要时引入猎头与外部董事。文化冲突在跨境并购中尤为突出,需预留整合预算与时间。 + +\section{追加投资与跟投} + +后续轮次是否跟进,应基于\textbf{重新估值}与\textbf{权利维持}(防稀释),而非沉没成本。LP 侧共同投资(co-invest)机会需公平分配并记录,避免利益输送指控。 + +\section{危机项目} + +业绩持续恶化、治理僵局或合规爆雷时,应启动\textbf{危机协议}:增派资源、更换管理层、寻求出售或重组。法律上注意董事\textbf{受信义务}在困境中的变化。早期识别比晚期救火成本更低;投后例会应保留「黄色/红色」分级机制。 diff --git a/pe-zero-to-one/chapter/ch12.tex b/pe-zero-to-one/chapter/ch12.tex new file mode 100644 index 0000000..f145750 --- /dev/null +++ b/pe-zero-to-one/chapter/ch12.tex @@ -0,0 +1,21 @@ +\chapter{退出路径:IPO、并购与二级转让} + +\section{退出是投资 thesis 的一部分} + +进入时就应讨论\textbf{最可能的退出通道}:战略并购、财务买家、IPO、 secondary sale(卖老股)或 recap。不同通道对持股比例、治理清洁度、审计年限与合规记录要求不同;临退出才补洞往往代价高昂。 + +\section{并购退出} + +战略买家通常愿付\textbf{协同溢价},但谈判周期与反垄断审查不确定。财务买家(另一家 PE)依赖杠杆与再次出售,尽调更偏财务模型。拍卖流程(broad auction vs targeted)影响价格与泄密风险;顾问费用与管理层激励(management equity rollover)需在条款中明确。 + +\section{IPO} + +公开市场提供流动性与品牌,但面临\textbf{锁定期、持续披露成本与市场波动}。上市地选择(本地 vs 离岸)涉及估值倍数、监管环境与外汇安排。GP 需与承销商、公司律师协调\textbf{注册权}与减持节奏。 + +\section{二级份额转让} + +基金到期或 LP 流动性需求可能触发\textbf{基金二级交易}(LP 份额转让)或\textbf{投资组合二级出售}(continuation fund)。定价依赖 NAV 与尽职调查;利益冲突(GP 同时代表买卖双方)须严格程序化并披露。 + +\section{基金期限与延期} + +LPA 规定的基金到期后,未退出资产可通过\textbf{延期}(通常需一定比例 LP 同意)、\textbf{捆绑出售}或\textbf{接续基金}处理。延期费率与 GP 激励常重新谈判;透明沟通可减少纠纷。 diff --git a/pe-zero-to-one/chapter/ch13.tex b/pe-zero-to-one/chapter/ch13.tex new file mode 100644 index 0000000..5cc154c --- /dev/null +++ b/pe-zero-to-one/chapter/ch13.tex @@ -0,0 +1,46 @@ +\chapter{合规、内控与声誉风险} + +\section{合规在私募中的含义} + +「合规」不仅是应对监管检查,更是\textbf{保护 LP 资产、降低民事与刑事责任概率、维护品牌}的基础设施。对管理人而言,核心模块通常包括:反洗钱与客户尽职调查、利益冲突管理、内幕信息与市场滥用防范、宣传与销售适当性、记录保存与监管报送。各法域细节见本书合规篇;本章提供\textbf{内控搭建}的通用框架。 + +\section{反洗钱(AML)与客户尽职调查(KYC)} + +Know Your Customer 要求识别最终受益所有人(UBO)、资金来源与制裁名单筛查。对机构 LP 与个人 LP 的尽调深度不同;高风险司法辖区或政治公众人物(PEP)需强化措施。交易环节须警惕\textbf{结构化分拆}规避门槛的行为。AML 政策应书面化并定期培训,异常交易有内部升级路径。 + +\section{利益冲突(COI)} + +典型冲突包括:基金 A 与基金 B 竞争同一标的、GP 关联方提供服务收费、个人跟投与基金跟投机会分配不均、顾问同时服务卖方与买方。管理措施包括:\textbf{事前披露}、投资委员会回避、独立委员表决、side letter 台账与公平分配政策。未妥善处理的冲突是监管处罚与 LP 诉讼的高频来源。 + +\section{内幕信息与防火墙} + +投研人员可能接触未公开重大信息(尤其临近上市或并购标的)。需建立\textbf{信息分级}、限制名单(restricted list)、墙(Chinese wall)与「清洁团队」程序。个人交易与礼品申报政策应明确。量化团队若与上市公司或卖方顾问共享物理或逻辑环境,更需日志与权限隔离。 + +\section{记录保存与对外披露} + +电子通信、模型版本、投委会材料、定价依据与 LP 沟通记录应在保留期限内\textbf{可检索备份}。对外路演、网站与社交媒体发布应有双人复核与版本存档。监管检查与民事诉讼中,「找不到记录」往往被推定不利。 + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[font=\footnotesize] + \node[compliance=gray!80!black, minimum width=2.4cm] (core) {内控核心}; + \node[compliance=red!70!black, above left=0.9cm and 1.1cm of core] (aml) {AML/KYC\\客户尽调}; + \node[compliance=orange!80!black, above right=0.9cm and 1.1cm of core] (coi) {利益冲突\\Chinese wall}; + \node[compliance=blue!70!black, below left=0.9cm and 1.1cm of core] (mn) {材料留痕\\宣传口径}; + \node[compliance=teal!70!black, below right=0.9cm and 1.1cm of core] (rep) {监管报送\\重大事项}; + + \foreach \x in {aml,coi,mn,rep} + \draw[compliance arrow] (core) -- (\x); + + \begin{scope}[on background layer] + \node[draw=violet!40, rounded corners=14pt, inner sep=12pt, fill=violet!3, + fit=(core)(aml)(coi)(mn)(rep)] {}; + \end{scope} +\end{tikzpicture} +\caption{私募管理人内控与合规常见支柱(示意)} +\label{fig:compliance-pillars} +\end{figure} + +\section{声誉与「架构」的边界} + +多层控股或离岸主体不能消除对\textbf{真实业务、适当性、非公开募集}等实质要求;监管与司法机关在特定情形下可否认法律人格独立性(刺破面纱)。合规篇各章所述境外牌照亦仅覆盖\textbf{获准司法辖区内的活动},与本书前文所述中国大陆登记备案相互独立,须分别论证。\textbf{声誉风险}往往在监管正式行动之前即通过 allocator 尽调、媒体报道与人才招聘受挫体现——内控投入是长期品牌的一部分。 diff --git a/pe-zero-to-one/chapter/ch14.tex b/pe-zero-to-one/chapter/ch14.tex new file mode 100644 index 0000000..faeb435 --- /dev/null +++ b/pe-zero-to-one/chapter/ch14.tex @@ -0,0 +1,53 @@ +\chapter{集团架构思维:控股、运营主体与风险隔离} + +\section{为何采用控股—子公司结构} + +商业动机通常包括:\textbf{品牌与合同主体分离}(运营风险不直接波及控股层持股)、\textbf{区域业务分拆}(不同法域雇佣与税务)、\textbf{融资与股权激励}(在子公司层面设期权池)、以及\textbf{未来资产剥离或引入战略投资人}时的清晰边界。对私募股权基金而言,GP、管理公司、顾问实体与特殊目的载体(SPV)的叠层亦属同类思维,但受监管披露与利益冲突规则约束更强。 + +\section{有限责任的有限性} + +子公司原则上以自身资产对外承担责任,股东以出资为限承担风险。但若存在\textbf{人格混同}(账目、人员、业务、办公场所混用)、\textbf{资本显著不足}或\textbf{不当控制}损害债权人利益,法院可能刺破面纱,令集团内其他实体或股东担责。因此「隔离」是\textbf{可争取的法律效果},不是仅靠注册多一张纸就自动实现。 + +\section{关联交易与转让定价} + +集团内服务协议(IT、人力、品牌许可)、资金池与交叉计费须符合\textbf{独立交易原则}(arm's length),并留存可比分析与董事会决议。税务机关与监管机构均可挑战\textbf{无商业实质}的腾挪。跨境支付还涉及代扣税与外汇合规。 + +\section{基金架构与管理人架构的区分} + +\textbf{基金}作为投资载体有其独立寿命与 LP 关系;\textbf{管理公司}收取管理费并承担团队成本。混淆二者账户或费用分摊,易触发 LP 审计质疑与监管关注。量化策略若由「技术子公司」开发再许可给管理人,须明确 IP 归属、许可费率与披露路径。 + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[ + holding/.style args={#1}{ + rounded corners=8pt, + minimum width=3.5cm, + minimum height=1.1cm, + align=center, + draw=#1!65!black, + thick, + fill=#1!10, + font=\small, + drop shadow={shadow xshift=1pt, shadow yshift=-1pt, fill=black!18}, + }, +] + \node[holding=violet] (parent) at (0,2.1) {控股 / 投资主体\\(持股、分红、再投资)}; + \node[holding=blue] (op) at (-2.6,0) {运营子公司 A\\合同、品牌、日常业务}; + \node[holding=teal] (tech) at (2.6,0) {运营子公司 B\\技术、IP、研发外包等}; + + \draw[compliance arrow] (parent) -- (op) node[midway, left, font=\scriptsize, xshift=-2pt] {股权}; + \draw[compliance arrow] (parent) -- (tech) node[midway, right, font=\scriptsize, xshift=2pt] {股权}; + + \draw[dashed, gray!55, thick] (op.east) -- node[above, font=\scriptsize, sloped] {服务协议 / 许可} (tech.west); + + \node[font=\scriptsize, text width=9.2cm, align=center, below=0.65cm of op, xshift=1.3cm, text=red!55!black] { + \textbf{有限性:}人格混同、不当控制、掏空公司时,可能被刺破面纱;\\ + 证券/资管「牌照」与募集合规\textbf{不因多一层公司}而自动满足。}; +\end{tikzpicture} +\caption{典型控股—运营分层与内部交易(示意)} +\label{fig:holding-structure} +\end{figure} + +\section{与合规篇的衔接} + +母公司通过\textbf{合法分红}或具有商业实质与定价依据的\textbf{服务费}向上游转移利润时,须留存转让定价文档并接受税务与金融监管双重审视。量化团队若以子公司形式存在,须与本书「合规与全球展业」篇中的管理人资格要求一并设计,避免「仅有壳公司、无持牌主体」的展业真空。架构讨论应始终与\textbf{持牌律师与会计师}同步,本书仅提供对话框架。 diff --git a/pe-zero-to-one/chapter/ch15.tex b/pe-zero-to-one/chapter/ch15.tex new file mode 100644 index 0000000..f97ffef --- /dev/null +++ b/pe-zero-to-one/chapter/ch15.tex @@ -0,0 +1,36 @@ +\chapter{从零到一检查清单与常见坑} + +\section{募资前检查清单} + +\begin{itemize} + \item 策略陈述与 PPM、DDQ、路演材料是否\textbf{版本一致},且经合规/律师审阅(若适用)。 + \item 管理团队简历、过往业绩披露是否\textbf{可验证},无夸大或遗漏重大纪律处分。 + \item 基金载体、LPA 核心条款与管理人登记状态(或时间表)是否向首轮 LP 透明。 + \item 行政:银行账户、KYC 流程、认购书模板、费用与里程碑是否就绪。 +\end{itemize} + +\section{首单投资前检查清单} + +\begin{itemize} + \item 立项备忘录、投委会决议、利益冲突审查是否归档。 + \item 财务/法律/商业尽调结论与\textbf{红线问题}关闭状态;CP 与划款路径确认。 + \item Term Sheet 与最终协议的关键经济条款\textbf{差异说明}。 + \item 投后 100 日计划初稿与报告节奏是否通知被投方。 +\end{itemize} + +\section{年度复盘清单} + +\begin{itemize} + \item 组合层面:IRR、MOIC、DPI/TVPI 与可比基金基准;单一项目减值测试。 + \item 合规与运营:监管报送、税务、审计、数据安全与业务连续性演练。 + \item 团队:招聘、培训、激励与关键人备份;文化与健康度(尤其远程团队)。 + \item 战略:赛道假设是否仍成立,下一支基金或延续基金是否进入筹备窗口。 +\end{itemize} + +\section{常见失败模式与改进} + +\textbf{条款理解偏差:}投资团队未吃透清算优先与反稀释的数值后果——改进:建模培训与双人复核。\textbf{尽调流于形式:}过度依赖管理层 PPT——改进:独立来源与现场走访清单。\textbf{投后失联:}交割后数月无董事会材料——改进:强制 CRM 与季度投后评审会。\textbf{募资与投资脱节:}承诺的策略与实际项目类型漂移——改进:投资委员会章程与 LP 沟通纪律。 + +\section{与全书其他部分的衔接} + +冷启动与 Networking 解决「人与信任从哪来」;合规篇解决「能否合法做」;本清单解决「落地时别漏项」。建议将清单电子化为可勾选项,并在每年审计前更新一版。 diff --git a/pe-zero-to-one/chapter/ch16.tex b/pe-zero-to-one/chapter/ch16.tex new file mode 100644 index 0000000..fe12a31 --- /dev/null +++ b/pe-zero-to-one/chapter/ch16.tex @@ -0,0 +1,112 @@ +\chapter{冷启动:从策略掌握者到最小可行团队} + +本章讨论:在已具备可验证交易策略或组合的前提下,如何跨越「只有一个人、没有品牌、没有合规壳」的冷启动期,通过\textbf{Networking}与\textbf{有节制的触达}组建团队、积累信任,并与本书\textbf{合规篇}(第十七章起)所述合规路径衔接。\textbf{未获必要许可前,任何对外募资或投资顾问表述须严格遵守当地法律};下文中的「触达」包含人才、合作方与\textbf{未来}资本关系,不代表可绕过监管。 + +\section{冷启动的三类约束} + +\begin{itemize} + \item \textbf{可信度:}同类策略供给过剩, allocator 与联合创始人默认怀疑;需要\textbf{可复核}的过程记录(回测假设、实盘滑点、版本管理),而非仅口头「稳定盈利」。 + \item \textbf{合规壳:}在多数司法辖区,面向外部资金开展管理或募集前须具备相应资格(参见\textbf{合规篇})。冷启动阶段常见做法是:\textbf{自有/极窄关系资金}验证、或\textbf{入职持牌机构}输出策略、或与已持牌方\textbf{投顾/白标}合作——具体路径须律师确认。 + \item \textbf{资本与时间:}团队现金跑道与机会成本;过早扩张固定人力往往比「外包+里程碑」更危险。 +\end{itemize} + +\section{阶段模型:从单人到最小团队} + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[node distance=0.75cm, font=\small] + \node[compliance=purple] (s0) {0. 策略持有人\\回测/仿真/小资金实盘}; + \node[compliance=violet, below=of s0] (s1) {1. 可展示记录\\文档化、可重复运行、风险指标}; + \node[compliance=blue, below=of s1] (s2) {2. 第一个同类\\联创 / 资深兼职 / 顾问}; + \node[compliance=teal, below=of s2] (s3) {3. 最小 pods\\研究+工程 或 工程+运维}; + \node[compliance=green!50!black, below=of s3] (s4) {4. 公司化与分工\\合规、运营、市场/IR}; + + \foreach \a/\b in {s0/s1,s1/s2,s2/s3,s3/s4} + \draw[compliance arrow] (\a) -- (\b); + + \begin{scope}[on background layer] + \node[rounded corners=12pt, inner sep=11pt, fill=gray!6, draw=gray!45, dashed, fit=(s0)(s4)] {}; + \end{scope} +\end{tikzpicture} +\caption{从「掌握策略」到「可运转组织」的常见阶段(非严格线性,可回退迭代)} +\label{fig:coldstart-stages} +\end{figure} + +\textbf{阶段 0--1:}重点不是扩张人头,而是把策略变成\textbf{他人可接手}的流水线:代码仓库规范、参数与数据版本、失败案例与最大回撤说明。此阶段 Networking 的目标多是\textbf{同行切磋与找漏洞},而非直接募资。 + +\textbf{阶段 2:}第一个关键合作者应补齐你最弱的一环:若你强研究弱工程,优先找能\textbf{工程化与上线}的人;若你强开发弱市场,可先找\textbf{行业顾问}(兼职)帮对接资源,再考虑全职。 + +\textbf{阶段 3--4:}出现固定交易时段运维、对手方对接、估值与报表需求时,再拆出\textbf{运营/风控合规};市场与投资者关系(IR)通常在\textbf{真有产品或持牌主体}后加重,避免过早「销售驱动」导致合规风险。 + +\section{团队角色清单(精简版)} + +\begin{description} + \item[投资/研究负责人] 策略逻辑、组合与风险预算;对外投资叙事与 allocator 对话(须在合规框架内)。 + \item[量化工程] 回测框架、执行系统、低延迟与稳定性;与经纪商/交易所 API 对接。 + \item[交易运维] 盘中监控、故障切换、日志与事故复盘;常与工程合并由小团队兼任。 + \item[合规与法务] 持牌后常需专职或外包律所;冷启动期至少要有\textbf{固定外部律师}审阅对外材料。 + \item[运营与财务] 基金会计、估值、投资者报告模板;公司日常账务。 + \item[市场/IR] 募资材料、路演排期、数据室维护;与「公开宣传」边界强相关,需合规双人复核。 +\end{description} + +早期不必一人一岗:常见「2+1」是 \textbf{PM+工程} 加 \textbf{外包财务/律师};或 \textbf{PM+运营} 加 \textbf{外包开发}。原则是\textbf{不可外包的核心}(投资决策权、风控哲学)留在内部。 + +\section{Networking:去哪里、见谁、谈什么} + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[font=\footnotesize] + \node[ellipse, draw=teal!70, fill=teal!6, minimum width=3.6cm, minimum height=1.5cm, align=center] (hub) {你\\(策略与记录)}; + \node[reg node=blue, above left=1.2cm and 1.8cm of hub] (alumni) {校友与\\前同事}; + \node[reg node=orange, above right=1.2cm and 1.8cm of hub] (broker) {经纪商/\\期货商活动}; + \node[reg node=violet, left=2.5cm of hub] (conf) {行业会议\\与闭门沙龙}; + \node[reg node=purple, right=2.5cm of hub] (online) {线上社群\\(筛选质量)}; + \node[reg node=green!60!black, below left=1.2cm and 1.5cm of hub] (vendor) {数据商/\\云厂商生态}; + \node[reg node=red!65!black, below right=1.2cm and 1.5cm of hub] (intro) {介绍链\\(warm intro)}; + + \foreach \x in {alumni,broker,conf,online,vendor,intro} + \draw[compliance arrow, shorten <=2pt, shorten >=2pt] (hub) -- (\x); +\end{tikzpicture} +\caption{Networking 渠道示意(优先 warm intro 与高质量闭门场景)} +\label{fig:networking-hub} +\end{figure} + +\begin{itemize} + \item \textbf{Warm intro 优先:}同样一封邮件,经共同信任人转发,回复率远高于陌生冷信。可维护简易表格:姓名、机构、关注点、上次联系日期、可提供的价值(非收益承诺)。 + \item \textbf{经纪商/期货商/主经纪会议:}偏执行与基础设施,适合找\textbf{运维与对手方}人脉,不宜在无证时当作募资场合。 + \item \textbf{会议与沙龙:}目标应是\textbf{学习监管口径、认识服务方、找潜在联合创始人},而非群发「代客理财」类话术。 + \item \textbf{线上社群:}质量参差;可贡献可验证的技术内容建立声誉,避免在公开频道讨论\textbf{具体客户资金与收益保证}。 + \item \textbf{校友网络:}律所、审计、投行背景校友常能在\textbf{公司设立与合规路径}上提供高质量引荐。 +\end{itemize} + +\section{Cold call 与 Cold email:原则与节奏} + +\textbf{对象区分:} +\begin{description} + \item[人才/技术合作] 邮件宜短:你是谁、策略领域(统计套利/CTA/做市等)、当前阶段、对方为何相关、明确\textbf{一次性}请求(15 分钟通话/咖啡)。附件可给\textbf{一页 Teaser(不含违规承诺)}。 + \item[Allocator/家办/FOF] 须事先研究其\textbf{策略容量、历史偏好、最低投资线}。首封邮件忌长 PDF;可附\textbf{合规审查过的}一页摘要与数据室链接(若有)。跟进间隔以周计,避免日催。 + \item[服务采购(数据、托管、系统)] 明确技术栈与接口需求,便于对方判断是否匹配。 +\end{description} + +\textbf{共同禁忌:}保本保收益、公开招揽不特定对象、借用他人牌照名义、夸大未经审计的业绩。此类表述在多国可能同时触发\textbf{证券法与刑事风险}。 + +\textbf{可执行习惯:}每周固定数量\textbf{高质量触达}(如 5--10 封定制邮件)优于百封群发;每次对话后写三行纪要(对方痛点、下一步、承诺事项)。 + +\section{从交易执行者到「团队负责人」} + +角色转变要点: +\begin{enumerate} + \item \textbf{决策透明:}研究日志、策略变更审批、仓位与风险限额书面化,减少「只有创始人脑子里有」的单点风险。 + \item \textbf{招聘顺序:}先\textbf{标准与文档},再扩人;否则新人只能当「第二个你」,无法放大杠杆。 + \item \textbf{激励:}早期现金有限时,可用里程碑奖金、虚拟股或期权,但须\textbf{律师起草}并与未来持牌主体股权结构一致。 + \item \textbf{冲突处理:}联合创始人间事先约定\textbf{股权兑现、退出、竞业},避免策略分歧时无法拆伙。 +\end{enumerate} + +\section{与本书其他章节的衔接} + +\begin{itemize} + \item 募资与条款设计见前文各章;\textbf{冷启动期}更强调「可验证记录 + 合规路径 + 小步团队」,而非一步到位的大基金结构。 + \item 集团架构与跨境展业见第十四章(图 \ref{fig:holding-structure})及\textbf{合规篇};Networking 获得的外资意向须在\textbf{具体辖区规则}下重新评估。 +\end{itemize} + +本章不提供「话术模板」式的募资脚本;若需要,应在持牌律师与合规审查后定制。冷启动的本质是:用\textbf{可审计的进步}替代\textbf{不可验证的叙事},用\textbf{精准触达}替代\textbf{噪音式群发},用\textbf{最小团队}撑到\textbf{合规壳与首关资金}同时就绪的那一刻。 diff --git a/pe-zero-to-one/chapter/ch17.tex b/pe-zero-to-one/chapter/ch17.tex new file mode 100644 index 0000000..4ac8e48 --- /dev/null +++ b/pe-zero-to-one/chapter/ch17.tex @@ -0,0 +1,54 @@ +\chapter{量化开发者合规路径:从灰色地带到持牌展业} + +本章面向已具备相对稳定盈利策略组合的量化开发者,梳理从「借贷式资管」「代客理财」等非正规安排,过渡到在主要司法辖区合法管理外部资金的典型阶梯。\textbf{本书不构成法律意见};具体能否展业须由当地持牌律师结合资金性质、募集方式、客户类型与跨境因素认定。 + +\section{为何「借贷 / 配资 / 代客理财」本身风险高} + +中国证监会投资者教育案例明确指出:证券从业人员\textbf{私下代客理财、约定收益分成},违反《证券法》第143--145条及经纪人相关规则;纠纷中投资者往往只能向个人追责。参见官方案例:\url{http://www.csrc.gov.cn/csrc/c100211/c1452037/content.shtml}。 + +实务中常与下列风险标签一并讨论(是否构成违法或犯罪须个案认定):面向\textbf{不特定对象}、公开或变相公开宣传、\textbf{保本保收益}承诺,可能触及非法集资类刑事风险;场外配资长期为监管打击重点——\textbf{结构违法则策略再稳也不安全}。 + +\section{对外资管的合规阶梯(概念模型)} + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[node distance=1.15cm and 0.9cm] + \node[compliance=purple] (A) {A. 自有或极窄关系户\\范围与账户出借、税务等仍须个案评估}; + \node[compliance=violet, below=of A] (B) {B. 入职持牌机构\\券商资管、公募、期货资管、银行理财子等}; + \node[compliance=blue!70!cyan, below=of B] (C) {C. 证券投资咨询机构\\证监会许可范围内;咨询 $\neq$ 代客全权委托}; + \node[compliance=teal, below=of C] (D) {D. 私募基金管理人\\中基协登记 + 产品备案(证券类)}; + \node[compliance=green!50!black, below=of D] (E) {E. 投顾输出(如 MOM)\\满足条件后向银行、信托、券商资管提供投顾服务}; + + \draw[compliance arrow] (A) -- (B); + \draw[compliance arrow] (B) -- (C); + \draw[compliance arrow] (C) -- (D); + \draw[compliance arrow] (D) -- (E); + + \begin{scope}[on background layer] + \node[fill=gray!5, rounded corners=14pt, inner sep=14pt, yshift=-2pt, + fit=(A)(E), draw=gray!40, dashed] {}; + \end{scope} +\end{tikzpicture} +\caption{量化开发者常见合规演进阶梯(示意,非唯一路径)} +\label{fig:quant-ladder} +\end{figure} + +对已能稳定盈利的策略组合,实务上常见顺序是:\textbf{B} 验证规模与合规耐受 $\rightarrow$ 有出资人与团队后再上 \textbf{D};若主要输出「研究/模型」而非直接管账,可重点评估 \textbf{C/E} 与合同边界。 + +\section{中国大陆:私募登记与系统入口} + +根据证监会公开的流程说明,私募基金管理人应向\textbf{基金业协会}办理登记,基金募集完毕后办理备案;系统为 \textbf{AMBERS}:\url{https://ambers.amac.org.cn}。流程索引:\url{http://www.csrc.gov.cn/csrc/c101939/c1045416/content.shtml}。《私募投资基金监督管理暂行办法》第九条明确:协会登记备案\textbf{不构成}对管理人投资能力、持续合规的认可,\textbf{也不保证}基金财产安全。 + +《私募投资基金登记备案办法》(中基协发〔2023〕5号)及配套指引下,市场常讨论的硬性方向包括(以协会\textbf{最新材料清单}为准):私募基金管理人实缴货币资本不低于\textbf{1000万元人民币}(或等值可自由兑换货币)等;证券类负责投资的高管常需满足\textbf{最近5年内连续2年以上}担任基金经理或投资决策负责人等,且单只产品管理规模不低于\textbf{2000万元}等证明要求;合规风控负责人须具备合规、风控、法律、会计等相关经验;近年内监管处罚、重大风险机构任职等构成负面情形。 + +\section{美国(简要锚点)} + +管理外部客户资产(含多数对冲基金架构)常需注册为 \textbf{Investment Adviser},提交 \textbf{Form ADV},通过 \textbf{IARD}。SEC 与州管辖取决于 AUM 等(\textbf{Rule 203A-1} 等)。入口参考:\url{https://www.sec.gov/divisions/investment/iaregulation/regia.htm}。策略以期货/互换为主时可能叠加 \textbf{CFTC/NFA}。 + +\section{新加坡(简要锚点)} + +从事《证券与期货法》(SFA)项下基金管理,须申请持有 \textbf{CMS} 牌照的 \textbf{LFMC};仅管理风投基金可申请简化 \textbf{VCFM}。MAS 官方说明含豁免情形、Form 1、eLicensing、审批约6个月、年费 S\$4{,}000 等:\url{https://www.mas.gov.sg/regulation/capital-markets/apply-for-licensing-or-registration-of-capital-market-entities/fund-management-licensing}。 + +\section{与集团架构、分工条款的衔接} + +「母公司—子公司」主要服务治理、合同主体与税务筹划讨论,\textbf{不能替代}管理人登记/产品备案或相应辖区资管牌照。「技术方只写策略、资金方承担一切」在协会材料中,投资或高管岗位仍可能被审核;任职与对外披露须由律师设计。 diff --git a/pe-zero-to-one/chapter/ch18.tex b/pe-zero-to-one/chapter/ch18.tex new file mode 100644 index 0000000..b36dce0 --- /dev/null +++ b/pe-zero-to-one/chapter/ch18.tex @@ -0,0 +1,43 @@ +\chapter{中国大陆:私募登记、代客理财边界与系统流程} + +\section{监管依据与流程入口} + +《私募投资基金监督管理暂行办法》第七条、第八条要求各类私募基金管理人根据\textbf{基金业协会}规定申请\textbf{登记},私募基金募集完毕后办理\textbf{备案}。证监会办事说明:\url{http://www.csrc.gov.cn/csrc/c101939/c1045416/content.shtml}。资产管理综合报送平台(\textbf{AMBERS}):\url{https://ambers.amac.org.cn}。 + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[ + font=\small, + box/.style={compliance=#1, minimum width=3.6cm, minimum height=1.05cm}, +] + \node[box=orange] (law) {行政法规与证监会规章\\《暂行办法》等}; + \node[box=blue, right=1.8cm of law] (amac) {基金业协会\\管理人登记 + 基金备案}; + \node[box=teal, right=1.8cm of amac] (amber) {AMBERS 报送平台\\材料提交与公示}; + + \draw[compliance arrow] (law) -- node[above, font=\scriptsize] {授权/自律} (amac); + \draw[compliance arrow] (amac) -- node[above, font=\scriptsize] {电子化} (amber); + + \node[below=0.55cm of amac, text width=8.5cm, align=center, font=\scriptsize, text=gray!70!black] {第九条:登记备案不构成对投资能力的认可,不构成对基金财产安全的保证。}; +\end{tikzpicture} +\caption{中国私募:法律依据、协会职能与报送系统关系(示意)} +\label{fig:chn-amac-flow} +\end{figure} + +\section{与「代客理财」的区分} + +正规证券公司资产管理业务以\textbf{公司}为主体签署资管合同;从业人员个人与客户私下签约或全权操作账户,属违规代客理财。投资者教育案例:\url{http://www.csrc.gov.cn/csrc/c100211/c1452037/content.shtml}。 + +\section{登记备案办法下的常见硬性方向} + +以下摘自公开解读与协会配套规则中常被引用的方向,\textbf{具体数字与表格以协会最新《登记申请材料清单》及有效规则文本为准}: + +\begin{itemize} + \item 私募基金管理人实缴货币资本不低于 \textbf{1000万元人民币}(或等值可自由兑换货币)等要求; + \item 证券类私募:负责投资的高管常需 \textbf{最近5年内连续2年以上} 相关投资管理经验,单只产品管理规模不低于 \textbf{2000万元} 等证明材料; + \item \textbf{合规风控负责人} 应具备合规、风控、法律、会计等相关工作经验; + \item 近年内被采取行政监管措施、协会纪律处分、重大负面机构任职等,可能构成障碍。 +\end{itemize} + +\section{证券投资咨询与私募管理人的关系} + +两者为不同监管线条:投资咨询机构从事证监会许可的咨询业务;私募基金管理人在中基协登记后管理私募基金。向银行理财子、信托、券商资管等提供\textbf{投资顾问}服务,需满足另行规定的条件(如备案年限、人员「3+3」等,以当时有效规则为准)。两类业务人员兼任限制须严格遵守监管规定。 diff --git a/pe-zero-to-one/chapter/ch19.tex b/pe-zero-to-one/chapter/ch19.tex new file mode 100644 index 0000000..07e4d4a --- /dev/null +++ b/pe-zero-to-one/chapter/ch19.tex @@ -0,0 +1,54 @@ +\chapter{全球区域合规总览:CHN、IND、EMEA、AMER 与亚太} + +对外管理客户资金或设立基金时,须先厘清:\textbf{谁在决策}(全权委托 / 建议 / 纯软件)、\textbf{是否集合投资}、\textbf{客户是否零售}、\textbf{募集与销售是否跨境}、\textbf{是否涉及衍生品或高杠杆}。下列为各区域\textbf{框架性}摘要,实施须结合当地律师意见。 + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[scale=0.98, every node/.style={transform shape}] + % 装饰性背景 + \begin{scope}[on background layer] + \fill[blue!4] (-5.6,-3.2) rectangle (5.6,3.4); + \draw[decorate, decoration={snake, amplitude=0.6pt, segment length=8pt}, gray!30] + (-5.3,0) -- (5.3,0); + \end{scope} + + \node[fancy ring=red!75!black, fill=red!10, minimum size=2.9cm] (CHN) at (-3,1.6) {CHN\\\footnotesize 中基协登记}; + \node[fancy ring=orange!80!black, fill=orange!8, minimum size=2.9cm] (IND) at (3,1.6) {IND\\\footnotesize SEBI AIF}; + \node[fancy ring=blue!70!black, fill=blue!6, minimum size=2.9cm] (EMEA) at (-3,-1.5) {EMEA\\\footnotesize AIFMD / FCA}; + \node[fancy ring=teal!70!black, fill=teal!6, minimum size=2.9cm] (AMER) at (3,-1.5) {AMER\\\footnotesize SEC RIA / IFM}; + + \draw[compliance arrow, shorten >=2pt, shorten <=2pt] (CHN) -- (EMEA); + \draw[compliance arrow, shorten >=2pt, shorten <=2pt] (IND) -- (AMER); + \draw[dashed, gray!50, thick] (CHN) -- (IND); + \draw[dashed, gray!50, thick] (EMEA) -- (AMER); + + \node[font=\scriptsize, text=gray!60!black, align=center] at (0,3.05) + {跨境募集时,四象限规则可能\textbf{同时}适用 $\Rightarrow$ 须逐司法辖区确认}; +\end{tikzpicture} +\caption{主要区域监管锚点示意(非地理比例;中东、非洲、拉美须单列国别)} +\label{fig:global-quad} +\end{figure} + +\section{欧盟(EU):AIFMD 与 AIFMD II} + +管理欧盟内另类投资基金(AIF)或向欧盟投资者营销,通常需取得成员国主管机关(NCA)授权的 \textbf{AIFM},并遵守资本、托管、杠杆、流动性、报告及委托管理等要求。\textbf{AIFMD II} 已于2024年生效,成员国转置与全面适用存在过渡期(公开材料常见表述约至2026年中,以各国立法为准)。授权材料趋向更细:人员、委托/再委托、技术资源、尽调程序等。欧盟委员会立法索引:\url{https://finance.ec.europa.eu/regulation-and-supervision/financial-services-legislation/implementing-and-delegated-acts/alternative-investment-fund-managers-directive_en}。 + +\section{英国(UK)} + +脱欧后适用 \textbf{UK AIFM} 制度:\textbf{full-scope authorised}、\textbf{small authorised}、\textbf{small registered UK AIFM} 等路径门槛与义务不同。FCA 入口:\url{https://www.fca.org.uk/firms/aifmd-uk}。另:\textbf{MiFID} 投资业务、FCA 其他授权与「仅做 AIFM」为不同维度。 + +\section{印度(IND):SEBI AIF} + +另类投资基金依 \textbf{SEBI (AIF) Regulations, 2012} 及后续 \textbf{Master Circular}、年度 \textbf{Circular} 更新;申请通过 \textbf{SIPortal} 等提交。2024 年起市场关注要点包括:Category I/II AIF 对参股公司股权设立负担的框架、关键投资团队\textbf{认证要求}等——以 \url{https://www.sebi.gov.in} 现行文件为准。证券类量化策略须与 \textbf{FPI/PMS} 等路径是否竞合一并论证。 + +\section{美国与加拿大(AMER 核心)} + +\textbf{美国:} 管理外部客户资产常需 \textbf{RIA} 注册与 \textbf{Form ADV}(\textbf{IARD});联邦与州管辖取决于 AUM(\textbf{Rule 203A-1} 等)。\textbf{加拿大:} \textbf{NI 31-103} 协调各省注册,基金管理常涉及 \textbf{Investment Fund Manager (IFM)} 等类别,除非适用豁免。 + +\section{新加坡、香港、澳大利亚、日本(亚太摘录)} + +\textbf{新加坡:} \textbf{CMS} 牌照下 \textbf{LFMC};\textbf{VCFM} 针对风投基金;\textbf{SFA 第99条} 等豁免情形见 MAS 页面。\textbf{香港:} 组合资产管理常见证监会 \textbf{第9类}牌照,通常至少两名 \textbf{RO}。\textbf{澳大利亚:} 面向客户的 \textbf{AFSL};批发基金常配合 \textbf{Responsible Entity / MIS}。\textbf{日本:} \textbf{金商法} 下第二类登记等,投信/投助为另一线条。 + +\section{中东与非洲(示例)} + +\textbf{迪拜 DIFC:} \textbf{DFSA} 监管,常见 \textbf{Fund Manager} 类别,可设面向合格投资者的 \textbf{QIF、Exempt Fund} 等(规则见 DFSA Rulebook)。\textbf{阿布扎比 ADGM、沙特 CMA} 等为独立框架。\textbf{非洲} 各国差异大(如南非 \textbf{FSCA} 体系),须国别附录,不可与欧盟或美国规则混用。 diff --git a/pe-zero-to-one/chapter/ch20.tex b/pe-zero-to-one/chapter/ch20.tex new file mode 100644 index 0000000..f72912e --- /dev/null +++ b/pe-zero-to-one/chapter/ch20.tex @@ -0,0 +1,47 @@ +\chapter{EMEA 深度:AIFMD 栈、英国路径与中东枢纽} + +\section{欧盟 AIFM 典型结构} + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[node distance=0.85cm] + \node[reg node=blue] (nca) {NCA\\成员国主管机关}; + \node[reg node=purple, below=of nca] (aifm) {AIFM\\另类投资管理人}; + \node[reg node=teal, below left=of aifm, xshift=-0.2cm] (aif) {AIF\\基金载体}; + \node[reg node=orange, below right=of aifm, xshift=0.2cm] (dep) {托管等\\(依规则)}; + \node[reg node=gray, below=2.1cm of aifm, minimum width=6.2cm] (inv) {合格/专业投资者(依基金类型与营销规则)}; + + \draw[compliance arrow] (nca) -- (aifm) node[midway, right, font=\scriptsize] {授权}; + \draw[compliance arrow] (aifm) -- (aif); + \draw[compliance arrow] (aifm) -- (dep); + \draw[compliance arrow] (aif) -- (inv); + \draw[compliance arrow] (dep) -- (inv); + + \begin{scope}[on background layer] + \node[fill=blue!3, rounded corners=16pt, inner sep=16pt, + fit=(nca)(aifm)(aif)(dep)(inv), draw=blue!25] {}; + \end{scope} +\end{tikzpicture} +\caption{欧盟语境下 AIFM--AIF--投资者关系(高度简化;不含 NPPR、护照等营销细节)} +\label{fig:aifmd-stack} +\end{figure} + +\section{AIFMD II 动向(摘要)} + +授权申请须提供更充分的人员、委托链、技术资源与尽调安排描述;部分规则对\textbf{流动性管理工具、杠杆披露、监管报告}等提出强化要求。实施日期以各成员国完成转置后的适用日为准。 + +\section{英国:注册与授权 AIFM} + +\textbf{Small registered UK AIFM} 适用于特定窄类情形(如部分封闭式投资信托、小型房地产 AIFM、社会企业/风险资本标签基金等),监管负担轻于 full-scope,但仍须遵守 AIFMD 第3条等核心义务(报告等)。具体资格见 FCA「Apply to be a registered / authorised AIFM」页面。 + +\section{瑞士、卢森堡、爱尔兰} + +瑞士 \textbf{CISA}、卢森堡/爱尔兰的 \textbf{AIF/UCITS} 载体常与欧盟营销路径(反向邀约、NPPR、护照)结合设计,须基金律师与税务顾问联合建模。 + +\section{中东:DIFC 与 DFSA} + +迪拜国际金融中心(DIFC)由 \textbf{DFSA} 监管。市场常见表述包括:面向合格投资者的 \textbf{Qualified Investor Fund (QIF)}、\textbf{Exempt Fund} 等类型,以及 \textbf{Category 3C Fund Manager} 等牌照维度;最低认购额、资本与快速通道审批等以 \textbf{DFSA Rulebook} 与当时政策为准。\textbf{ADGM(阿布扎比)}、\textbf{沙特 CMA} 等为平行但独立的监管环境。 + +\section{非洲} + +南非等国存在集合投资计划与金融服务提供商许可体系;其余国家规则分散。EMEA 报告中的「非洲」应做\textbf{国别表},不宜套用欧盟或英国条款。 diff --git a/pe-zero-to-one/chapter/ch21.tex b/pe-zero-to-one/chapter/ch21.tex new file mode 100644 index 0000000..5f9b064 --- /dev/null +++ b/pe-zero-to-one/chapter/ch21.tex @@ -0,0 +1,36 @@ +\chapter{AMER:美国 RIA、商品池与加拿大 IFM} + +\section{美国:投资顾问注册} + +\begin{figure}[htbp] +\centering +\begin{tikzpicture} + \node[compliance=teal, minimum width=4.2cm] (adv) {Form ADV\\IARD 电子申报}; + \node[compliance=blue, right=2.2cm of adv, minimum width=4.2cm] (sec) {SEC 或州监管\\视 AUM 与规则 203A-1}; + \path (adv) -- node[coordinate, midway] (midadvsec) {} (sec); + \node[compliance=green!50!black, below=1.5cm of midadvsec, minimum width=8cm] (pf) {私募基金管理人:Schedule A/B 等披露\\对冲基金顾问额外信息(历史规则演进,以现行表格为准)}; + + \draw[compliance arrow] (adv) -- (sec) node[midway, above, font=\scriptsize] {注册/审查}; + \draw[compliance arrow] (adv.south) -- ++(0,-0.35) -| (pf.north); + \draw[compliance arrow] (sec.south) -- ++(0,-0.35) -| (pf.north); + + \node[font=\scriptsize, text width=9cm, align=center, below=0.35cm of pf] + {持续义务:账簿记录、宣传材料、合规政策、年检与修正案等。}; +\end{tikzpicture} +\caption{美国投资顾问注册与私募披露关系(概念图)} +\label{fig:us-ria} +\end{figure} + +\textbf{要点:} 管理外部客户资产(含多数对冲基金架构)通常须注册为 \textbf{Investment Adviser};\textbf{仅管理自有资产}或符合 \textbf{Exempt Reporting Adviser} 等情形可能减轻部分披露,但不等于无监管。\textbf{CFTC/NFA:} 策略以期货、商品池为主时可能需另行注册。 + +官方入口示例:\url{https://www.sec.gov/divisions/investment/iaregulation/regia.htm};AUM 门槛与联邦/州切换见 \textbf{17 CFR §275.203A-1} 等(以现行有效文本为准)。 + +\section{加拿大:NI 31-103} + +\textbf{National Instrument 31-103} 协调各省证券监管,涵盖投资交易商、顾问、\textbf{Portfolio Manager}、\textbf{Investment Fund Manager} 等类别。新设基金管理人通常须在开展业务前完成相应注册或确认豁免适用。各省证监会网站提供非官方汇编与政策更新。 + +示例索引:\url{https://www.osc.ca/en/securities-law/instruments-rules-policies/3/31-103/unofficial-consolidation-national-instrument-31-103-registration-requirements-exemptions-and}。 + +\section{拉丁美洲(摘要)} + +\textbf{巴西 CVM:} 各类 \textbf{Fundo de Investimento} 须按类型注册并遵守治理与披露。\textbf{墨西哥} 等对基金与另类载体另有规定。\textbf{结论:} 拉美须\textbf{国别附录},不可与美国 RIA 路径混为一谈。 diff --git a/pe-zero-to-one/chapter/ch22.tex b/pe-zero-to-one/chapter/ch22.tex new file mode 100644 index 0000000..4ccd3ee --- /dev/null +++ b/pe-zero-to-one/chapter/ch22.tex @@ -0,0 +1,63 @@ +\chapter{亚太与印度细则、跨境三角与误区} + +\section{新加坡 MAS} + +\begin{itemize} + \item 从事 SFA 项下\textbf{基金管理}:申请 \textbf{LFMC},持有 \textbf{CMS} 牌照。 + \item 仅管理\textbf{风投基金}:可考虑 \textbf{VCFM} 简化路径。 + \item \textbf{豁免:} 如仅为关联公司或关联家族管理资产、仅为合格/机构投资者管理不动产或非资本市场产品池等(见 SFA 第99条及《证券期货(牌照与业务操守)规例》附表二第5段等)。 + \item 官方:\url{https://www.mas.gov.sg/regulation/capital-markets/apply-for-licensing-or-registration-of-capital-market-entities/fund-management-licensing} +\end{itemize} + +页面载明:完整且符合条件的申请审查约 \textbf{6个月};持牌基金管理公司年费 \textbf{S\$4{,}000} 起(另加代表费用规则);须\textbf{专用安全办公场所}。 + +\section{香港证监会} + +证券/期货组合资产管理通常需 \textbf{第9类(提供资产管理)}牌照;常见要求包括\textbf{两名负责人员(RO)}、香港公司或注册非香港公司、实体办公等。详见 \url{https://www.sfc.hk}。 + +\section{澳大利亚 ASIC} + +面向客户提供金融产品建议或发行管理投资计划权益,通常需 \textbf{AFSL} 相应授权。\textbf{批发}基金面向批发投资者时,披露义务与零售不同,但仍须结构合规(如 \textbf{Responsible Entity} 角色)。具体授权范围由律师与 ASIC 指南对齐。 + +\section{日本} + +\textbf{金融商品交易法}下第二类金融商品交易业登记等;公募投信、投资助言、私募领域线条各异,须日文合规资料与本地律师。 + +\section{印度 SEBI AIF(补充)} + +\textbf{Category I / II / III} 在杠杆、投资范围、披露上不同;2024 年前后市场关注:股权负担框架、关键投资团队\textbf{认证}过渡期等。申请费、表格与 First Schedule 要求以 SEBI 现行规则与 \textbf{SIPortal} 流程为准。 + +\section{跨境:三地司法辖区三角} + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[scale=1.02, every node/.style={transform shape}] + \coordinate (top) at (90:2.5); + \coordinate (lr) at (-30:2.5); + \coordinate (ll) at (210:2.5); + + \fill[teal!8] (top) -- (lr) -- (ll) -- cycle; + \draw[thick, teal!60!black] (top) -- (lr) -- (ll) -- cycle; + + \node[compliance=teal, minimum width=3.4cm] at (top) {管理人\\注册地法律}; + \node[compliance=blue, minimum width=3.4cm] at (lr) {基金载体\\注册地}; + \node[compliance=orange, minimum width=3.4cm] at (ll) {投资者\\国籍/所在地}; + + \node[font=\scriptsize, text width=7.8cm, align=center] at (0,-0.15) + {仅在一地拿牌 \textbf{不自动}覆盖向他国居民募资或远程下单;\\欧盟护照、NPPR、私募配售等均为\textbf{程序工具},非「全球免牌」。}; +\end{tikzpicture} +\caption{跨境资管常须分别评估的三类连接点} +\label{fig:cross-border-triangle} +\end{figure} + +\section{常见误区} + +\begin{enumerate} + \item \textbf{技术中立:} 代码与回测本身通常不单独触发牌照;一旦绑定\textbf{客户资金、下单权或基金份额募集},即进入各辖区证券/基金法。 + \item \textbf{合同规避:} 名为「借贷」「合作」「分成」但实质为面向不特定对象的保本或全权委托,仍可能被重新定性。 + \item \textbf{集团架构:} 母公司--子公司可服务治理与税务讨论,\textbf{不能替代}管理人资格与产品注册/备案。 +\end{enumerate} + +\section{维护与更新} + +规则持续变化(如 \textbf{AIFMD II}、\textbf{SEBI AIF} 年度通函、\textbf{SEC} 对顾问门槛的审议等)。本书内容反映整理时的公开材料;正式展业前须以\textbf{监管机构官网与律师备忘录}为准并标注检索日期。 diff --git a/pe-zero-to-one/chapter/ch23.tex b/pe-zero-to-one/chapter/ch23.tex new file mode 100644 index 0000000..fe4a817 --- /dev/null +++ b/pe-zero-to-one/chapter/ch23.tex @@ -0,0 +1,48 @@ +\chapter{Web3 技术纵深:账本、共识、智能合约与市场原语} + +\section{分布式账本与密码学基础} + +\textbf{分布式账本技术(DLT)}指多节点共同维护、通过密码学与协议规则达成一致的数据结构,不必依赖单一中心化记账方。\textbf{公链}(如比特币、以太坊及众多 Layer~1)向任意满足规则的参与者开放验证与交易广播;\textbf{联盟链/私有链}则限制节点集合,更贴近机构间清算与供应链场景。密码学工具包括:哈希链保证篡改可检测、非对称签名保证授权与不可否认、默克尔树支撑轻客户端验证、零知识证明(ZKP)在隐私与扩容方案中日益重要。理解这些构件有助于区分「真正链上结算」与仅借用区块链品牌营销的中心化数据库。 + +\section{共识、结算与最终性} + +\textbf{工作量证明(PoW)}通过算力竞争出块,能源与安全假设明确;\textbf{权益证明(PoS)}以质押与罚没(slashing)约束验证者行为,资本效率与委托结构不同。\textbf{最终性(finality)}指交易被撤销的概率足够低的时间点——不同链的确认数与重组风险不同,跨链与交易所入账规则必须与之对齐。\textbf{Layer~2(Rollup 等)}将执行从主链外移,通过欺诈证明或有效性证明(ZK-Rollup)向 L1 提交状态承诺,在吞吐与费用上折中,但引入排序器(sequencer)中心化与桥接风险等新攻击面。 + +\section{账户模型、钱包与托管} + +以太坊等采用\textbf{账户模型}(EOA 合约账户);比特币为\textbf{UTXO} 模型。钱包按密钥控制方式分为\textbf{自托管}(用户持有私钥或助记词)与\textbf{托管钱包}(交易所/银行代持)。机构场景下常见 \textbf{MPC}(多方计算)、\textbf{HSM} 与策略引擎组合,以满足职责分离与交易审批。链上地址不等于实名身份;合规上的「谁最终控制资产」须结合托管协议与链下 KYC 映射。 + +\section{智能合约与可组合性} + +\textbf{智能合约}是在链上虚拟机中执行的确定性程序;升级机制(代理合约、多签治理)与\textbf{权限角色}(owner、admin、pause)直接决定资产安全。以太坊生态的\textbf{可组合性}允许协议在无许可情况下相互调用,加速创新也放大\textbf{级联清算}与漏洞传染风险。常见攻击类型包括:重入、预言机操纵、闪电贷辅助套利、跨链桥逻辑错误、治理劫持等——技术尽调须阅读审计报告与链上权限而不仅看白皮书。 + +\section{Token 标准与资产表示} + +\textbf{同质化代币}(如 ERC-20)适合份额与积分式权利;\textbf{NFT}(如 ERC-721/1155)适合唯一凭证与 RWA(实物资产)映射中的编号权利。\textbf{包装资产}(如封装 BTC)依赖托管方与铸造/销毁规则,信用风险回到链下对手方。\textbf{治理代币}的经济与法律属性高度情境化:可能仅投票工具,也可能因募资方式被认定为证券(见下一章)。 + +\section{DeFi 核心原语(金融市场视角)} + +\textbf{自动做市商(AMM)}用曲线函数替代订单簿,流动性由 LP 提供,承担无常损失与智能合约风险。\textbf{超额抵押借贷}(如稳定币铸造、循环杠杆)依赖清算机器人与预言机价格;参数(LTV、清算罚金)决定系统性压力下的级联。\textbf{稳定币机制}包括法币储备型、加密抵押型、算法型(历史波动极大);各自脱锚与储备透明度是监管焦点。\textbf{预言机}将链外价格与事件喂入合约,是操纵与 MEV(最大可提取价值)争夺的关键环节——排序器、区块构建者与搜索者之间的利益结构,使「链上公平」成为工程与经济学交叉问题。 + +\section{跨链桥与互操作性} + +桥将资产或消息在链间转移,技术路径包括锁定-铸造、流动性网络、轻客户端验证等。\textbf{桥}历史上是高损事件集中区:合约漏洞、多签私钥泄露、经济攻击(虚假消息)均可导致巨额盗取。机构参与跨链头寸须单独进行风险限额与应急演练。 + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[font=\footnotesize, node distance=0.55cm] + \node[reg node=violet, minimum width=6.8cm] (app) {应用层:钱包、聚合器、RWA 门户、游戏}; + \node[reg node=blue, below=of app, minimum width=6.8cm] (defi) {DeFi:DEX、借贷、稳定币、收益聚合、衍生品协议}; + \node[reg node=teal, below=of defi, minimum width=6.8cm] (l2) {执行与互操作:L2 / Rollup、桥、预言机、MEV 基础设施}; + \node[reg node=orange, below=of l2, minimum width=6.8cm] (l1) {结算层:L1 共识与数据可用性}; + \draw[compliance arrow] (app) -- (defi); + \draw[compliance arrow] (defi) -- (l2); + \draw[compliance arrow] (l2) -- (l1); +\end{tikzpicture} +\caption{Web3 协议栈简化分层(示意;各项目实际架构可能跨层)} +\label{fig:web3-stack} +\end{figure} + +\section{与本书其他部分的衔接} + +技术理解是阅读监管与市场章节的前提:同一「代币」在不同层(支付工具、治理凭证、收益权、抵押品)上的功能组合,会改变法律定性。量化与系统化团队若参与链上策略,还需将\textbf{节点延迟、Gas、回滚、预言机刷新频率}纳入与传统资产不同的执行模型。 diff --git a/pe-zero-to-one/chapter/ch24.tex b/pe-zero-to-one/chapter/ch24.tex new file mode 100644 index 0000000..f7f2bb9 --- /dev/null +++ b/pe-zero-to-one/chapter/ch24.tex @@ -0,0 +1,54 @@ +\chapter{加密资产监管与政策:法域逻辑与执法难点} + +\textbf{本章不构成法律意见。}加密规则演进极快,正式展业须以各辖区\textbf{成文法、监管规则与律师意见}为准,并标注检索日期。 + +\section{欧盟 MiCA:统一框架与稳定币分层} + +欧盟《加密资产市场监管条例》(Markets in Crypto-Assets, \textbf{MiCA},条例编号如 2023/1114)将加密资产定义为可用分布式账本或类似技术以电子方式转移或存储的价值或权利的数字表示,并针对\textbf{其他金融服务立法未涵盖}的加密资产与服务建立统一规则。欧盟委员会概述与立法时间线见:\url{https://finance.ec.europa.eu/digital-finance/crypto-assets_en};全文见 EUR-Lex:\url{https://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX:32023R1114}。 + +监管逻辑上,MiCA 对\textbf{资产参考代币(ART)}与\textbf{电子货币代币(EMT)}类稳定币发行人设定更严格的授权、储备、赎回与治理义务;对\textbf{其他加密资产}的发行与营销设定信息披露与白皮书制度;对\textbf{加密资产服务提供商(CASP)}(交易、托管、撮合、顾问等)设定许可与运营要求,并由 ESMA 与各国主管机关协调监督。MiCA 与支付服务、反洗钱(AML)及\textbf{DORA}(数字运营韧性)等规则在机构层面交叉——持牌金融机构参与链上业务时,常需同时满足多条欧盟立法。 + +\section{美国:证券与商品的「双头监管」叙事} + +在美国,同一数字资产是否构成\textbf{证券}(归 SEC 管辖的投资合同分析,常引用 \textbf{Howey} 判例标准:金钱投资、共同事业、对他人努力的合理期待利润)与是否属于\textbf{商品}(CFTC 对特定虚拟货币的界定与衍生品监管)长期存在事实与法律争议。\textbf{现货}加密交易平台、经纪与托管是否需注册为经纪交易商、交易所或适用州级\textbf{货币传输(money transmission)}许可,取决于具体商业模式与资产分类。近年立法与执法动向频繁(包括稳定币专项立法讨论、ETF 批准条件、执法和解与规则提案),本书无法逐条固化;读者应订阅 SEC、CFTC、FinCEN、OCC、美联储与州监管机构更新,并由美国证券律师出具产品备忘录。 + +\section{稳定币与支付稳定币:政策焦点} + +稳定币连接\textbf{链上 DeFi}与\textbf{链下法币体系},政策关切集中在:储备资产质量与透明度、赎回压力下的流动性、发行人破产时持有人顺位、系统性重要性(多链与多应用共用同一稳定币)、以及 AML/制裁合规。欧盟 MiCA 对 ART/EMT 的强化规则即体现该思路。美国层面是否存在联邦统一框架及与州法的优先关系,以\textbf{当时已签署生效的联邦法与实施细则}为准——设计产品者须做「双轨」合规评估而非依赖单一博客解读。 + +\section{FATF 与「旅行规则」} + +金融行动特别工作组(FATF)对虚拟资产服务提供商(VASP)提出与银行类似的\textbf{AML/CFT} 期望,包括\textbf{旅行规则(Travel Rule)}:在转账超过阈值时交换并记录发起方与受益方信息。各国转化程度不同,但机构级托管、交易所与链上分析工具已广泛部署交易监控与地址标注。DeFi 无许可接口与自托管钱包使\textbf{合规边界}模糊,成为国际讨论中的难点。 + +\section{亚太摘录} + +\textbf{香港:}虚拟资产交易平台(VATP)等事项由证监会(SFC)等机关规管;规则与持牌名单以官网为准:\url{https://www.sfc.hk/en/Rules-and-standards/Virtual-assets/Virtual-asset-trading-platforms-operators}。实务上常同时涉及证券型代币与非证券型代币业务线条,申请与持续合规成本较高。 + +\textbf{新加坡:}支付型数字代币服务可能落入\textbf{PSA} 下牌照与豁免框架;证券型代币仍适用《证券期货法》。MAS 对零售加密营销与稳定币监管持续收紧,须查阅现行指南。 + +\textbf{中国大陆:}对虚拟货币交易炒作、代币发行融资等采取严格限制立场;境内机构与个人参与境外平台与代币发行仍可能涉及多重法律风险。本书读者若以人民币区为主要基地,须单独取得境内律师书面意见。 + +\section{DeFi、DAO 与「无许可」执法难题} + +协议可匿名部署,治理代币可全球分发,物理运营团队可分散司法辖区——监管机构可能选择\textbf{对可识别主体}(前端运营者、核心开发者、营销方、稳定币发行人、托管入口)执法,或通过\textbf{制裁与域名/基础设施封锁}施加压力。产品设计若假设「链上无监管」,常与\textbf{入口合规}(法币出入金、应用商店、API 供应商)冲突。 + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[font=\scriptsize] + \node[ellipse, draw=blue!70, fill=blue!5, minimum width=3.6cm, minimum height=2.2cm, align=center] (eu) {\textbf{欧盟}\\MiCA/CASP\\ART/EMT}; + \node[ellipse, draw=teal!70, fill=teal!5, minimum width=3.6cm, minimum height=2.2cm, align=center, right=1.8cm of eu] (us) {\textbf{美国}\\SEC/CFTC\\州法/FinCEN}; + \path (eu) -- node[coordinate, midway] (midewus) {} (us); + \node[ellipse, draw=orange!70, fill=orange!5, minimum width=3.6cm, minimum height=2.2cm, align=center, below=1.1cm of midewus] (ap) {\textbf{亚太}\\MAS/SFC 等\\VASP/PSA}; + \draw[compliance arrow, dashed] (eu) -- (us); + \draw[compliance arrow, dashed] (eu.south) -- (ap.north west); + \draw[compliance arrow, dashed] (us.south) -- (ap.north east); + \node[below=0.15cm of ap, text width=8.5cm, align=center, text=gray!55!black] + {跨境业务常触发\textbf{多法域并行适用};代币「标签」不改变经济实质认定。}; +\end{tikzpicture} +\caption{监管地理示意(高度简化;非穷举)} +\label{fig:reg-geo-web3} +\end{figure} + +\section{与私募、资管业务的接口} + +若基金或管理人计划:配置加密现货/衍生品、投资代币化基金份额、运行节点或质押策略、或向 LP 提供链上收益产品,须在 LPA 与侧信中披露\textbf{策略边界与风险},并完成本书合规篇所述\textbf{管理人资格与产品注册/备案}在加密场景下的增量论证。代币化证券若属于「证券」,通常须遵循传统证券发行与交易平台规则,而非仅依赖「链上自治」叙事。 diff --git a/pe-zero-to-one/chapter/ch25.tex b/pe-zero-to-one/chapter/ch25.tex new file mode 100644 index 0000000..70605f7 --- /dev/null +++ b/pe-zero-to-one/chapter/ch25.tex @@ -0,0 +1,58 @@ +\chapter{加密金融市场:价格形成、机构参与与 RWA} + +\section{现货、衍生品与价格发现} + +加密市场\textbf{7×24}交易,现货价格由中心化交易所(CEX)订单簿与链上 DEX 共同发现;二者常存在\textbf{基差}与延迟套利空间。\textbf{永续合约}通过资金费率(funding)平衡多空,使价格锚定指数;极端行情下可能出现插针、清算瀑布与交易所风控停机。\textbf{期权与结构化产品}在机构参与度上升后逐步深化,但流动性仍集中于少数标的。量化策略须将\textbf{提币限制、API 限速、合约乘数、标记价格与指数成分}纳入与传统市场不同的回测假设。 + +\section{ETF、托管与主经纪} + +部分司法辖区已批准与现货或期货挂钩的\textbf{上市基金产品},使传统经纪账户可获得敞口,但底层持有结构、申赎机制与税务处理与直接持币不同。\textbf{机构托管}分冷/温/热存储与保险安排;托管证明与链上储备证明(PoR)成为透明度竞争点。\textbf{主经纪/场外借贷}市场连接对冲基金与做市商,信用与抵押品估值(haircut)在波动期快速重定价——与 2008 年回购市场类似的\textbf{流动性螺旋}在加密周期中已多次出现。 + +\section{与宏观风险资产的相关性} + +比特币等曾被叙事为「宏观独立」;实证上在部分阶段与\textbf{纳斯达克、流动性预期、美元实际利率}呈现阶段性正相关,在危机时刻亦可能同步下跌。稳定币市值与链上活动可作为\textbf{风险偏好与杠杆载体}的代理变量之一,但因果解读需谨慎。资产配置模型若引入加密,应明确\textbf{再平衡频率、最大回撤约束与杠杆上限}。 + +\section{链上数据与科学} + +公开账本带来\textbf{链上分析}(地址聚类、交易所流入流出、矿工行为、质押队列、MEV 占比)新维度;与传统订单流结合可构建因子。挑战包括:地址标签噪声、混币与跨链剥离、以及重组与预言机异常。研究型团队常自建节点与延迟优化基础设施,成本与运维纳入管理费模型。 + +\section{稳定币在支付与链上金融中的角色} + +稳定币在跨境汇款、新兴市场美元化工具、以及 DeFi 抵押与交易对中占据核心位置;其\textbf{利率传导}与\textbf{链下货币市场}(美债、回购)通过储备资产相连。监管对储备与赎回的要求将改变发行方盈利模式与 DeFi 可组合性——策略团队须跟踪主要稳定币的\textbf{储备披露与黑名单冻结能力}(合规需求与去中心化叙事的张力)。 + +\section{代币化现实世界资产(RWA)} + +债券、货币基金、房地产与私人信贷等\textbf{上链}可缩短结算周期、扩大分销半径,但法律上须明确:代币持有人权利是\textbf{直接所有权}还是\textbf{信托/ SPV 份额},破产隔离如何实现,以及信息披露适用证券法抑或另类框架。机构试点常与\textbf{许可链 + 持牌托管 + 白名单投资者}组合,与公链无许可 DeFi 的融合度因法域而异。 + +\section{风险管理清单(机构视角)} + +\begin{itemize} + \item \textbf{对手方:}交易所、托管方、稳定币发行人、借贷对手、桥与预言机——集中度与信用限额。 + \item \textbf{操作:}私钥流程、链上多签、内部作恶、钓鱼与供应链攻击。 + \item \textbf{市场:}波动、流动性枯竭、负费率极端、稳定币脱锚。 + \item \textbf{合规:}制裁名单、旅行规则、税务申报、跨境营销限制。 + \item \textbf{模型:}回测过拟合、链上结构突变(协议升级、硬分叉、参数治理投票)。 +\end{itemize} + +\begin{figure}[htbp] +\centering +\begin{tikzpicture}[font=\footnotesize] + \node[reg node=blue] (spot) {现货 CEX/DEX}; + \node[reg node=teal, right=1.2cm of spot] (der) {衍生品\\永续/期权}; + \node[reg node=violet, right=1.2cm of der] (cust) {托管/ETF\\PoR/保险}; + \path (spot) -- node[coordinate, midway] (midspotder) {} (der); + \node[reg node=orange, below=1.1cm of midspotder] (defi) {链上 DeFi\\借贷/AMM}; + \node[reg node=purple, below=1.1cm of cust] (rwa) {RWA/代币化}; + \draw[compliance arrow] (spot) -- (der); + \draw[compliance arrow] (der) -- (cust); + \draw[compliance arrow] (spot.south) -- ++(0,-0.35) -| (defi.north); + \draw[compliance arrow] (cust.south) -- ++(0,-0.35) -| (rwa.north); + \draw[dashed, gray!50] (defi.east) -- (rwa.west); +\end{tikzpicture} +\caption{加密金融市场主要模块与资金流联系(示意)} +\label{fig:crypto-mkt-map} +\end{figure} + +\section{小结} + +Web3 同时是\textbf{技术运动、监管对象与资本市场板块}:技术层决定攻击面与可组合性,政策层决定准入与营销边界,市场层决定流动性与风险溢价。本书合规篇的传统私募规则在「代币化募资、链上管理账户、跨境稳定币」等场景下均需\textbf{增量分析};建议在基金 PPM 与 DDQ 中单独设置\textbf{数字资产附录},并在冷启动触达材料中避免与技术白皮书相矛盾的收益承诺。 diff --git a/pe-zero-to-one/macros/tikz-compliance.tex b/pe-zero-to-one/macros/tikz-compliance.tex new file mode 100644 index 0000000..1286ac0 --- /dev/null +++ b/pe-zero-to-one/macros/tikz-compliance.tex @@ -0,0 +1,41 @@ +% TikZ 样式与颜色 — 合规章节共用 +\tikzset{ + compliance/.style args={#1}{ + rounded corners=10pt, + draw=#1!70!black, + thick, + fill=#1!12, + align=center, + inner sep=10pt, + font=\small, + drop shadow={shadow xshift=1.2pt, shadow yshift=-1.2pt, fill=black!20}, + }, + compliance arrow/.style={ + -{Stealth[length=3mm]}, + thick, + draw=gray!70, + }, + reg node/.style args={#1}{ + rectangle, + rounded corners=6pt, + minimum width=2.8cm, + minimum height=1cm, + align=center, + draw=#1!65!black, + fill=#1!8, + font=\footnotesize, + }, + fancy ring/.style args={#1}{ + circle, + draw=#1, + line width=1.6pt, + inner sep=6pt, + align=center, + font=\scriptsize\bfseries, + }, +} + +\newcommand{\ComplianceColorCHN}{red} +\newcommand{\ComplianceColorIND}{orange} +\newcommand{\ComplianceColorEMEA}{blue} +\newcommand{\ComplianceColorAMER}{teal} diff --git a/pe-zero-to-one/main.tex b/pe-zero-to-one/main.tex new file mode 100644 index 0000000..b51614d --- /dev/null +++ b/pe-zero-to-one/main.tex @@ -0,0 +1,80 @@ +% 私募:从零到一 — 主文件(分章见 chapter/) +% 编译:XeLaTeX 或 LuaLaTeX(需 ctex、tikz、hyperref) +\documentclass[UTF8,openany]{ctexbook} + +\usepackage{geometry} +\geometry{a4paper, margin=2.4cm} + +\usepackage{xcolor} +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + linkcolor=teal!60!black, + urlcolor=blue!60!black, + citecolor=gray!60!black, +} + +\usepackage{tikz} +\usetikzlibrary{ + arrows.meta, + positioning, + shapes.geometric, + calc, + backgrounds, + fit, + shadows, + decorations.pathmorphing, +} + +\input{macros/tikz-compliance} + +\title{私募:从零到一} +\author{} +\date{\today} + +\begin{document} + +\frontmatter +\maketitle +\tableofcontents + +\mainmatter + +\include{chapter/ch01} +\include{chapter/ch02} +\include{chapter/ch03} +\include{chapter/ch04} +\include{chapter/ch05} +\include{chapter/ch06} +\include{chapter/ch07} +\include{chapter/ch08} +\include{chapter/ch09} +\include{chapter/ch10} +\include{chapter/ch11} +\include{chapter/ch12} +\include{chapter/ch13} +\include{chapter/ch14} +\include{chapter/ch15} + +\part{冷启动、团队与触达} + +\include{chapter/ch16} + +\part{合规与全球展业} + +\include{chapter/ch17} +\include{chapter/ch18} +\include{chapter/ch19} +\include{chapter/ch20} +\include{chapter/ch21} +\include{chapter/ch22} + +\part{Web3 与加密金融市场} + +\include{chapter/ch23} +\include{chapter/ch24} +\include{chapter/ch25} + +\backmatter + +\end{document}