Глюки в работе индикатора(системы),недокументированное поведение или моя ошибка? Помогите разобраться.
что это за объявления - типы есть а переменных нет ?
int fnCalculateShortSwings(double rates[][6],int,double ShortTerm[][3],int);
что это за объявления - типы есть а переменных нет ?
int fnCalculateShortSwings(double rates[][6],int,double ShortTerm[][3],int);
Да дело к сожалению не в этом абсолютно.
Если хотите посмотрите пример в папке Метатрейдера C:\Program Files\MetaTrader - Alpari\experts\samples\include\ sampledll.mqh
У Вас путь может быть другой.
не знаю что у вас срабатывает, а у меня выдает
2010.07.21 23:14:31 test_ind_1 EURJPY,M15: cannot load library 'testdll1.dll' (error 126)
У Вас скорее всего не разрешены DLL в настройках терминала.
Проверьте.
И еще проверьте где лежит DLL. Она должна лежать в C:\Program Files\MetaTrader - Alpari\experts\libraries.
Хотя последнее и необязательно,просто сперва она ищется средой именно там.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Имеется индикатор в функции start() которого вызывается функция из подключаемой внешней DLL(код индикатора и файлы индикатора, и DLL прилагаются):
//+------------------------------------------------------------------+
#import//| test_ind_1.mq4 |
//| Copyright © 2010, Alex Mel |
//| wgann@bk.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Alex Mel"
#property link "wgann@bk.ru"
#property indicator_chart_window
#import "testdll1.dll"
// Открытие индикаторных массивов
double ShortTermBuf[],ShortTerm[2][3];
//
bool first_time;//флаг того,что функция старт запускается первый раз и соответственно посчитанных баров 0
//функция заполнения индикаторного буфера и отрисовки линий
int PaintShortSwings(int j)
{
return;
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
}
//+------------------------------------------------------------------+
Непонятное поведение заключается в том,что при запуске индикатора как есть срабатывает сперва тот Print, который расположен в функции PaintShortSwings, при этом он выводит НЕ пустые значения массива ShortTerm, а это в свою очередь означает, что вызов DLL тоже срабатывает иначе откуда взяться значениям в этом массиве, но вызовы Print которые расположены в Init() и в Start() но ДО PaintShortSwings почему-то не срабатывают.
Если же за комментировать вызов PaintShortSwings, то все срабатывает в то порядке в каком по идее и должно.
В чем проблема или мое непонимание работы пока не разобрался.