ответвлён от animatedread/Warrior_EA
- Added bulk read/write methods for feature caches in IFeaturesView and its implementations to optimize performance. - Introduced LabelCacheInvalidateAll method to manage label cache invalidation alongside feature cache. - Implemented PooledIndependentBars method in topology interfaces to account for additional independent observations. - Enhanced risk budget management with throttling for peak-equity updates to reduce unnecessary file operations. - Improved error handling and logging for ATR trailing stops to ensure better visibility of issues. - Updated alt-data handling to prevent unnecessary operations during testing and optimization phases.
70 строки
4 КиБ
MQL5
70 строки
4 КиБ
MQL5
//+------------------------------------------------------------------+
|
|
//| Warrior_EA |
|
|
//| AnimateDread |
|
|
//| |
|
|
//| The read/write surface CTopology needs from the signal. Same |
|
|
//| shape as Persistence\IPersistenceView.mqh - abstract, pure `= 0`,|
|
|
//| no signal include. Everything here is either a fingerprint input,|
|
|
//| a size the shape derivation reads, or the two irreducible |
|
|
//| pointer operations (the Net swap, the online-learning reset) |
|
|
//| that are not signal STATE and so are consolidated into one call |
|
|
//| each rather than exposed field-by-field. |
|
|
//+------------------------------------------------------------------+
|
|
class CTopologyView
|
|
{
|
|
public:
|
|
virtual ~CTopologyView(void) { }
|
|
//--- IDENTITY + SIZE (reused via the signal's existing Data*()/Chart*() getters)
|
|
virtual string Id(void) = 0;
|
|
virtual string SymbolName(void) = 0;
|
|
virtual ENUM_TIMEFRAMES Timeframe(void) = 0;
|
|
virtual int OptimizationAlgo(void) = 0;
|
|
virtual int OutputNeuronsCount(void) = 0;
|
|
virtual int NeuronsCount(void) = 0;
|
|
virtual int HistoryBars(void) = 0;
|
|
virtual int InitialNeuronsCount(void) = 0;
|
|
virtual int HiddenLayersCount(void) = 0;
|
|
virtual int ConvFilterCount(void) = 0;
|
|
virtual int LstmHiddenSize(void) = 0;
|
|
virtual int MinTrainYear(void) = 0;
|
|
virtual int FractalPeriods(void) = 0;
|
|
virtual int OosSplitPct(void) = 0;
|
|
virtual int SwingConfirmationBars(void) = 0;
|
|
//--- The LABEL'S pivot source, read at init to measure the swing geometry the window and the
|
|
//--- capacity budget are both derived from - see CTopology::MeasureSwingGeometry().
|
|
virtual int ZigZagHandle(void) = 0;
|
|
//--- FINGERPRINT INPUT FLAGS (BuildModelFingerprint) - every one already has a signal-side setter;
|
|
//--- these are the matching getters.
|
|
virtual bool UseVolumes(void) = 0;
|
|
virtual bool UseTime(void) = 0;
|
|
virtual bool UseATR(void) = 0;
|
|
virtual bool UseSwingContext(void) = 0;
|
|
virtual bool UseNews(void) = 0;
|
|
virtual int NewsFeatureWindowMinutes(void) = 0;
|
|
virtual bool UseMA(void) = 0;
|
|
virtual bool UseCrossAsset(void) = 0;
|
|
virtual bool UseSpreadFeature(void) = 0;
|
|
//--- The DERIVED alt-data flag (InitFeatureIndicators sets it once width is known) - NOT the
|
|
//--- operator opt-in switch (UseAltData(bool) already means that elsewhere).
|
|
virtual bool UseAltData(void) = 0;
|
|
virtual bool IsEnsembleMember(void) = 0;
|
|
//--- Extra independent observations available from Training\TrainingPool.mqh, already discounted
|
|
//--- for cross-instrument correlation - see CTopology::EstimatedInSampleBars()'s use of it. 0 when
|
|
//--- pooling is off or no compatible peer file exists yet.
|
|
virtual double PooledIndependentBars(void) = 0;
|
|
//--- SHAPE SEAMS - subclass-overridden virtuals on the signal (CSignalCONV/LSTM/HYBRID/META).
|
|
virtual bool UsesConvStage(void) = 0;
|
|
virtual bool UsesLstmStage(void) = 0;
|
|
virtual bool HasConvBeforeLstm(void) = 0;
|
|
virtual bool AddCustomLayers(CArrayObj *topology) = 0;
|
|
virtual ENUM_ACTIVATION HiddenLayerActivation(void) = 0;
|
|
virtual ENUM_ACTIVATION OutputLayerActivation(void) = 0;
|
|
virtual int NetInputWidth(void) = 0;
|
|
//--- IRREDUCIBLE POINTER WORK, consolidated - same doctrine as Persistence's
|
|
//--- RunCpuInferenceSelfCheck/ChartScoreBarForRescan: not signal state, a whole-object operation.
|
|
virtual bool ReplaceNetFromTopology(CArrayObj *topology) = 0;
|
|
//--- A fresh topology invalidates the shadow net and the online-learning history - see
|
|
//--- COnlineLearning::ResetForFreshTopology()'s comment.
|
|
virtual void ResetOnlineLearningForFreshTopology(void) = 0;
|
|
};
|
|
//+------------------------------------------------------------------+
|