//+------------------------------------------------------------------+ //| Warrior_EA | //| AnimateDread | //| | //| CAIBaseOnlineLearningView bodies - needs the full signal | //| declaration. Same doctrine as Persistence\AIBasePersistenceViewImpl.mqh - | //| every method is a forward, borrowed pointer checked on every call.| //| Reuses the signal's existing Data*()/Chart*()/Persist*() getters | //| wherever one already answers the question; the rest are new | //| Online*() wrappers published next to them. | //+------------------------------------------------------------------+ #ifndef WARRIOR_ONLINELEARNING_AIBASEONLINELEARNINGVIEWIMPL_MQH #define WARRIOR_ONLINELEARNING_AIBASEONLINELEARNINGVIEWIMPL_MQH string CAIBaseOnlineLearningView::Id(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataId() : ""; } string CAIBaseOnlineLearningView::ActiveFileName(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineActiveFileName() : ""; } bool CAIBaseOnlineLearningView::ActiveFileCommon(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineActiveFileCommon() : false; } long CAIBaseOnlineLearningView::EraCount(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartEraCount() : 0; } bool CAIBaseOnlineLearningView::TrainingComplete(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartTrainingComplete() : false; } bool CAIBaseOnlineLearningView::IsEnsembleMember(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataIsEnsembleMember() : false; } double CAIBaseOnlineLearningView::ErrorPct(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartErrorPct() : 0.0; } double CAIBaseOnlineLearningView::UndefinePct(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineDUndefine() : 0.0; } double CAIBaseOnlineLearningView::Forecast(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartForecast() : 0.0; } datetime CAIBaseOnlineLearningView::StudiedTime(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineDtStudied() : 0; } CNet *CAIBaseOnlineLearningView::NetPtr(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineNet() : NULL; } CArrayDouble *CAIBaseOnlineLearningView::TempData(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataTempData() : NULL; } int CAIBaseOnlineLearningView::OutputNeurons(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartOutputNeuronsCount() : 0; } bool CAIBaseOnlineLearningView::BuildFeatureWindow(const int bar) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineBuildFeatureWindow(bar) : false; } double CAIBaseOnlineLearningView::ApplyClassificationSoftmax(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineApplyClassificationSoftmax() : 0.0; } double CAIBaseOnlineLearningView::AdjustedSignalFromSoftmax(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineAdjustedSignalFromSoftmax() : 0.0; } ENUM_SIGNAL CAIBaseOnlineLearningView::SignalFromValue(const double v) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartDoubleToSignal(v) : Neutral; } ENUM_SIGNAL CAIBaseOnlineLearningView::BarLabel(const int bar) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineBarLabel(bar) : Undefine; } int CAIBaseOnlineLearningView::LabelResolveAge(const int bar) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataLabelResolveAge(bar) : 0; } bool CAIBaseOnlineLearningView::HasLabel(const int bar) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataHasLabel(bar) : false; } bool CAIBaseOnlineLearningView::IsBuyLabel(const int bar) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataIsBuyLabel(bar) : false; } bool CAIBaseOnlineLearningView::IsSellLabel(const int bar) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataIsSellLabel(bar) : false; } int CAIBaseOnlineLearningView::HistoryBars(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataHistoryBars() : 0; } int CAIBaseOnlineLearningView::CalibPurgeBars(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataPurgeBars() : 0; } int CAIBaseOnlineLearningView::CalibLoIndex(const int oosCutoff) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineCalibLoIndex(oosCutoff) : 0; } int CAIBaseOnlineLearningView::CalibHiIndex(const int totalIter, const int oosCutoff) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.DataCalibrationHiIndex(totalIter, oosCutoff) : 0; } int CAIBaseOnlineLearningView::CalibBandBars(const int totalIter, const int oosCutoff) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineCalibBandBars(totalIter, oosCutoff) : 0; } double CAIBaseOnlineLearningView::PriorBuy(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.PersistPriorBuy() : 0.0; } double CAIBaseOnlineLearningView::PriorSell(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.PersistPriorSell() : 0.0; } double CAIBaseOnlineLearningView::PriorNeutral(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.PersistPriorNeutral() : 0.0; } bool CAIBaseOnlineLearningView::InferenceOnly(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineInferenceOnlyFlag() : true; } bool CAIBaseOnlineLearningView::TrainRunActive(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineTrainRunActiveFlag() : false; } bool CAIBaseOnlineLearningView::TrainingStopRequested(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.IsTrainingStopped() : true; } bool CAIBaseOnlineLearningView::TrainingPaused(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.IsTrainingPaused() : true; } int CAIBaseOnlineLearningView::AvailableBars(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartAvailableBars() : 0; } int CAIBaseOnlineLearningView::ServableBars(const int want, const string context) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartServableBars(want, context) : 0; } bool CAIBaseOnlineLearningView::ResizeBuffers(const int barIndex) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartResizeBuffers(barIndex) : false; } bool CAIBaseOnlineLearningView::RefreshData(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartRefreshData() : false; } bool CAIBaseOnlineLearningView::EnsureBarCachesCapacity(const int bars) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineEnsureBarCachesCapacity(bars) : false; } datetime CAIBaseOnlineLearningView::BarTime(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartBarTime(idx) : 0; } double CAIBaseOnlineLearningView::CloseAt(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.ChartBarClose(idx) : 0.0; } double CAIBaseOnlineLearningView::AtrAt(const int idx) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineAtrMain(idx) : 0.0; } double CAIBaseOnlineLearningView::SpreadPrice(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineSpreadPrice() : 0.0; } string CAIBaseOnlineLearningView::FilterId(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.GetFilterID() : "NULL"; } int CAIBaseOnlineLearningView::ConfidenceTierNow(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineConfidenceTier() : 0; } double CAIBaseOnlineLearningView::PatternWeightForTier(const int tier) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlinePatternWeightForTier(tier) : 0.0; } string CAIBaseOnlineLearningView::PatternTableName(const string filterId, const string pattern, const string direction) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlinePatternTableName(filterId, pattern, direction) : ""; } void CAIBaseOnlineLearningView::RegisterSignalRow(int year, int month, int day, int DOW, int hour, int minutes, string tableName, string pattern, string direction, double entryPrice, double exitPrice, string result, double netVote) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.OnlineRegisterSignal(year, month, day, DOW, hour, minutes, tableName, pattern, direction, entryPrice, exitPrice, result, netVote); } double CAIBaseOnlineLearningView::PrevSignal(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlinePrevSignal() : 0.0; } void CAIBaseOnlineLearningView::SetPrevSignal(const double v) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.OnlineSetPrevSignal(v); } bool CAIBaseOnlineLearningView::SaveModelStatsNow(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineSaveModelStats() : false; } void CAIBaseOnlineLearningView::FlattenIndicatorParams(double &ip[]) { if(CheckPointer(m_owner) != POINTER_INVALID) m_owner.OnlineFlattenIndicatorParams(ip); } double CAIBaseOnlineLearningView::ModelEta(void) { return (CheckPointer(m_owner) != POINTER_INVALID) ? m_owner.OnlineModelEta() : 0.0; } #endif // WARRIOR_ONLINELEARNING_AIBASEONLINELEARNINGVIEWIMPL_MQH //+------------------------------------------------------------------+