Прошу прощения, если такая тема уже есть.
Занялся MQL4 недавно, поэтому не могу решить такую проблему:
Хочу, чтобы ндикатор рисовал на чарте экспоненциальную МАшку по Typical Price. Никак не могу заставить ее рисоваться, как буд то ее и нету. В исходнике МАшек с сайта mql4.com приведен код ЕМА только по цене закрытия. Пытался подставить формулу Typical Price - безрезультатно.
Господа коллеги, помогите решить проблему.
https://docs.mql4.com/ru/indicators/iMA
без кода трудно что-нить еще посоветовать)
Прошу прощения, если такая тема уже есть.
Занялся MQL4 недавно, поэтому не могу решить такую проблему:
Хочу, чтобы ндикатор рисовал на чарте экспоненциальную МАшку по Typical Price. Никак не могу заставить ее рисоваться, как буд то ее и нету. В исходнике МАшек с сайта mql4.com приведен код ЕМА только по цене закрытия. Пытался подставить формулу Typical Price - безрезультатно.
Господа коллеги, помогите решить проблему.
Если вы используете пример iMA(..) то там нужно запускать заполнение массива через цикл..
Доброго времени суток. Благодарю за участие. Вот участок кода из моего первого индикатора, он рисует две SMA, одну по закрытию, другую по открытию. Причем рисует нормально
for(iCycle=1;iCycle<iPeriod;iCycle++,iPos--)
{
dSumHi+=High[iPos];
dSumLo+=Low[iPos];
}
while(iPos>=0)
{
dSumHi+=High[iPos];
dSumLo+=Low[iPos];
bufHi[iPos]=dSumHi/iPeriod;
bufLo[iPos]=dSumLo/iPeriod;
dSumHi-=High[iPos+iPeriod-1];
dSumLo-=Low[iPos+iPeriod-1];
iPos--;
}
if(iCountedBars<1)
for(iCycle=1;iCycle<iPeriod;iCycle++)
{
bufHi[Bars-iCycle]=0;
bufLo[Bars-iCycle]=0;
}
как видно я не использую iMA.
вот участок кода из исходника МАшек с этого сайта, конкретно участок отвечающий за ЕМА:
void ema()
{
double pr=2.0/(MA_Period+1);
int pos=Bars-2;
if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;
//---- main calculation loop
while(pos>=0)
{
if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1];
ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr);
pos--;
}
В моем коде по первому посту практически то же самое, только я пытался вместо цен закрытия подставить формулу вычисления Typical Price
Доброго времени суток. Благодарю за участие. Вот участок кода из моего первого индикатора, он рисует две SMA, одну по закрытию, другую по открытию. Причем рисует нормально
Доброго. по High и Low наверное. вычисления оптимизированны, но врядли существенно быстрее встроенной функции.
зря таки не используете :)
В моем коде по первому посту практически то же самое, только я пытался
вместо цен закрытия подставить формулу вычисления Typical Price
хз, по исходнику фсё рисуецо
//+------------------------------------------------------------------+ //| Typical Price Exponential Moving Average.mq4 | //+------------------------------------------------------------------+ #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red //---- indicator parameters extern int MA_Period=14; extern int MA_Shift=0; //---- indicator buffers double ExtMapBuffer[]; //---- int ExtCountedBars=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- drawing settings SetIndexStyle(0,DRAW_LINE); SetIndexShift(0,MA_Shift); IndicatorDigits(Digits); if(MA_Period<1) MA_Period=1; //---- indicator short name string short_name="EMA("+MA_Period+")"; IndicatorShortName(short_name); //---- indicator buffers mapping SetIndexBuffer(0,ExtMapBuffer); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { if(Bars<=MA_Period) return(0); ExtCountedBars=IndicatorCounted(); //---- check for possible errors if (ExtCountedBars<0) return(-1); //---- last counted bar will be recounted if (ExtCountedBars>0) ExtCountedBars--; //+------------------------------------------------------------------+ //| Exponential Moving Average | //+------------------------------------------------------------------+ double pr=2.0/(MA_Period+1); int pos=Bars-2; if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1; if(pos==Bars-2) ExtMapBuffer[pos+1]=(Close[pos+1]+High[pos+1]+Low[pos+1])/3.0; //---- main calculation loop while(pos>=0) { ExtMapBuffer[pos]=pr*(Close[pos]+High[pos]+Low[pos])/3.0+ExtMapBuffer[pos+1]*(1-pr); pos--; } //---- done return(0); } //+------------------------------------------------------------------+
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Прошу прощения, если такая тема уже есть.
Занялся MQL4 недавно, поэтому не могу решить такую проблему:
Хочу, чтобы ндикатор рисовал на чарте экспоненциальную МАшку по Typical Price. Никак не могу заставить ее рисоваться, как буд то ее и нету. В исходнике МАшек с сайта mql4.com приведен код ЕМА только по цене закрытия. Пытался подставить формулу Typical Price - безрезультатно.
Господа коллеги, помогите решить проблему.