mirror of
https://github.com/alexcercos/AlgoMasterNNFX-V1.git
synced 2025-07-30 07:27:50 +00:00
267 lines
No EOL
12 KiB
MQL5
267 lines
No EOL
12 KiB
MQL5
|
|
#include "../Symbols/EnumPresets.mqh"
|
|
|
|
#ifdef __MQL5__
|
|
input group "Pairs to Backtest"
|
|
#else
|
|
input string Pairs_to_Backtest = "==============="; //Pairs to Backtest
|
|
#endif
|
|
sinput EPairPresets pairsPreset = PP_ALL_SYMBOLS; //Pairs Preset
|
|
input string symbolString = "AUDNZD,EURUSD,GBPJPY"; //Custom Symbols (separate by ",")
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Main Confirmation (C1) Settings"
|
|
#else
|
|
input string Main_Confirmation_Settings = "==============="; //Main Confirmation (C1) Settings
|
|
#endif
|
|
input string indicatorName = "Folder\\Name"; //C1 Indicator NAME
|
|
input string indicatorParams = ""; //C1 Ind. PARAMETERS (60 MAX ; empty = Default)
|
|
input IndicatorRead indicatorMode = ZERO_LINE_CROSS; //C1 Indicator Read Mode
|
|
input bool useMainForExit = true; //Use C1 for Exits
|
|
input int mainBuffer = 0; //C1 Main Buffer (lead)
|
|
input int signalBuffer = 1; //C1 Second Buffer (signal, if used)
|
|
input double crossLevel = 0.0; //C1 Cross Level
|
|
input double widthFilter = 0.0; //C1 Half Filter
|
|
#ifdef __MQL5__
|
|
input int colorBuy = 0; //C1 Buy Color Index
|
|
input int colorSell = 1; //C1 Sell Color Index
|
|
#else
|
|
input int colorSell = 1; // C1 Extra Main-Sell Buffer (for color modes)
|
|
#endif
|
|
input bool invertOperative = false; //C1 Invert Operative (Flip Buy-Sell)
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Second Confirmation (C2) Settings"
|
|
#else
|
|
input string Second_Confirmation_Settings = "==============="; //Second Confirmation (C2) Settings
|
|
#endif
|
|
input bool use2Confirm = false; //USE C2 INDICATOR
|
|
input string indicatorName2nd = "Folder\\Name"; //C2 Indicator NAME
|
|
input string indicatorParams2nd = ""; //C2 Ind. PARAMETERS (60 MAX ; empty = Default)
|
|
input IndicatorRead indicatorMode2nd = ZERO_LINE_CROSS; //C2 Indicator Read Mode
|
|
input int mainBuffer2nd = 0; //C2 Main Buffer (lead)
|
|
input int signalBuffer2nd = 1; //C2 Second Buffer (signal, if used)
|
|
input double crossLevel2nd = 0.0; //C2 Cross Level
|
|
input double widthFilter2nd = 0.0; //C2 Half Filter
|
|
#ifdef __MQL5__
|
|
input int colorBuy2nd = 0; //C2 Buy Color Index
|
|
input int colorSell2nd = 1; //C2 Sell Color Index
|
|
#else
|
|
input int colorSell2nd = 1; // C2 Extra Main-Sell Buffer (for color modes)
|
|
#endif
|
|
input bool invertOperative2nd = false; //C2 Invert Operative (Flip Buy-Sell)
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Exit Indicator Settings"
|
|
#else
|
|
input string Exit_Indicator_Settings = "==============="; //Exit Indicator Settings
|
|
#endif
|
|
input bool useExitIndicator = false; //USE EXIT INDICATOR
|
|
input string indicatorNameExit = "Folder\\Name"; //EXIT Indicator NAME
|
|
input string indicatorParamsExit = ""; //EXIT Ind. PARAMETERS (60 MAX ; empty = Default)
|
|
input IndicatorRead indicatorModeExit = ZERO_LINE_CROSS; //EXIT Indicator Read Mode
|
|
input bool useExitAtSignal = false; //EXIT Check Only Signals (not current state)
|
|
input int mainBufferExit = 0; //EXIT Main Buffer (lead)
|
|
input int signalBufferExit = 1; //EXIT Second Buffer (signal, if used)
|
|
input double crossLevelExit = 0.0; //EXIT Cross Level
|
|
input double widthFilterExit = 0.0; //EXIT Half Filter
|
|
#ifdef __MQL5__
|
|
input int colorBuyExit = 0; //EXIT Buy Color Index
|
|
input int colorSellExit = 1; //EXIT Sell Color Index
|
|
#else
|
|
input int colorSellExit = 1; // EXIT Extra Main-Sell Buffer (for color modes)
|
|
#endif
|
|
input bool invertOperativeExit = false; //EXIT Invert Operative (Flip Buy-Sell)
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Volume Indicator Settings"
|
|
#else
|
|
input string Volume_Indicator_Settings = "==============="; //Volume Indicator Settings
|
|
#endif
|
|
input bool useVolumeIndicator = false; //USE VOLUME INDICATOR
|
|
input string indicatorNameVolume = "Folder\\Name"; //VOLUME Indicator NAME
|
|
input string indicatorParamsVolume = ""; //VOLUME Ind. PARAMETERS (60 MAX ; empty = Default)
|
|
input VolumeRead indicatorModeVolume = OVER_LEVEL; //VOLUME Indicator Read Mode
|
|
input int mainBufferVolume = 0; //VOLUME Main Buffer
|
|
input int signalBufferVolume = 1; //VOLUME Signal Buffer
|
|
input double minimumLevelVolume = 1.0; //VOLUME Volume Level
|
|
input double widthLevelVolume = 0.5; //VOLUME Width (for bidirecional volume: L+W, L-W)
|
|
//input int colorBufferVolume = 0; // VOLUME Color Index Buffer
|
|
input int volColorBuy = 0; //VOLUME Buy Color Index
|
|
input int volColorSell = 1; //VOLUME Sell Color Index
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Baseline Settings"
|
|
#else
|
|
input string Baseline_Settings = "==============="; //Baseline Settings
|
|
#endif
|
|
input bool useBaseline = false; //USE BASELINE
|
|
input string indicatorNameBaseline = "Folder\\Name"; //BASELINE NAME
|
|
input string indicatorParamsBaseline = ""; //BASELINE PARAMETERS (60 MAX ; empty = Default)
|
|
input int baselineBuffer = 0; //BASELINE Buffer
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Continuation Indicator Settings"
|
|
#else
|
|
input string Continuation_Indicator_Settings = "==============="; //Continuation Indicator Settings
|
|
#endif
|
|
input ContinuationIndicatorMode useContIndicator = CONT_DONT_USE; //USE CONTINUATION INDICATOR
|
|
input string indicatorNameCont = "Folder\\Name"; //CONTINUATION Indicator NAME
|
|
input string indicatorParamsCont = ""; //CONTINUATION Ind. PARAMETERS (60 MAX ; empty = Default)
|
|
input IndicatorRead indicatorModeCont = ZERO_LINE_CROSS; //CONTINUATION Indicator Read Mode
|
|
input int mainBufferCont = 0; //CONTINUATION Main Buffer (lead)
|
|
input int signalBufferCont = 1; //CONTINUATION Second Buffer (signal, if used)
|
|
input double crossLevelCont = 0.0; //CONTINUATION Cross Level
|
|
input double widthFilterCont = 0.0; //CONTINUATION Half Filter
|
|
#ifdef __MQL5__
|
|
input int colorBuyCont = 0; //CONTINUATION Buy Color Index
|
|
input int colorSellCont = 1; //CONTINUATION Sell Color Index
|
|
#else
|
|
input int colorSellCont = 1; // CONTINUATION Extra Main-Sell Buffer (for color modes)
|
|
#endif
|
|
input bool invertOperativeCont = false; //CONTINUATION Invert Operative (Flip Buy-Sell)
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Extra Settings"
|
|
#else
|
|
input string Extra_Settings = "==============="; //Extra Settings
|
|
#endif
|
|
input bool scaleOut = true; //Scale Out (Half with Trailing Stop)
|
|
input bool applyCatchUp = true; //Wait to Catch Up (C2 and Volume after Baseline Cross)
|
|
input bool applyPullbackRule = true; //Apply Pullbacks
|
|
input bool applyOneCandleRule = true; //Apply One-Candle Rule
|
|
input bool applyBridgeTooFar = false; //Apply Bridge Too Far
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "EVZ Settings"
|
|
#else
|
|
input string EVZ_Settings = "==============="; //EVZ Settings
|
|
#endif
|
|
input bool useEvz = false; //Use EVZ (Euro FX Vix)
|
|
input bool scaleOutHalfRisk = false; //Scale Out When EVZ < Half Risk
|
|
input double halfRiskEvz = 7.0; //EVZ Limit (Half Risk)
|
|
input double minimumEvz = 5.0; //Minimum EVZ (No trade)
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Other Filtering Settings"
|
|
#else
|
|
input string Other_Filtering_Settings = "==============="; //Other Filtering Settings
|
|
#endif
|
|
input bool useExposure = false; //Use Exposure
|
|
input bool useNews = false; //Use News
|
|
#ifdef __MQL5__
|
|
input bool showNewsIndicator = false; //Show News Indicator (on active pair only)
|
|
#endif
|
|
input string newsEUR = "Monetary Policy Statement, Lagarde, Draghi"; // EUR News
|
|
input string newsGBP = "MPC Official Bank Rate Votes, GDP"; // GBP News
|
|
input string newsAUD = "RBA Rate Statement, Unemployment Rate"; // AUD News
|
|
input string newsNZD = "Unemployment Rate, GDP, GDT, RBNZ Rate Statement"; // NZD News
|
|
input string newsUSD = "\"Non-Farm Employment Change\", FOMC Statement, Fed Chair Powell, CPI"; // USD News
|
|
input string newsCAD = "BOC Rate Statement, Unemployment Rate, Retail Sales, \"CPI m/m\""; // CAD News
|
|
input string newsCHF = "SNB Monetary Policy Assessment"; // CHF News
|
|
input string newsJPY = "Monetary Policy Statement"; // JPY News
|
|
sinput int newsIconDistance = 4000; //News Indicator: Icon Distance
|
|
sinput int newsIconBetween = 3000; //News Indicator: Distance Between Icons
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Summary Settings"
|
|
#else
|
|
input string Summary_Settings = "==============="; //Summary Settings
|
|
#endif
|
|
sinput bool writeToFile = true; //Create Summary / Optimization files
|
|
sinput OptimizationNNFXAlgo optimizationMode = N_TOTAL_PROFIT; //-----Optimization Mode-----
|
|
input string customOptimizationFormula = "#PF^2 * ( #GW/max(#NW,1) + #GL/max(#NL,1) )"; // Custom Optimization Formula
|
|
sinput bool writeTradeJournal = false; //Write Trade Journal
|
|
sinput bool showExtendedSummary = false; //Show Extended Summary
|
|
sinput bool displayIcons = true; //Display Event Icons
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Advanced Settings"
|
|
#else
|
|
input string Advanced_Settings = "==============="; //Advanced Settings
|
|
#endif
|
|
input double stopLossAtr = 1.5; //Stop Loss ATR
|
|
input double takeProfitAtr = 1.0; //Take Profit ATR
|
|
input double startMoveAtr = 2.0; //ATR to start moving Trailing Stop
|
|
input double baselineAtr = 1.0; //Distance to Baseline ATR (0=Ignore Distance to Baseline)
|
|
input int bridgeTooFarCount = 7; //Bridge Too Far Max Candles
|
|
input int atrPeriod = 14; //ATR Period
|
|
sinput int minimalPercent = 0; //Minimal % to Count Win/Loss
|
|
sinput double riskPercent = 2.0; //Risk (% of balance at risk in each trade)
|
|
sinput bool use_advanced_TS = false; //Use Advanced Trailing Stop (indicator)
|
|
input string indicatorNameTrailing = "Folder\\Name"; //Trailing Stop Indicator NAME
|
|
input string indicatorParamsTrailing = ""; // Trailing Stop Ind. PARAMETERS (60 MAX ; empty = Default)
|
|
sinput int TS_buy_buffer = 0; // Trailing Stop Buffer for BUY orders
|
|
sinput int TS_sell_buffer = 0; // Trailing Stop Buffer for SELL orders
|
|
|
|
|
|
#ifdef __MQL5__
|
|
input group "Optimization Parameters"
|
|
#else
|
|
input string Optimization_Parameters = "==============="; //Optimization Parameters
|
|
#endif
|
|
input double opt_param_1 = 0.0; // Optimization Parameter 1
|
|
input double opt_param_2 = 0.0; // Optimization Parameter 2
|
|
input double opt_param_3 = 0.0; // Optimization Parameter 3
|
|
input double opt_param_4 = 0.0; // Optimization Parameter 4
|
|
input double opt_param_5 = 0.0; // Optimization Parameter 5
|
|
input double opt_param_6 = 0.0; // Optimization Parameter 6
|
|
input double opt_param_7 = 0.0; // Optimization Parameter 7
|
|
input double opt_param_8 = 0.0; // Optimization Parameter 8
|
|
input double opt_param_9 = 0.0; // Optimization Parameter 9
|
|
input double opt_param_10 = 0.0; // Optimization Parameter 10
|
|
|
|
input double opt_param_11 = 0.0; // Optimization Parameter 11
|
|
input double opt_param_12 = 0.0; // Optimization Parameter 12
|
|
input double opt_param_13 = 0.0; // Optimization Parameter 13
|
|
input double opt_param_14 = 0.0; // Optimization Parameter 14
|
|
input double opt_param_15 = 0.0; // Optimization Parameter 15
|
|
input double opt_param_16 = 0.0; // Optimization Parameter 16
|
|
input double opt_param_17 = 0.0; // Optimization Parameter 17
|
|
input double opt_param_18 = 0.0; // Optimization Parameter 18
|
|
input double opt_param_19 = 0.0; // Optimization Parameter 19
|
|
input double opt_param_20 = 0.0; // Optimization Parameter 20
|
|
|
|
input double opt_param_21 = 0.0; // Optimization Parameter 21
|
|
input double opt_param_22 = 0.0; // Optimization Parameter 22
|
|
input double opt_param_23 = 0.0; // Optimization Parameter 23
|
|
input double opt_param_24 = 0.0; // Optimization Parameter 24
|
|
input double opt_param_25 = 0.0; // Optimization Parameter 25
|
|
input double opt_param_26 = 0.0; // Optimization Parameter 26
|
|
input double opt_param_27 = 0.0; // Optimization Parameter 27
|
|
input double opt_param_28 = 0.0; // Optimization Parameter 28
|
|
input double opt_param_29 = 0.0; // Optimization Parameter 29
|
|
input double opt_param_30 = 0.0; // Optimization Parameter 30
|
|
|
|
input double opt_param_31 = 0.0; // Optimization Parameter 31
|
|
input double opt_param_32 = 0.0; // Optimization Parameter 32
|
|
input double opt_param_33 = 0.0; // Optimization Parameter 33
|
|
input double opt_param_34 = 0.0; // Optimization Parameter 34
|
|
input double opt_param_35 = 0.0; // Optimization Parameter 35
|
|
input double opt_param_36 = 0.0; // Optimization Parameter 36
|
|
input double opt_param_37 = 0.0; // Optimization Parameter 37
|
|
input double opt_param_38 = 0.0; // Optimization Parameter 38
|
|
input double opt_param_39 = 0.0; // Optimization Parameter 39
|
|
input double opt_param_40 = 0.0; // Optimization Parameter 40
|
|
|
|
input double opt_param_41 = 0.0; // Optimization Parameter 41
|
|
input double opt_param_42 = 0.0; // Optimization Parameter 42
|
|
input double opt_param_43 = 0.0; // Optimization Parameter 43
|
|
input double opt_param_44 = 0.0; // Optimization Parameter 44
|
|
input double opt_param_45 = 0.0; // Optimization Parameter 45
|
|
input double opt_param_46 = 0.0; // Optimization Parameter 46
|
|
input double opt_param_47 = 0.0; // Optimization Parameter 47
|
|
input double opt_param_48 = 0.0; // Optimization Parameter 48
|
|
input double opt_param_49 = 0.0; // Optimization Parameter 49
|
|
input double opt_param_50 = 0.0; // Optimization Parameter 50 |