Skip to content

Commit 5c8f380

Browse files
committed
Fixes compatibility with classes v3.001-dev
1 parent ef7a2ef commit 5c8f380

File tree

1 file changed

+23
-31
lines changed

1 file changed

+23
-31
lines changed

Stg_MA_Trend.mqh

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -137,100 +137,92 @@ class Stg_MA_Trend : public Strategy {
137137
IndiAMAParams _indi_params(::MA_Trend_Indi_AMA_InpPeriodAMA, ::MA_Trend_Indi_AMA_InpFastPeriodEMA,
138138
::MA_Trend_Indi_AMA_InpSlowPeriodEMA, ::MA_Trend_Indi_AMA_InpShiftAMA, PRICE_TYPICAL,
139139
::MA_Trend_Indi_AMA_Shift);
140-
_indi_params.SetDataSourceType(::MA_Trend_Indi_AMA_SourceType);
141140
_indi_params.SetTf(Get<ENUM_TIMEFRAMES>(STRAT_PARAM_TF));
142-
SetIndicator(new Indi_AMA(_indi_params), ::MA_Trend_Type);
141+
SetIndicator(new Indi_AMA(_indi_params, ::MA_Trend_Indi_AMA_SourceType), ::MA_Trend_Type);
143142
_indi_params.SetTf(PERIOD_D1);
144-
SetIndicator(new Indi_AMA(_indi_params), ::MA_Trend_Type + 1);
143+
SetIndicator(new Indi_AMA(_indi_params, ::MA_Trend_Indi_AMA_SourceType), ::MA_Trend_Type + 1);
145144
break;
146145
}
147146
case STG_MA_TREND_TYPE_DEMA: // DEMA
148147
{
149148
IndiDEIndiMAParams _indi_params(::MA_Trend_Indi_DEMA_Period, ::MA_Trend_Indi_DEMA_MA_Shift,
150149
::MA_Trend_Indi_DEMA_Applied_Price, ::MA_Trend_Indi_DEMA_Shift);
151-
_indi_params.SetDataSourceType(::MA_Trend_Indi_DEMA_SourceType);
152150
_indi_params.SetTf(Get<ENUM_TIMEFRAMES>(STRAT_PARAM_TF));
153-
SetIndicator(new Indi_DEMA(_indi_params), ::MA_Trend_Type);
151+
SetIndicator(new Indi_DEMA(_indi_params, ::MA_Trend_Indi_DEMA_SourceType), ::MA_Trend_Type);
154152
_indi_params.SetTf(PERIOD_D1);
155-
SetIndicator(new Indi_DEMA(_indi_params), ::MA_Trend_Type + 1);
153+
SetIndicator(new Indi_DEMA(_indi_params, ::MA_Trend_Indi_DEMA_SourceType), ::MA_Trend_Type + 1);
156154
break;
157155
}
158156
case STG_MA_TREND_TYPE_FRAMA: // FrAMA
159157
{
160158
IndiFrAIndiMAParams _indi_params(::MA_Trend_Indi_FrAMA_Period, ::MA_Trend_Indi_FrAMA_MA_Shift,
161159
::MA_Trend_Indi_FrAMA_Applied_Price, ::MA_Trend_Indi_FrAMA_Shift);
162-
_indi_params.SetDataSourceType(::MA_Trend_Indi_FrAMA_SourceType);
163160
_indi_params.SetTf(Get<ENUM_TIMEFRAMES>(STRAT_PARAM_TF));
164-
SetIndicator(new Indi_FrAMA(_indi_params), ::MA_Trend_Type);
161+
SetIndicator(new Indi_FrAMA(_indi_params, ::MA_Trend_Indi_FrAMA_SourceType), ::MA_Trend_Type);
165162
_indi_params.SetTf(PERIOD_D1);
166-
SetIndicator(new Indi_FrAMA(_indi_params), ::MA_Trend_Type + 1);
163+
SetIndicator(new Indi_FrAMA(_indi_params, ::MA_Trend_Indi_FrAMA_SourceType), ::MA_Trend_Type + 1);
167164
break;
168165
}
169166
case STG_MA_TREND_TYPE_ICHIMOKU: // Ichimoku
170167
{
171168
IndiIchimokuParams _indi_params(::MA_Trend_Indi_Ichimoku_Period_Tenkan_Sen,
172169
::MA_Trend_Indi_Ichimoku_Period_Kijun_Sen,
173170
::MA_Trend_Indi_Ichimoku_Period_Senkou_Span_B, ::MA_Trend_Indi_Ichimoku_Shift);
174-
_indi_params.SetDataSourceType(::MA_Trend_Indi_Ichimoku_SourceType);
175171
_indi_params.SetTf(Get<ENUM_TIMEFRAMES>(STRAT_PARAM_TF));
176-
SetIndicator(new Indi_Ichimoku(_indi_params), ::MA_Trend_Type);
172+
SetIndicator(new Indi_Ichimoku(_indi_params, ::MA_Trend_Indi_Ichimoku_SourceType), ::MA_Trend_Type);
177173
_indi_params.SetTf(PERIOD_D1);
178-
SetIndicator(new Indi_Ichimoku(_indi_params), ::MA_Trend_Type + 1);
174+
SetIndicator(new Indi_Ichimoku(_indi_params, ::MA_Trend_Indi_Ichimoku_SourceType), ::MA_Trend_Type + 1);
179175
break;
180176
}
181177
case STG_MA_TREND_TYPE_MA: // MA
182178
{
183179
IndiMAParams _indi_params(::MA_Trend_Indi_MA_Period, ::MA_Trend_Indi_MA_MA_Shift, ::MA_Trend_Indi_MA_Method,
184180
::MA_Trend_Indi_MA_Applied_Price, ::MA_Trend_Indi_MA_Shift);
185-
_indi_params.SetDataSourceType(::MA_Trend_Indi_MA_SourceType);
181+
186182
_indi_params.SetTf(Get<ENUM_TIMEFRAMES>(STRAT_PARAM_TF));
187-
SetIndicator(new Indi_MA(_indi_params), ::MA_Trend_Type);
183+
SetIndicator(new Indi_MA(_indi_params, ::MA_Trend_Indi_MA_SourceType), ::MA_Trend_Type);
188184
_indi_params.SetTf(PERIOD_D1);
189-
SetIndicator(new Indi_MA(_indi_params), ::MA_Trend_Type + 1);
185+
SetIndicator(new Indi_MA(_indi_params, ::MA_Trend_Indi_MA_SourceType), ::MA_Trend_Type + 1);
190186
break;
191187
}
192188
case STG_MA_TREND_TYPE_PRICE_CHANNEL: // Price Channel
193189
{
194190
IndiPriceChannelParams _indi_params(::MA_Trend_Indi_PriceChannel_Period, ::MA_Trend_Indi_PriceChannel_Shift);
195-
_indi_params.SetDataSourceType(::MA_Trend_Indi_PriceChannel_SourceType);
196191
_indi_params.SetTf(Get<ENUM_TIMEFRAMES>(STRAT_PARAM_TF));
197-
SetIndicator(new Indi_PriceChannel(_indi_params), ::MA_Trend_Type);
192+
SetIndicator(new Indi_PriceChannel(_indi_params, ::MA_Trend_Indi_PriceChannel_SourceType), ::MA_Trend_Type);
198193
_indi_params.SetTf(PERIOD_D1);
199-
SetIndicator(new Indi_PriceChannel(_indi_params), ::MA_Trend_Type + 1);
194+
SetIndicator(new Indi_PriceChannel(_indi_params, ::MA_Trend_Indi_PriceChannel_SourceType), ::MA_Trend_Type + 1);
200195
break;
201196
}
202197
case STG_MA_TREND_TYPE_SAR: // SAR
203198
{
204199
IndiSARParams _indi_params(::MA_Trend_Indi_SAR_Step, ::MA_Trend_Indi_SAR_Maximum_Stop,
205200
::MA_Trend_Indi_SAR_Shift);
206-
_indi_params.SetDataSourceType(::MA_Trend_Indi_SAR_SourceType);
207201
_indi_params.SetTf(Get<ENUM_TIMEFRAMES>(STRAT_PARAM_TF));
208-
SetIndicator(new Indi_SAR(_indi_params), ::MA_Trend_Type);
202+
SetIndicator(new Indi_SAR(_indi_params, ::MA_Trend_Indi_SAR_SourceType), ::MA_Trend_Type);
209203
_indi_params.SetTf(PERIOD_D1);
210-
SetIndicator(new Indi_SAR(_indi_params), ::MA_Trend_Type + 1);
204+
SetIndicator(new Indi_SAR(_indi_params, ::MA_Trend_Indi_SAR_SourceType), ::MA_Trend_Type + 1);
211205
break;
212206
}
213207
case STG_MA_TREND_TYPE_TEMA: // TEMA
214208
{
215209
IndiTEMAParams _indi_params(::MA_Trend_Indi_TEMA_Period, ::MA_Trend_Indi_TEMA_MA_Shift,
216210
::MA_Trend_Indi_TEMA_Applied_Price, ::MA_Trend_Indi_TEMA_Shift);
217-
_indi_params.SetDataSourceType(::MA_Trend_Indi_TEMA_SourceType);
218211
_indi_params.SetTf(Get<ENUM_TIMEFRAMES>(STRAT_PARAM_TF));
219-
SetIndicator(new Indi_TEMA(_indi_params), ::MA_Trend_Type);
212+
SetIndicator(new Indi_TEMA(_indi_params, ::MA_Trend_Indi_TEMA_SourceType), ::MA_Trend_Type);
220213
_indi_params.SetTf(PERIOD_D1);
221-
SetIndicator(new Indi_TEMA(_indi_params), ::MA_Trend_Type + 1);
214+
SetIndicator(new Indi_TEMA(_indi_params, ::MA_Trend_Indi_TEMA_SourceType), ::MA_Trend_Type + 1);
222215
break;
223216
}
224217
case STG_MA_TREND_TYPE_VIDYA: // VIDYA
225218
{
226219
IndiVIDYAParams _indi_params(::MA_Trend_Indi_VIDYA_Period, ::MA_Trend_Indi_VIDYA_MA_Period,
227220
::MA_Trend_Indi_VIDYA_MA_Shift, ::MA_Trend_Indi_VIDYA_Applied_Price,
228221
::MA_Trend_Indi_VIDYA_Shift);
229-
_indi_params.SetDataSourceType(::MA_Trend_Indi_VIDYA_SourceType);
230222
_indi_params.SetTf(Get<ENUM_TIMEFRAMES>(STRAT_PARAM_TF));
231-
SetIndicator(new Indi_VIDYA(_indi_params), ::MA_Trend_Type);
223+
SetIndicator(new Indi_VIDYA(_indi_params, ::MA_Trend_Indi_VIDYA_SourceType), ::MA_Trend_Type);
232224
_indi_params.SetTf(PERIOD_D1);
233-
SetIndicator(new Indi_VIDYA(_indi_params), ::MA_Trend_Type + 1);
225+
SetIndicator(new Indi_VIDYA(_indi_params, ::MA_Trend_Indi_VIDYA_SourceType), ::MA_Trend_Type + 1);
234226
break;
235227
}
236228
case STG_MA_TREND_TYPE_0_NONE: // (None)
@@ -254,8 +246,8 @@ class Stg_MA_Trend : public Strategy {
254246
int _direction = Order::OrderDirection(_cmd, _mode);
255247
uint _ishift = 0;
256248
Chart *_chart = trade.GetChart();
257-
IndicatorBase *_indi = GetIndicator(::MA_Trend_Type);
258-
IndicatorBase *_indi_d1 = GetIndicator(::MA_Trend_Type + 1);
249+
IndicatorData *_indi = GetIndicator(::MA_Trend_Type);
250+
IndicatorData *_indi_d1 = GetIndicator(::MA_Trend_Type + 1);
259251
float _level_pips = (float)(_level * _chart.GetPipSize());
260252
float _ma_diff = (float)fabs(_indi_d1[_ishift][0] - _indi[_ishift][0]);
261253

@@ -275,8 +267,8 @@ class Stg_MA_Trend : public Strategy {
275267
*/
276268
bool SignalOpen(ENUM_ORDER_TYPE _cmd, int _method = 0, float _level = 0.0f, int _shift = 0) {
277269
Chart *_chart = trade.GetChart();
278-
IndicatorBase *_indi = GetIndicator(::MA_Trend_Type);
279-
IndicatorBase *_indi_d1 = GetIndicator(::MA_Trend_Type + 1);
270+
IndicatorData *_indi = GetIndicator(::MA_Trend_Type);
271+
IndicatorData *_indi_d1 = GetIndicator(::MA_Trend_Type + 1);
280272
uint _ishift = _shift; // @todo: _indi.GetShift();
281273
// bool _result = _indi.GetFlag(INDI_ENTRY_FLAG_IS_VALID, _shift); // @fixme
282274
bool _result = true;

0 commit comments

Comments
 (0)