При разработке торговых роботов очень часто приходится обращаться к значениям встроенных технических индикаторов. И постоянно надо писать один и тот же код в разных советниках.
Я тут подумал, что будет не плохо написать значения этих индикаторов где-нибудь один раз, чтобы при необходимости просто зайти и скопировать уже готовый код в свой советник.
Коды вызовов значений встроенных в MetaTrader 4 индикаторов ниже:
Stochastic Oscillator
Внешние параметры:
input int Kperiod = 5;
input int Dperiod = 3;
input int slowing = 3;
Вызов значений стохастика:
double stohSIGNAL = iStochastic(Symbol(),0,Kperiod,Dperiod,slowing,0,0,MODE_SIGNAL,1); // быстрая линия
double stohMAIN = iStochastic(Symbol(),0,Kperiod,Dperiod,slowing,0,0,MODE_MAIN,1); // медленная линия
Envelopes
Внешние параметры:
input int ma_period = 14;
input double deviation = 0.1;
Вызов значений Энвелопы:
double EnveUpper = iEnvelopes(Symbol(),0,ma_period,0,0,0,deviation,MODE_UPPER,1); // верхняя
double EnveLower = iEnvelopes(Symbol(),0,ma_period,0,0,0,deviation,MODE_LOWER,1); // нижняя
Average True Range (ATR)
Внешние параметры:
input int InpAtrPeriod = 14;
Вызов значения ATR:
double ATR = iATR(Symbol(),0,InpAtrPeriod,1);
ZigZag
Внешние параметры ЗигЗага (индикатор должен быть установлен в терминале. Как правило, он уже «идет» с МТ4):
extern int InpDepth = 12; // Depth
extern int InpDeviation = 5; // Deviation
extern int InpBackstep = 3; // Backstep
Вызов значения ЗигЗага:
double ZZ = iCustom(Symbol(),0,"ZigZag",InpDepth,InpDeviation,InpBackstep,0,1);
Average Directional Movement Index (ADX)
Внешние параметры индикатора ADX:
input int ADXbarsPeriod = 14;
Вызов значений ADX:
double adx_plusDI = iADX(Symbol(),0,ADXbarsPeriod, PRICE_CLOSE,MODE_PLUSDI,1);
double adx_minusDI = iADX(Symbol(),0,ADXbarsPeriod, PRICE_CLOSE,MODE_MINUSDI,1);
double adx_MAIN = iADX(Symbol(),0,ADXbarsPeriod, PRICE_CLOSE,MODE_MAIN,1);
Moving Averages Convergence/Divergence (MACD)
Внешние параметры индикатора MACD:
input int FastMACD = 12;
input int SlowMACD = 26;
input int SignalMACD = 6;
Вызов значений MACD:
double MACD_fast=iMACD(Symbol(),0,FastMACD,SlowMACD,SignalMACD,PRICE_CLOSE,MODE_SIGNAL,1);
double MACD_slow=iMACD(Symbol(),0,FastMACD,SlowMACD,SignalMACD,PRICE_CLOSE,MODE_MAIN,1);
Bollinger Bands
Внешние параметры Bollinger Bands:
input int InpBandsPeriod=20; // Bands Period
input int InpBandsShift=0; // Bands Shift
input double InpBandsDeviations=2.0; // Bands Deviations
Вызов значений Bollinger Bands:
double bandsUP = iBands(Symbol(),0,InpBandsPeriod,InpBandsDeviations,InpBandsShift,0,MODE_UPPER,1);
double bandsLOWER = iBands(Symbol(),0,InpBandsPeriod,InpBandsDeviations,InpBandsShift,0,MODE_LOWER,1);
Продолжение следует..