//+------------------------------------------------------------------+ //| CustomEnums.mqh | //| AnimateDread | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "AnimateDread" #property link "https://www.mql5.com" //--- custom enumerations for certain settings, minimizes overfitting enum IND_PERIODS_PRESETS { PERIOD_5 = 5, // 5 Periods PERIOD_10 = 10, // 10 Periods PERIOD_14 = 14, // 14 Periods PERIOD_20 = 20, // 20 Periods PERIOD_30 = 30, // 30 Periods PERIOD_50 = 50, // 50 Periods PERIOD_100 = 100, // 100 Periods PERIOD_200 = 200, // 200 Periods }; enum TRAINING_YEARS_PRESET { y1 = 1, // 1 year y2 = 2, // 2 years y5 = 5, // 5 years y10 = 10, // 10 years y20 = 20, // 20 years }; enum ATR_MULTIPLIER { DISABLED = 0, // Disabled ATR_x1 = 1, // ATR * 1 ATR_x2 = 2, // ATR * 2 ATR_x3 = 3, // ATR * 3 }; enum THRESHOLDS_PRESET { //T5 = 5, T10 = 10, // 10 //T15 = 15, T20 = 20, // 20 //T25 = 25, T30 = 30, // 30 //T35 = 35, T40 = 40, // 40 //T45 = 45, T50 = 50, // 50 //T55 = 55, T60 = 60, // 60 //T65 = 65, T70 = 70, // 70 //T75 = 75, T80 = 80, // 80 //T85 = 85, T90 = 90, // 90 //T95 = 95, T100 = 100 // 100 }; enum RISK_REWARD_RATIO { RR_1x2 = 2, // 1:2 RR RR_1x3 = 3, // 1:3 RR RR_1x4 = 4, // 1:4 RR RR_1x6 = 6,// 1:6 RR RR_1x8 = 8, // 1:8 RR RR_1x10 = 10, // 1:10 RR }; enum SIMPLE_NUMBERS { x1 = 1, // 1 x2 = 2, // 2 x3 = 3, // 3 x4 = 4, // 4 x5 = 5, // 5 }; enum BARS_EXPIRATION { BARS_X1 = 1, // 1 Candle BARS_X2 = 2, // 2 Candles BARS_X3 = 3, // 3 Candles BARS_X5 = 5, // 5 Candles BARS_X10 = 10, // 10 Candles BARS_X20 = 20, // 20 Candles }; enum ENTRY_MULTIPLIER { MARKET = 0, // Market order LIMIT_1xATR = -1, // Limit order with 1x ATR LIMIT_2xATR = -2, // Limit order with 2x ATR LIMIT_3xATR = -3, // Limit order with 3x ATR STOP_1xATR = 1, // Stop order with 1x ATR STOP_2xATR = 2, // Stop order with 2x ATR STOP_3xATR = 3, // Stop order with 3x ATR }; enum TRAILING_STRATEGY { TRAILING_STRATEGY_NONE, // No Trailing Stop Strategy TRAILING_STRATEGY_ATR_x1, // ATR * 1 Trailing Strategy TRAILING_STRATEGY_ATR_x2, // ATR * 2 Trailing Strategy TRAILING_STRATEGY_ATR_x3, // ATR * 3 Trailing Strategy TRAILING_STRATEGY_SAR, // SAR Trailing Strategy TRAILING_STRATEGY_MA_10, // MA 10 Trailing Strategy TRAILING_STRATEGY_MA_20, // MA 20 Trailing Strategy TRAILING_STRATEGY_MA_50, // MA 50 Trailing Strategy TRAILING_STRATEGY_MA_100, // MA 100 Trailing Strategy TRAILING_STRATEGY_MA_200, // MA 200 Trailing Strategy }; enum MONEY_MANAGEMENT_STRATEGY { FIXED_RISK, // Fixed risk Percent of Account INTELLIGENT, // Intelligent lot size FIXED_LOT, // Fixed lot size }; enum ITF_DOW { DOW_DISABLED = -1,// Disabled _SUNDAY = 0, // Sunday _MONDAY = 1, // Monday _TUESDAY = 2, // Tuesday _WEDNESDAY = 3, // Wednesday _THURSDAY = 4, // Thursday _FRIDAY = 5, // Friday _SATURDAY = 6, // Saturday }; enum ITF_TOD { TOD_DISABLED = -1, // Disabled H0 = 0, // 00Hxx H1 = 1, // 1Hxx H2 = 2, // 2Hxx H3 = 3, // 3Hxx H4 = 4, // 4Hxx H5 = 5, // 5Hxx H6 = 6, // 6Hxx H7 = 7, // 7Hxx H8 = 8, // 8Hxx H9 = 9, // 9Hxx H10 = 10, // 10Hxx H11 = 11, // 11Hxx H12 = 12, // 12Hxx H13 = 13, // 13Hxx H14 = 14, // 14Hxx H15 = 15, // 15Hxx H16 = 16, // 16Hxx H17 = 17, // 17Hxx H18 = 18, // 18Hxx H19 = 19, // 19Hxx H20 = 20, // 20Hxx H21 = 21, // 21Hxx H22 = 22, // 22Hxx H23 = 23, // 23Hxx }; enum CLOSE_HOURS_PRESETS { CLOSE_HOURS_DISABLED = -1, // Disabled H_0 = 0, // 00Hxx H_1 = 1, // 1Hxx H_2 = 2, // 2Hxx H_3 = 3, // 3Hxx H_4 = 4, // 4Hxx H_5 = 5, // 5Hxx H_6 = 6, // 6Hxx H_7 = 7, // 7Hxx H_8 = 8, // 8Hxx H_9 = 9, // 9Hxx H_10 = 10, // 10Hxx H_11 = 11, // 11Hxx H_12 = 12, // 12Hxx H_13 = 13, // 13Hxx H_14 = 14, // 14Hxx H_15 = 15, // 15Hxx H_16 = 16, // 16Hxx H_17 = 17, // 17Hxx H_18 = 18, // 18Hxx H_19 = 19, // 19Hxx H_20 = 20, // 20Hxx H_21 = 21, // 21Hxx H_22 = 22, // 22Hxx H_23 = 23, // 23Hxx }; enum CLOSE_MINS_PRESETS { CLOSE_MINS_DISABLED = -1,// Disabled M_0 = 0, // xxH00 M_5 = 5, // xxH05 M_10 = 10, // xxH10 M_15 = 15, // xxH15 M_20 = 20, // xxH20 M_25 = 25, // xxH25 M_30 = 30, // xxH30 M_35 = 35, // xxH35 M_40 = 40, // xxH40 M_45 = 45, // xxH45 M_50 = 50, // xxH50 M_55 = 55, // xxH55 M_60 = 60, // xxH60 }; enum CLOSE_DAYS_PRESETS { CLOSE_DAYS_DISABLED = -1, // Disabled CLOSE_MONDAY = 1, // Monday CLOSE_TUESDAY = 2, // Tuesday CLOSE_WEDNESDAY = 3, // Wednesday CLOSE_THURSDAY = 4, // Thursday CLOSE_FRIDAY = 5, // Friday CLOSE_EVERYDAY, // Every Day }; enum NF_LOOKBACK_PRESETS { NF_DISABLED = -1, // Disabled M5 = 5, // 5 Minutes M15 = 15, // 15 Minutes M30 = 30, // 30 Minutes M45 = 45, // 45 Minutes M60 = 60, // 1 Hour M120 = 120, // 2 Hours M240 = 240, // 4 Hours }; enum NF_IMPACT_PRESETS { HOLIDAYS = 0, //Holidays LOW = 1, // Low Impact News MEDIUM = 2, // Medium Impact News HIGH = 3, // High Impact News }; enum TradingDirection { BOTH, // Allow both long and short trades LONG_ONLY, // Allow only long (buy) trades SHORT_ONLY // Allow only short (sell) trades }; enum PERCENTAGE_PRESETS { x10 = 10, // 10% x20 = 20, // 20% x30 = 30, // 30% x40 = 40, // 40% x50 = 50, // 50% x60 = 60, // 60% x70 = 70, // 70% x80 = 80, // 80% x90 = 90, // 90% x100 = 100, // 100% }; enum FIRST_LAYER_NEURONS { n500 = 500, // 500 Neurons n1000 = 1000, // 1000 Neurons n2000 = 2000, // 2000 Neurons n3000 = 3000, // 3000 Neurons n5000 = 5000, // 5000 Neurons }; enum HIDDEN_LAYERS_COUNT { L0 = 0, // No Hidden Layers L1 = 1, // 1 Hidden Layer L2 = 2, // 2 Hidden Layers L3 = 3, // 3 Hidden Layers L4 = 4, // 4 Hidden Layers L5 = 5, // 5 Hidden Layers L6 = 6, // 6 Hidden Layers L7 = 7, // 7 Hidden Layers L8 = 8, // 8 Hidden Layers L10 = 10, // 10 Hidden Layers }; enum MIN_NEURONS_COUNT { n10 = 10, // Min. 10 Neurons per layer n20 = 20, // Min. 20 Neurons per layer n30 = 30, // Min. 30 Neurons per layer n40 = 40, // Min. 40 Neurons per layer n50 = 50, // Min. 50 Neurons per layer }; enum NEURONS_REDUCTION_FACTOR { p10 = 10, // 90 % Neurons Reduction Per Layer p20 = 20, // 80 % Neurons Reduction Per Layer p30 = 30, // 70 % Neurons Reduction Per Layer p40 = 40, // 60 % Neurons Reduction Per Layer p50 = 50, // 50 % Neurons Reduction Per Layer p60 = 60, // 40 % Neurons Reduction Per Layer p70 = 70, // 30 % Neurons Reduction Per Layer p80 = 80, // 20 % Neurons Reduction Per Layer p90 = 90, // 10 % Neurons Reduction Per Layer }; enum OUTPUT_NEURONS_COUNT { n1 = 1, // Regression Algorithm n3 = 3, // Classification Algorithm }; enum AI_CHOICE { MLP = 0, // Perceptron Neural Network CONV = 1, // Convolutional Neural Network LSTM = 2, // Recurrent Neural Network HYBRID = 3, // Hybrid Neural Network }; enum AI_OPTIMIZATION_ALGO { sgd = 0, // Stochastic Gradient Descent Optimization adam = 1, // Adam Optimization }; //+------------------------------------------------------------------+