Отслеживать
1
0
Ответвление
У вас уже есть ответвление Warrior_EA
0
ответвлён от animatedread/Warrior_EA
Warrior_EA/Expert/Topology/ITopologyView.mqh
AnimateDread b2784b5a4d Enhance Feature and Topology Interfaces with Bulk Operations and Cache Management
- 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.
2026-08-25 22:51:50 -04:00

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;
};
//+------------------------------------------------------------------+