//+------------------------------------------------------------------+ //| Warrior_EA | //| AnimateDread | //| | //| CAIBaseFeaturesView bodies - needs the full signal declaration. | //| Same doctrine as Topology\AIBaseTopologyViewImpl.mqh - every | //| method is a forward, borrowed pointer checked on every call. | //+------------------------------------------------------------------+ #ifndef WARRIOR_FEATURES_AIBASEFEATURESVIEWIMPL_MQH #define WARRIOR_FEATURES_AIBASEFEATURESVIEWIMPL_MQH string CAIBaseFeaturesView::Id(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataId() : ""; } string CAIBaseFeaturesView::SymbolName(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartSymbolName() : _Symbol; } ENUM_TIMEFRAMES CAIBaseFeaturesView::Timeframe(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartTimeframe() : PERIOD_CURRENT; } int CAIBaseFeaturesView::HistoryBars(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataHistoryBars() : 0; } int CAIBaseFeaturesView::NeuronsCount(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataFeaturesPerBar() : 0; } int CAIBaseFeaturesView::LabelResolutionBars(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataLabelResolutionBars() : 1; } double CAIBaseFeaturesView::EffectiveSampleSize(const double rawN) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataEffectiveSampleSize(rawN) : rawN; } double CAIBaseFeaturesView::MeanLabelLifespan(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureMeanLabelLifespan() : 1.0; } int CAIBaseFeaturesView::FirstLayerFanIn(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureFirstLayerFanIn() : 0; } double CAIBaseFeaturesView::SwingLifespanEstimate(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureSwingLifespanEstimate() : 1.0; } double CAIBaseFeaturesView::EstimatedInSampleBarsRaw(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureEstimatedInSampleBarsRaw() : 0.0; } double CAIBaseFeaturesView::ChanceRatePct(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureChanceRatePct() : -1.0; } bool CAIBaseFeaturesView::UseAltData(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyUseAltData() : false; } int CAIBaseFeaturesView::SwingConfirmationBars(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.SwingConfirmationBars() : 0; } int CAIBaseFeaturesView::NewsFeatureWindowMinutes(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.NewsFeatureWindowMinutes() : 0; } int CAIBaseFeaturesView::InitialNeuronsCount(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.TopologyInitialNeuronsCount() : 0; } string CAIBaseFeaturesView::ActiveFileName(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineActiveFileName() : ""; } bool CAIBaseFeaturesView::UseVolumes(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseVolumes() : false; } bool CAIBaseFeaturesView::UseMA(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseMA() : false; } bool CAIBaseFeaturesView::UseATR(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseATR() : false; } bool CAIBaseFeaturesView::UseTime(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseTime() : false; } bool CAIBaseFeaturesView::UseSwingContext(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseSwingContext() : false; } bool CAIBaseFeaturesView::UseNews(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseNews() : false; } bool CAIBaseFeaturesView::UseSpreadFeature(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseSpreadFeature() : false; } bool CAIBaseFeaturesView::UseCrossAsset(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.UseCrossAsset() : false; } double CAIBaseFeaturesView::OpenAt(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureOpenAt(idx) : EMPTY_VALUE; } double CAIBaseFeaturesView::HighAt(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureHighAt(idx) : EMPTY_VALUE; } double CAIBaseFeaturesView::LowAt(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureLowAt(idx) : EMPTY_VALUE; } double CAIBaseFeaturesView::CloseAt(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartBarClose(idx) : EMPTY_VALUE; } datetime CAIBaseFeaturesView::TimeAt(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartBarTime(idx) : 0; } double CAIBaseFeaturesView::AtrMain(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineAtrMain(idx) : EMPTY_VALUE; } int CAIBaseFeaturesView::AtrBarsCalculated(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureAtrBarsCalculated() : -1; } int CAIBaseFeaturesView::AtrHandle(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureAtrHandle() : INVALID_HANDLE; } int CAIBaseFeaturesView::ZigZagBarsCalculated(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureZigZagBarsCalculated() : -1; } int CAIBaseFeaturesView::ZigZagHandle(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureZigZagHandle() : INVALID_HANDLE; } bool CAIBaseFeaturesView::FindConfirmedZigZagPivot(const int fromIdx, int &pivotIdx, double &pivotPrice, bool &pivotIsLow) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureFindConfirmedZigZagPivot(fromIdx, pivotIdx, pivotPrice, pivotIsLow) : false; } double CAIBaseFeaturesView::SymbolPoint(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureSymbolPoint() : 0.0; } CIndicators *CAIBaseFeaturesView::IndicatorsPtr(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureIndicatorsPtr() : NULL; } CADIndicatorTuner *CAIBaseFeaturesView::IndicatorTuner(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureIndicatorTuner() : NULL; } CCrossAssetPanel *CAIBaseFeaturesView::CrossAsset(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureCrossAsset() : NULL; } int CAIBaseFeaturesView::AltDataFeatureCount(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureAltDataFeatureCount() : 0; } void CAIBaseFeaturesView::AltDataEnsureFresh(const datetime asOf) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.FeatureAltDataEnsureFresh(asOf); } void CAIBaseFeaturesView::AltDataFeatures(const datetime t, double &out[]) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.FeatureAltDataFeatures(t, out); } string CAIBaseFeaturesView::CrossAssetPairsPinned(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.PersistCrossAssetPairsPinned() : ""; } void CAIBaseFeaturesView::SetCrossAssetPairsPinned(const string v) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.PersistSetCrossAssetPairsPinned(v); } bool CAIBaseFeaturesView::CrossAssetCfgSaved(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.PersistCrossAssetCfgSaved() : false; } void CAIBaseFeaturesView::SetCrossAssetCfgSaved(const bool v) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.PersistSetCrossAssetCfgSaved(v); } bool CAIBaseFeaturesView::CommitCrossAssetPin(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureCommitCrossAssetPin() : false; } int CAIBaseFeaturesView::FeatureCacheSize(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureCacheSize() : 0; } bool CAIBaseFeaturesView::FeatureCacheHasValue(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureCacheHasValue(idx) : false; } bool CAIBaseFeaturesView::FeatureCacheIsValid(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureCacheIsValid(idx) : false; } double CAIBaseFeaturesView::FeatureCacheAt(const int flatIdx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.FeatureCacheAt(flatIdx) : 0.0; } void CAIBaseFeaturesView::FeatureCacheBlock(const int base, const int count, double &out[]) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.FeatureCacheBlock(base, count, out); else ArrayResize(out, 0); } void CAIBaseFeaturesView::FeatureCacheSetAt(const int flatIdx, const double v) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.FeatureCacheSetAt(flatIdx, v); } void CAIBaseFeaturesView::FeatureCacheSetBlock(const int base, const int count, const double &values[]) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.FeatureCacheSetBlock(base, count, values); } void CAIBaseFeaturesView::FeatureCacheMarkStored(const int idx) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.FeatureCacheMarkStored(idx); } void CAIBaseFeaturesView::FeatureCacheInvalidateAll(void) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.FeatureCacheInvalidateAll(); } void CAIBaseFeaturesView::LabelCacheInvalidateAll(void) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.LabelCacheInvalidateAll(); } void CAIBaseFeaturesView::SetFailBlock(const string block) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.FeatureSetFailBlock(block); } void CAIBaseFeaturesView::SetFailIdx(const int idx) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.FeatureSetFailIdx(idx); } void CAIBaseFeaturesView::SetWindowFail(const int slot, const int total) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.FeatureSetWindowFail(slot, total); } CArrayDouble *CAIBaseFeaturesView::TempData(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataTempData() : NULL; } #endif // WARRIOR_FEATURES_AIBASEFEATURESVIEWIMPL_MQH //+------------------------------------------------------------------+