Бета-тестирование MetaTrader 5 началось! - страница 103
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
MetaDriver писал(а) >>
Однако не работает. Знак процентов не выводится, а иногда и вся строка в которой есть "%%".
Так наверное: "\%"
FileWriteArray(....) не работает. Файл пишется, но в нём нули.
Так наверное: "\%"
Неа. Попробовано. Данная комбинация выводит пробел.
Почему я не могу получить значения индикатора ZigZag?
Вот так Ваш шедевр работать будет...
Вот так Ваш шедевр работать будет...
Про Sleep(10); даже и в мыслях не было, в справке не слова об этом, большое спасибо
Неа. Попробовано. Данная комбинация выводит пробел.
Спасибо. Ошибку нашли. В следующем билде %% будет правильно выводиться
Про Sleep(10); даже и в мыслях не было, в справке не слова об этом, большое спасибо
Смотрите функцию BarsCalculated:
BarsCalculated
Возвращает количество рассчитанных данных для запрашиваемого индикатора.
int BarsCalculated(
int indicator_handle, // handle индикатора
);
Параметры
indicator_handle
[in] Хэндл индикатора, полученный соответствующей индикаторной функцией.
Возвращаемое значение
Возвращает количество рассчитанных данных в индикаторном буфере или -1 в случае ошибки (данные еще не рассчитаны).
Примечание
Функция полезна в тех случаях, когда необходимо получить данные индикатора сразу после его создания (получения хендла индикатора).
Пример:
void OnStart()
{
double Ups[];
//--- установим для массивов признак таймсерии
ArraySetAsSeries(Ups,true);
//--- создадим хэндл индикатора Fractals
int FractalsHandle=iFractals(NULL,0);
//--- сбросим код ошибки
ResetLastError();
//--- попытаемся скопировать значения индикатора
int i,copied=CopyBuffer(FractalsHandle,0,0,1000,Ups);
if(copied<=0)
{
Sleep(50);
for(i=0;i<100;i++)
{
if(BarsCalculated(FractalsHandle)>0)
break;
Sleep(50);
}
copied=CopyBuffer(FractalsHandle,0,0,1000,Ups);
if(copied<=0)
{
Print("Не удалось скопировать верхние фракталы. Error =",GetLastError(),
"i=",i," copied=",copied);
return;
}
else
Print("Удалось скопировать верхние фракталы.",
"i=",i," copied=",copied);
}
else Print("Удалось скопировать верхние фракталы. ArraySize =",ArraySize(Ups));
}
Про Sleep(10); даже и в мыслях не было, в справке не слова об этом, большое спасибо
Более того время задержки варьируется в зависимости от быстродействия компьютера... :-)
Рашид писал как корректно обращаться к данным индикаторов и проверять доступное число баров в истории для инструментов.
здесь и здесь.
Спасибо. Ошибку нашли. В следующем билде %% будет правильно выводиться
Ок!!