305 lines
16 KiB
MQL5
305 lines
16 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| 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
|
|
};
|
|
//+------------------------------------------------------------------+
|