Отслеживать
1
0
Ответвление
У вас уже есть ответвление Warrior_EA
0
ответвлён от animatedread/Warrior_EA
Warrior_EA/Expert/Topology/AIBaseTopologyViewImpl.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

89 строки
6,1 КиБ
MQL5

//+------------------------------------------------------------------+
//| Warrior_EA |
//| AnimateDread |
//| |
//| CAIBaseTopologyView bodies - needs the full signal declaration. |
//| Same doctrine as Persistence\AIBasePersistenceViewImpl.mqh - |
//| every method is a forward, borrowed pointer checked on every |
//| call. |
//+------------------------------------------------------------------+
#ifndef WARRIOR_TOPOLOGY_AIBASETOPOLOGYVIEWIMPL_MQH
#define WARRIOR_TOPOLOGY_AIBASETOPOLOGYVIEWIMPL_MQH
string CAIBaseTopologyView::Id(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataId() : ""; }
string CAIBaseTopologyView::SymbolName(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartSymbolName() : _Symbol; }
ENUM_TIMEFRAMES CAIBaseTopologyView::Timeframe(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartTimeframe() : PERIOD_CURRENT; }
int CAIBaseTopologyView::OptimizationAlgo(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyOptimizationAlgo() : 0; }
int CAIBaseTopologyView::OutputNeuronsCount(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartOutputNeuronsCount() : 0; }
int CAIBaseTopologyView::NeuronsCount(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataFeaturesPerBar() : 0; }
int CAIBaseTopologyView::HistoryBars(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataHistoryBars() : 0; }
int CAIBaseTopologyView::InitialNeuronsCount(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyInitialNeuronsCount() : 0; }
int CAIBaseTopologyView::HiddenLayersCount(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyHiddenLayersCount() : 0; }
int CAIBaseTopologyView::ConvFilterCount(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyConvFilterCount() : 0; }
int CAIBaseTopologyView::LstmHiddenSize(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyLstmHiddenSize() : 0; }
int CAIBaseTopologyView::MinTrainYear(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyMinTrainYear() : 0; }
int CAIBaseTopologyView::FractalPeriods(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyFractalPeriods() : 0; }
int CAIBaseTopologyView::OosSplitPct(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartOosSplitPct() : 0; }
int CAIBaseTopologyView::SwingConfirmationBars(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.SwingConfirmationBars() : 0; }
int CAIBaseTopologyView::ZigZagHandle(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyZigZagHandle() : INVALID_HANDLE; }
bool CAIBaseTopologyView::UseVolumes(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseVolumes() : false; }
bool CAIBaseTopologyView::UseTime(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseTime() : false; }
bool CAIBaseTopologyView::UseATR(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseATR() : false; }
bool CAIBaseTopologyView::UseSwingContext(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseSwingContext() : false; }
bool CAIBaseTopologyView::UseNews(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseNews() : false; }
int CAIBaseTopologyView::NewsFeatureWindowMinutes(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.NewsFeatureWindowMinutes() : 0; }
bool CAIBaseTopologyView::UseMA(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseMA() : false; }
bool CAIBaseTopologyView::UseCrossAsset(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseCrossAsset() : false; }
bool CAIBaseTopologyView::UseSpreadFeature(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseSpreadFeature() : false; }
bool CAIBaseTopologyView::UseAltData(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyUseAltData() : false; }
bool CAIBaseTopologyView::IsEnsembleMember(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataIsEnsembleMember() : false; }
double CAIBaseTopologyView::PooledIndependentBars(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyPooledIndependentBars() : 0.0; }
bool CAIBaseTopologyView::UsesConvStage(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.PersistUsesConvStage() : false; }
bool CAIBaseTopologyView::UsesLstmStage(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyUsesLstmStage() : false; }
bool CAIBaseTopologyView::HasConvBeforeLstm(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyHasConvBeforeLstm() : false; }
bool CAIBaseTopologyView::AddCustomLayers(CArrayObj *topology)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyAddCustomLayers(topology) : false; }
ENUM_ACTIVATION CAIBaseTopologyView::HiddenLayerActivation(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataHiddenLayerActivation() : PRELU; }
ENUM_ACTIVATION CAIBaseTopologyView::OutputLayerActivation(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.PersistOutputLayerActivation() : TANH; }
int CAIBaseTopologyView::NetInputWidth(void)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyNetInputWidth() : 0; }
bool CAIBaseTopologyView::ReplaceNetFromTopology(CArrayObj *topology)
{ return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyReplaceNetFromTopology(topology) : false; }
void CAIBaseTopologyView::ResetOnlineLearningForFreshTopology(void)
{ if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.TopologyResetOnlineLearningForFreshTopology(); }
#endif // WARRIOR_TOPOLOGY_AIBASETOPOLOGYVIEWIMPL_MQH
//+------------------------------------------------------------------+