Здравствуйте, такая проблема:
Если советник прокручивает через цикл таймфреймы и инструменты, не используя какие-либо технические индикаторы, то все ок, все работает. Но стоит мне подключить любой индикаторный буффер, как проходит только один прогон по иксу, а после этого советник вылетает. В прямом смысле, он убегает с графика. Функция де инит - пустая, там есть только стандартный EventKillTimer()
Терминалы переустанавливал, пользовательские данные удалял. Повторюсь, советник отлично работал больше недели 24/7, а потом взял и перестал производить запросы к базе. В итоге - сейчас сервис крутится на более примитивной логике, без использования каких-либо технических индикаторов
Помогите, пожалуйста, советник связан с подачей торговых сигналов, все работало до 12-30 по мск вчера, после чего все отказывается работать (как только подключаешь индикатор - один прогон по иксу - и индикатор вылетел).
Здравствуйте, такая проблема:
Если советник прокручивает через цикл таймфреймы и инструменты, не используя какие-либо технические индикаторы, то все ок, все работает. Но стоит мне подключить любой индикаторный буффер, как проходит только один прогон по иксу, а после этого советник вылетает. В прямом смысле, он убегает с графика. Функция де инит - пустая, там есть только стандартный EventKillTimer()
Терминалы переустанавливал, пользовательские данные удалял. Повторюсь, советник отлично работал больше недели 24/7, а потом взял и перестал производить запросы к базе. В итоге - сейчас сервис крутится на более примитивной логике, без использования каких-либо технических индикаторов
Помогите, пожалуйста, советник связан с подачей торговых сигналов, все работало до 12-30 по мск вчера, после чего все отказывается работать (как только подключаешь индикатор - один прогон по иксу - и индикатор вылетел).
К чему, какой, вы подключаете индикаторный буфер? Что за чудеса?
Вставляете вызов индикатора в код советника?
Накладываете индикатор на график с советником?
Какой прогон, по какому иксу?
В журнале-то что написано после завершения работы советника?
Сейчас советник перестал пропадать, однако в другом - все осталось как и было.
вот код инициализации советника, если запустить - то алерты идут только на пару EURUSD по всем таймфреймам, дальше - нет.
{
EventSetTimer(Timer);
char data[];
char result[];
string aQuery;
string headers;
int handle;
double buffer[];
int MA_handle [23][9];
double MA_buffer[];
for (int x=0; x<23; x++)
{
for (int y=0; y<9; y++)
{
MA_handle[x][y]= iMA(aSymbol(x),tf(y),21,0,MODE_SMA,PRICE_CLOSE);
CopyBuffer(MA_handle[x][y],0,0,100,MA_buffer);
ArraySetAsSeries (MA_buffer, true);
Alert (aSymbol (x)+ " " + tfs(y) + " " + DoubleToString (MA_buffer[0], 8));
}
}
return(0);
return(INIT_SUCCEEDED);
}
вот код инициализации советника, если запустить - то алерты идут только на пару EURUSD по всем таймфреймам, дальше - нет.
- Зачем на каждой итерации цикла производится одно и то же действие - ArraySetAsSeries?
- Почему нет проверки результата iMA и CopyBuffer? Ведь обращение производится к разным символам и таймфреймам. А данные по ним вряд ли готовы прямо сейчас. В справке прямо об этом указано:
Примечание
При запросе данных из индикатора, если запрашиваемые таймсерии еще не построены или их необходимо загрузить с сервера, то функция сразу же вернет -1, но при этом сам процесс загрузки/построения будет инициирован.
При запросе данных из эксперта или скрипта, будет инициирована загрузка с сервера, если локально этих данных у терминала нет, либо начнется построение нужной таймсерии, если данные можно построить из локальной истории, но они еще не готовы. Функция вернет то количество данных, которые будут готовы к моменту истечения таймаута.
- Зачем на каждой итерации цикла производится одно и то же действие - ArraySetAsSeries?
- Почему нет проверки результата iMA и CopyBuffer? Ведь обращение производится к разным символам и таймфреймам. А данные по ним вряд ли готовы прямо сейчас. В справке прямо об этом указано:
Спасибо, тогда вопрос простой - каким образом нам избежать такой ошибки? Прогрузить локально все эти символы и таймфреймы? И почему такая ситуация произошла именно после недели стабильной работы? Просто в дальнейшем у нас в функции OnTimer() нужно будет использовать значение индикатора по предыдущему бару на всех инструментах и всех таймфреймах
Ошибок избежать невозможно, а вот учесть их последствия - работа программиста. Так, если данные не были получены в OnInit, то нужно продолжить их подгрузку в другой функции (OnTick или OnTimer). До тех пор, пока не получены все необходимые данные, основной код не должен запускаться.
как тогда могло получиться так, что все работало как часы больше недели, а сейчас - не работает? Просто в один прекрасный момент я увидел, что в сервис больше не поступают данные, проверил советника - а он пишет, что не может найти данные индикатора
Просто сейчас они подгружаются уже больше 10 минут, а раньше все работало сразу - при инициализации сразу же и сигналы формировались, и запросы в сервис отправлялись и все было хорошо, с чем связано нынешнее состояние - не могу понять
как тогда могло получиться так, что все работало как часы больше недели, а сейчас - не работает? Просто в один прекрасный момент я увидел, что в сервис больше не поступают данные, проверил советника - а он пишет, что не может найти данные индикатора
так вы бы журнал и прислали.
Если советник вылетает, то скорей всего попали на критикал ерор в ините или в Онтаймере, или в ОнТике. До Деинита он просто не дошел, поэтому пустой или нет - неважно
так вы бы журнал и прислали.
Если советник вылетает, то скорей всего попали на критикал ерор в ините или в Онтаймере, или в ОнТике. До Деинита он просто не дошел, поэтому пустой или нет - неважно
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, такая проблема:
Если советник прокручивает через цикл таймфреймы и инструменты, не используя какие-либо технические индикаторы, то все ок, все работает. Но стоит мне подключить любой индикаторный буффер, как проходит только один прогон по иксу, а после этого советник вылетает. В прямом смысле, он убегает с графика. Функция де инит - пустая, там есть только стандартный EventKillTimer()
Терминалы переустанавливал, пользовательские данные удалял. Повторюсь, советник отлично работал больше недели 24/7, а потом взял и перестал производить запросы к базе. В итоге - сейчас сервис крутится на более примитивной логике, без использования каких-либо технических индикаторов
Помогите, пожалуйста, советник связан с подачей торговых сигналов, все работало до 12-30 по мск вчера, после чего все отказывается работать (как только подключаешь индикатор - один прогон по иксу - и индикатор вылетел).