| / | Форум |
|
alex54
20.10.2009 17:40
ГУРУ! не могу получить значение МА, пишет ""copied=-1"" Ткните меня носом где не так Если ВСЕ не так напишите кодик, будьте так любезны Заранее благодарен double Ups[]; int copied=CopyBuffer(MAhandle,0,0,10,Ups); |
|
Организуйте багтрекинг и техсаппорт для своей компании В TeamWox имеются все для того чтобы организовать багтрекинг. Интегрировав модуль Сервисдеск с веб-сайтом, Вы сможете получать заявки своих клиентов напрямую в TeamWox. Более того, вся переписка с клиентами автоматически распознается и попадает в архив, где ее без труда можно найти в будущем. |
|
TheXpert
20.10.2009 17:47
alex54 писал(а) >> Если буфер Ups не индикаторный, то задайте ему нужный размер перед копированием. Если индикаторный -- копируйте целиком. А вообще GetLastError в помощь. |
5198 |
stringo
20.10.2009 17:55
TheXpert писал(а) >>
Если буфер Ups не индикаторный, то задайте ему нужный размер перед копированием. Если индикаторный -- копируйте целиком. А вообще GetLastError в помощь. Вообще, если буфвер динамический, то может иметь любой размер. CopyBuffer сделает ресайз. В данном же случае необходим некоторый таймаут, чтобы после создания хэндла данные посчитались. |
|
TheXpert
20.10.2009 17:59
stringo >>: Вообще, если буфвер динамический, то может иметь любой размер. CopyBuffer сделает ресайз. Когда писал статью, специально проверял -- ресайза не было. Билд был что-то около 199, точно не скажу. В данном же случае необходим некоторый таймаут, чтобы после создания хэндла данные посчитались. Есть специфичная ошибка, отражающая этот момент? |
|
alex54
20.10.2009 18:01
stringo писал(а) >>
Вообще, если буфвер динамический, то может иметь любой размер. CopyBuffer сделает ресайз. В данном же случае необходим некоторый таймаут, чтобы после создания хэндла данные посчитались. Все получилось! Все дело в SLEEP !!! ДЕНЬ КОВЫРЯЛСЯ |
5198 |
stringo
20.10.2009 18:27
TheXpert писал(а) >>
Когда писал статью, специально проверял -- ресайза не было. Билд был что-то около 199, точно не скажу. Есть специфичная ошибка, отражающая этот момент? Есть. ERR_INDICATOR_DATA_NOT_FOUND - 4806 |
5198 |
stringo
20.10.2009 18:31
Посмотрите примеры наших кастомных индикаторов, которые используют другие индикаторы для своих расчётов. Например MACD. Мы используем функцию BarsCalculated, чтобы выяснить сколько насчиталось и насчиталось ли вообще. |
|
kombat
20.10.2009 19:02
Кстати об ошибках... Давеча "поймал" 4752 а что это неизвестно. Сейчас отвечать не стОит, особо, но вот списочек оных для собираемого мной файла пригодился бы. Да обновляемый периодически... //+------------------------------------------------------------------+ //| Errors.mqh | //| Copyright 2009, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2009, MetaQuotes Software Corp." #property link "http://www.mql5.com" //--- string Err(int c) { switch(c) { // ... case 4602: return((string)c+"=Ошибочный индекс своего индикаторного буфера"); case 4603: return((string)c+"=Ошибочный идентификатор свойства пользовательского индикатора"); case 4701: return((string)c+"=Ошибочный идентификатор свойства счета"); case 4752: return((string)c+"=4752 ?"); // ... case 65536: return((string)c+"=gggooo"); //--- default: return((string)c+"=n/a"); } } |
5198 |
stringo
20.10.2009 19:09
ERR_TRADE_DISABLED - 4752 - Торговля для экспертов запрещена. Сегодня внесли в язык и в справку |
|
marketeer
21.10.2009 23:52
stringo >>:
Вообще, если буфвер динамический, то может иметь любой размер. CopyBuffer сделает ресайз. В данном же случае необходим некоторый таймаут, чтобы после создания хэндла данные посчитались. ... Есть. ERR_INDICATOR_DATA_NOT_FOUND - 4806 Может перепроектируете этот кусок пока не поздно, ибо это баг? Либо нужно возвращать управление из функции только после того, как хэндл указывает на валидные данные. Либо возвращать иной код ошибки - указанный не соответствует по описанию: должно быть что-то вроде DATA_NOT_READY_YET. И еще тогда нужна функция типа WaitForSingleObject, т.к. Sleep - это кривизна: одни раз хватит 1 мс, в другой не хватит, а ставить с запасом - будут тормоза. ИМХО. |
|
api
22.10.2009 00:02
Поддерживаю. |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий