Примеры: Эффективные алгоритмы усреднения с минимальным лагом и их использование в индикаторах и экспертах - страница 2

 
zax:
а то я не знаю как закидывать индюки на графики..., Вообщем другие работают, а macd не хочет... ((
Припоминаю, как-то доводилось видеть и такое, но вот как решал, уже не помню, решил и забыл! Самое простое, что приходит в голову - это замена всех необходимых файлов в папках "indicators" и "INCLUDE", удаление файлов ex4 из папки "indicators" и выкидывание из этой папки файла mqlcache.dat. Ежели после этих манипуляций и перекомпиляции файлов индюк всё-равно не вешается на график, то тогда только новая инсталляция метатрейдера в пустую папку и выяснение деталей там.
 

в папке индикаторов создался файл XMACD.log в нем есть 2 строчки:

2;76;C:\Program Files\Broco Trader\experts\indicators\XMACD.mq4;59:1;'SmoothXSeries.mqh' - cannot open the program file
2;76;C:\Program Files\Broco Trader\experts\indicators\XMACD.mq4;65:1;'PriceSeries.mqh' - cannot open the program file


из них видно что НЕ ВОЗМОЖНО открыть файлы (SmoothXSeries and PriceSeries) хотя эти файлы копировал как описано в статье, т.е в папку

MetaTrader\experts\include\


Так что вот так.

 
zax:

в папке индикаторов создался файл XMACD.log в нем есть 2 строчки:

2;76;C:\Program Files\Broco Trader\experts\indicators\XMACD.mq4;59:1;'SmoothXSeries.mqh' - cannot open the program file
2;76;C:\Program Files\Broco Trader\experts\indicators\XMACD.mq4;65:1;'PriceSeries.mqh' - cannot open the program file


из них видно что НЕ ВОЗМОЖНО открыть файлы (SmoothXSeries and PriceSeries) хотя эти файлы копировал как описано в статье, т.е в папку

MetaTrader\experts\include\

Скорей всего вы просто на каком-то этапе поменяли расширения .mqh файлов в инклюднике на .mq4. 
Может быть что-нибудь нечаяно в эти файлы вписали и не глядя сохранили! Проще всего ещё раз грузануть эти файлы с сайта!
В двух метатрейдерах такое повторяться не может!

Так что вот так.

 

Что то ни чего не помогает...

А у всех работает???

 

Проверил на другом терминале, всё работает. ))

Ладно буду разбираться дальше...

Спасибо.

 
" ... Одно дело шпицштихель! И совсем другое - больштихель!" (с) Покровские ворота
 
GODZILLA:

zax писал(а): ....

Скорей всего вы просто на каком-то этапе поменяли расширения .mqh файлов в инклюднике на .mq4.

Обычно .mqh файлы ошибочно отдельно компилируют, после чего их расширение меняется на .mq4, которые компилятор как библиотеку не воспринимает.

 
Николай, результаты работы фильтров впечатляют!
Но функция JJMASeries() не очень читабельна.
Не могли бы вы подробней на ней становится и детально объяснить как она работает.
Включив математические формулы на уровне алгоритма ( их проще понять, чем код).
Может быть в следующей статье?
 
begemot61:
Николай, результаты работы фильтров впечатляют!
Но функция JJMASeries() не очень читабельна.
Не могли бы вы подробней на ней становится и детально объяснить как она работает.
Включив математические формулы на уровне алгоритма ( их проще понять, чем код).
Может быть в следующей статье?

Увы! Сударь! Не получится! Код JJMASeries() я перекомпилировал с мне неизвестного языка программирования и основное, что меня интересовало - это полная корректность его работы и правильность расчёта выходного значения JMA на основе входных данных. А во внутренности математических выражений я не лез. Единственное что я без проблем быстро сделал - это  ампутировал из этого алгоритма саму адаптацию, оставив только алгоритм сглаживания и сделал этот алгоритм в виде функции JLiteSeries(), которая "почти" такая же как JJMA, естественно по общим признакам, а в мелких деталях есть отличия! 

Тут как-то igorad (TrendLaboratory Ltd E-mail: igorad2004@list.ru) утверждал, что он этот алгоритм разобрал до математики у себя на закрытом форуме, но где конкретно - я не в курсе!

 

Коллеги,

Прошу помощи клуба... При использовании функции JJMASeries вместо плавной кривой получаю разбросанные короткие отрезки. В чем может быть причина? Уже все перерыл. Может "бревно в глазу" не вижу (((

Фрагменты кода:

init()

{

...

  SetIndexBuffer(6,VectorSAsMA);
  SetIndexBuffer(7,VectorSAlMA);

  SetIndexEmptyValue(6, 0);
  SetIndexEmptyValue(7, 0);

  SetIndexDrawBegin(6,0);
  SetIndexDrawBegin(7,0);

...
  JJMASeriesAlert (0,"Length",Length);
  JJMASeriesAlert (1,"Phase", Phase);
  if(JJMASeriesResize(2) != 2) return(-1);

...

}

double GetSignal(int idx)

{

...

// Тут вычисляем Р1 и Р2

...

  MaxBar= Bars-1; 
  limit1= 0;

  Resalt=JJMASeries(0,0,MaxBar,limit1,Phase,Length,P1,idx,reset);
  if(reset!=0) { Print("Reset != 0"); return(-1); }
  VectorSAsMA[idx] = Resalt;            // результат пишем в индикаторный  1-й буфер
   
  Resalt=JJMASeries(1,0,MaxBar,limit1,Phase,Length,P2,idx,reset);
  if(reset!=0) { Print("Reset != 0"); return(-1); }
  VectorSAlMA[idx] = Resalt;            // результат пишем в индикаторный  2-й буфер
}

start()

{

...

for(i=700; i>0; i--) GetSignal(i);     // рисуем только на первых 700 барах

...

}

Причина обращения: