AlgoMasterNNFX-V1/Program/Parameters.mqh
alexcercos f4618aba1a Refactor symbol processing
Only working in MT5, need to make changes to work in MT4 (remove namespaces, etc)
2023-05-23 18:21:42 +02:00

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