Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2435

 
Vitaly Muzichenko #:

Это с мт4 код?

Это с МТ4

Файлы:
 
Блин. Я всех ввёл в заблуждение. Сорри.
 
Tretyakov Rostyslav #:

Это с МТ4

Об этом Я и писал

res = LinearWeightedMA(1, 50, High);
//+------------------------------------------------------------------+
//| Linear Weighted Moving Average                                   |
//+------------------------------------------------------------------+
double LinearWeightedMA(const int position,const int period,const double &price[])
  {
//---
   double result=0.0,sum=0.0;
   int    i,wsum=0;
//--- calculate value
   if(position>=period-1 && period>0)
     {
      for(i=period;i>0;i--)
        {
         wsum+=i;
         sum+=price[position-i+1]*(period-i+1);
        }
      result=sum/wsum;
     }
//---
   return(result);
  }

--

Но почему так?

 
Vitaly Muzichenko #:

Приветствую!

Есть код мт4

Применяем <MovingAverages.mqh>

--

Жёлтым выделено то, что никогда не выполниться.

Что Я делаю не так?

если position меньше period то выполняется :-) в дальнем углу буфера

PS/ кстати, а примерно так разве не быстрее будет ? 

for(int i=position,k=period;k>0;k--) sum+=price[position++]*k; // ++ -- поменять от направления индексации 4,5

return sum/(period*(period-1)/2); // сумма/сумма_арифм_прогрессии

 

Я заменил на эту, работает

double LWMA(const int shift,const int period,const int _bars,const double &h[],const double &l[],const double &c[])
{
  if(period<1 || shift>_bars-period-1)
    return 0;
  double sum=0;
  double weight=0;
  for(int i=0; i<period; i++) {
    weight+=(period-i);
    sum+=((h[shift+i]+l[shift+i]+c[shift+i]+c[shift+i])/4)*(period-i);
  }
  return(weight>0 ? sum/weight : 0);
}

Но хотел использовать в поставке с терминалом МТ4, но так и понял как её использовать

 
Здравствуйте! в журнале в разделе эксперты появляется: 2024.08.23 13:13:49.954 СБЕР ФЬЮЧ АРБ (SRU4,M1) array out of range in 'СБЕР ФЬЮЧ АРБ.mq5' (147,33)

после чего эксперт удаляется с инструмента и графика. Кто знает в чём причина?


 
rogozaiv86 #:
Здравствуйте! в журнале в разделе эксперты появляется: 2024.08.23 13:13:49.954 СБЕР ФЬЮЧ АРБ (SRU4,M1) array out of range in 'СБЕР ФЬЮЧ АРБ.mq5' (147,33)

после чего эксперт удаляется с инструмента и графика. Кто знает в чём причина?


Причина кроется в строке 147 в позиции курсора 33
 
Здравствуйте, подскажите пожалуйста, как сделать так, чтобы при наведении перекрестия на свечу отображалась цена пересечения трендовой линии на этой свече в окне данных терминала MT4?
 
Vitaly Muzichenko #:

Я заменил на эту, работает

Но хотел использовать в поставке с терминалом МТ4, но так и понял как её использовать

Тяжело переворачивать ряд в голове) тоже долго маюсь, если код забираю. И часто легче код переделать, чем перевернуть ряд перед функцией)
 
Artyom Trishkin #:
Причина кроется в строке 147 в позиции курсора 33

Спасибо за ответ!

А как сделать так чтобы при этой ошибке, эксперт не удалялся с инструмента, а продолжал работать?