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

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
а то я не знаю как закидывать индюки на графики..., Вообщем другие работают, а macd не хочет... ((
в папке индикаторов создался файл 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\
Так что вот так.
в папке индикаторов создался файл 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.
Может быть что-нибудь нечаяно в эти файлы вписали и не глядя сохранили! Проще всего ещё раз грузануть эти файлы с сайта!
В двух метатрейдерах такое повторяться не может!
Так что вот так.
Что то ни чего не помогает...
А у всех работает???
Проверил на другом терминале, всё работает. ))
Ладно буду разбираться дальше...
Спасибо.
zax писал(а): ....
Обычно .mqh файлы ошибочно отдельно компилируют, после чего их расширение меняется на .mq4, которые компилятор как библиотеку не воспринимает.
Но функция JJMASeries() не очень читабельна.
Не могли бы вы подробней на ней становится и детально объяснить как она работает.
Включив математические формулы на уровне алгоритма ( их проще понять, чем код).
Может быть в следующей статье?
Николай, результаты работы фильтров впечатляют!
Но функция 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 барах
...
}