From 1f6d436ad0638e99809cc84f67a9e29395cbdb24 Mon Sep 17 00:00:00 2001 From: kenorb Date: Fri, 11 Oct 2024 00:16:05 +0100 Subject: [PATCH] Fixes compatibility with classes v3.001-dev --- Stg_MA.mqh | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/Stg_MA.mqh b/Stg_MA.mqh index 21d117b..3a9dee7 100644 --- a/Stg_MA.mqh +++ b/Stg_MA.mqh @@ -136,79 +136,70 @@ class Stg_MA : public Strategy { IndiAMAParams _indi_params(::MA_Indi_AMA_InpPeriodAMA, ::MA_Indi_AMA_InpFastPeriodEMA, ::MA_Indi_AMA_InpSlowPeriodEMA, ::MA_Indi_AMA_InpShiftAMA, PRICE_TYPICAL, ::MA_Indi_AMA_Shift); - _indi_params.SetDataSourceType(::MA_Indi_AMA_SourceType); _indi_params.SetTf(Get(STRAT_PARAM_TF)); - SetIndicator(new Indi_AMA(_indi_params), ::MA_Type); + SetIndicator(new Indi_AMA(_indi_params, ::MA_Indi_AMA_SourceType), ::MA_Type); break; } case STG_MA_TYPE_DEMA: // DEMA { IndiDEIndiMAParams _indi_params(::MA_Indi_DEMA_Period, ::MA_Indi_DEMA_MA_Shift, ::MA_Indi_DEMA_Applied_Price, ::MA_Indi_DEMA_Shift); - _indi_params.SetDataSourceType(::MA_Indi_DEMA_SourceType); _indi_params.SetTf(Get(STRAT_PARAM_TF)); - SetIndicator(new Indi_DEMA(_indi_params), ::MA_Type); + SetIndicator(new Indi_DEMA(_indi_params, ::MA_Indi_DEMA_SourceType), ::MA_Type); break; } case STG_MA_TYPE_FRAMA: // FrAMA { IndiFrAIndiMAParams _indi_params(::MA_Indi_FrAMA_Period, ::MA_Indi_FrAMA_MA_Shift, ::MA_Indi_FrAMA_Applied_Price, ::MA_Indi_FrAMA_Shift); - _indi_params.SetDataSourceType(::MA_Indi_FrAMA_SourceType); _indi_params.SetTf(Get(STRAT_PARAM_TF)); - SetIndicator(new Indi_FrAMA(_indi_params), ::MA_Type); + SetIndicator(new Indi_FrAMA(_indi_params, ::MA_Indi_FrAMA_SourceType), ::MA_Type); break; } case STG_MA_TYPE_ICHIMOKU: // Ichimoku { IndiIchimokuParams _indi_params(::MA_Indi_Ichimoku_Period_Tenkan_Sen, ::MA_Indi_Ichimoku_Period_Kijun_Sen, ::MA_Indi_Ichimoku_Period_Senkou_Span_B, ::MA_Indi_Ichimoku_Shift); - _indi_params.SetDataSourceType(::MA_Indi_Ichimoku_SourceType); _indi_params.SetTf(Get(STRAT_PARAM_TF)); - SetIndicator(new Indi_Ichimoku(_indi_params), ::MA_Type); + SetIndicator(new Indi_Ichimoku(_indi_params, ::MA_Indi_Ichimoku_SourceType), ::MA_Type); break; } case STG_MA_TYPE_MA: // MA { IndiMAParams _indi_params(::MA_Indi_MA_Period, ::MA_Indi_MA_MA_Shift, ::MA_Indi_MA_Method, ::MA_Indi_MA_Applied_Price, ::MA_Indi_MA_Shift); - _indi_params.SetDataSourceType(::MA_Indi_MA_SourceType); _indi_params.SetTf(Get(STRAT_PARAM_TF)); - SetIndicator(new Indi_MA(_indi_params), ::MA_Type); + SetIndicator(new Indi_MA(_indi_params, ::MA_Indi_MA_SourceType), ::MA_Type); break; } case STG_MA_TYPE_PRICE_CHANNEL: // Price Channel { IndiPriceChannelParams _indi_params(::MA_Indi_PriceChannel_Period, ::MA_Indi_PriceChannel_Shift); - _indi_params.SetDataSourceType(::MA_Indi_PriceChannel_SourceType); _indi_params.SetTf(Get(STRAT_PARAM_TF)); - SetIndicator(new Indi_PriceChannel(_indi_params), ::MA_Type); + SetIndicator(new Indi_PriceChannel(_indi_params, ::MA_Indi_PriceChannel_SourceType), ::MA_Type); break; } case STG_MA_TYPE_SAR: // SAR { IndiSARParams _indi_params(::MA_Indi_SAR_Step, ::MA_Indi_SAR_Maximum_Stop, ::MA_Indi_SAR_Shift); - _indi_params.SetDataSourceType(::MA_Indi_SAR_SourceType); _indi_params.SetTf(Get(STRAT_PARAM_TF)); - SetIndicator(new Indi_SAR(_indi_params), ::MA_Type); + SetIndicator(new Indi_SAR(_indi_params, ::MA_Indi_SAR_SourceType), ::MA_Type); break; } case STG_MA_TYPE_TEMA: // TEMA { IndiTEMAParams _indi_params(::MA_Indi_TEMA_Period, ::MA_Indi_TEMA_MA_Shift, ::MA_Indi_TEMA_Applied_Price, ::MA_Indi_TEMA_Shift); - _indi_params.SetDataSourceType(::MA_Indi_TEMA_SourceType); _indi_params.SetTf(Get(STRAT_PARAM_TF)); - SetIndicator(new Indi_TEMA(_indi_params), ::MA_Type); + SetIndicator(new Indi_TEMA(_indi_params, ::MA_Indi_TEMA_SourceType), ::MA_Type); break; } case STG_MA_TYPE_VIDYA: // VIDYA { IndiVIDYAParams _indi_params(::MA_Indi_VIDYA_Period, ::MA_Indi_VIDYA_MA_Period, ::MA_Indi_VIDYA_MA_Shift, ::MA_Indi_VIDYA_Applied_Price, ::MA_Indi_VIDYA_Shift); - _indi_params.SetDataSourceType(::MA_Indi_VIDYA_SourceType); _indi_params.SetTf(Get(STRAT_PARAM_TF)); - SetIndicator(new Indi_VIDYA(_indi_params), ::MA_Type); + SetIndicator(new Indi_VIDYA(_indi_params, ::MA_Indi_VIDYA_SourceType), ::MA_Type); break; } case STG_MA_TYPE_0_NONE: // (None) @@ -222,7 +213,7 @@ class Stg_MA : public Strategy { */ bool SignalOpen(ENUM_ORDER_TYPE _cmd, int _method = 0, float _level = 0.0f, int _shift = 0) { Chart *_chart = trade.GetChart(); - IndicatorBase *_indi = GetIndicator(::MA_Type); + IndicatorData *_indi = GetIndicator(::MA_Type); uint _ishift = _shift; // @todo: _indi.GetShift(); // bool _result = _indi.GetFlag(INDI_ENTRY_FLAG_IS_VALID, _shift); // @fixme bool _result = true;