Warrior_EA/Enumerations/GlobalEnums.mqh

66 lines
2.6 KiB
MQL5
Raw Permalink Normal View History

#ifndef WARRIOR_GLOBAL_ENUMS_MQH
#define WARRIOR_GLOBAL_ENUMS_MQH
enum ENUM_SIGNAL
{
Buy,
Sell,
Neutral,
Undefine
};
//+------------------------------------------------------------------+
//| CONTROL-PANEL VOCABULARY. |
//| |
//| Lives here rather than in Panel\ControlPanel.mqh because the |
//| Expert base classes have to name these types, and the panel is |
//| included long after them in Warrior_EA.mq5's include order. |
//+------------------------------------------------------------------+
//--- The BUTTONS. One action per click; the EA consumes it right after ExtPanel.ChartEvent().
enum ENUM_CP_ACTION
{
CP_ACTION_NONE,
CP_ACTION_TOGGLE_SIGNALS,
CP_ACTION_TOGGLE_PAUSE,
CP_ACTION_TOGGLE_STOP,
//--- one button, both directions: deploy the trained model as final, or put an already-deployed
//--- model back into training (the EA decides which from the signals' own state - see
//--- HandleControlPanelAction/RefreshControlPanelLabels in Warrior_EA.mq5)
CP_ACTION_TOGGLE_DEPLOY,
CP_ACTION_SAVE,
CP_ACTION_LOAD,
CP_ACTION_RESET,
CP_ACTION_REPORT,
CP_ACTION_RESET_DB
};
//--- What a SIGNAL is told to do, which is deliberately not the same list as the buttons above. Three
//--- of those buttons are TOGGLES whose direction depends on the current aggregate state; resolving
//--- that once in the EA and then telling every signal plainly what to do is what stops each signal
//--- re-deriving the direction from its own local state and reaching a different answer.
enum ENUM_SIGNAL_COMMAND
{
SIGCMD_PAUSE_TRAINING,
SIGCMD_RESUME_TRAINING,
SIGCMD_STOP_TRAINING,
SIGCMD_START_TRAINING,
SIGCMD_DEPLOY,
SIGCMD_RETRAIN_DEPLOYED,
SIGCMD_SAVE_WEIGHTS,
SIGCMD_LOAD_WEIGHTS,
SIGCMD_RESET_WEIGHTS,
SIGCMD_RESCAN_SIGNALS,
//--- Diagnostic: print one identity line each. The census before a destructive action has to
//--- describe the SAME population the action will reach, so it walks the same tree.
SIGCMD_REPORT_IDENTITY
};
//--- What the panel needs to ASK of the signal tree to label its buttons. Counted, never assumed:
//--- "all paused" is only meaningful against how many signals could be paused at all.
enum ENUM_SIGNAL_TRAIT
{
SIGTRAIT_TRAINABLE, // this signal owns a model that trains - the denominator
SIGTRAIT_TRAINING_PAUSED,
SIGTRAIT_TRAINING_STOPPED,
SIGTRAIT_TRAINING_COMPLETE,
SIGTRAIT_DEPLOY_SKIPS_RECALL, // deploying now would ship a model that ignores Buy or Sell
SIGTRAIT_RESCAN_PENDING
};
#endif