Перед копированием, надо получить ответ на вопрос: а на всём ли диапазоне рассчитан индикатор? Ведь для этого надо какое-то время, и если расчёт не закончен копировать рано! Я использую вот такую конструкцию:
while(BarsCalculated(handle)<count){} CopyBuffer(handle,0,0,count,arr);
Перед копированием, надо получить ответ на вопрос: а на всём ли диапазоне рассчитан индикатор? Ведь для этого надо какое-то время, и если расчёт не закончен копировать рано! Я использую вот такую конструкцию:
Перед копированием, надо получить ответ на вопрос: а на всём ли диапазоне рассчитан индикатор? Ведь для этого надо какое-то время, и если расчёт не закончен копировать рано! Я использую вот такую конструкцию:
и что, помогает такая конструкция?
Да и с проверкой валидности у меня что-то не всегда работает... Бывает что хэндл =14, например, а возвращает CopyBuffer(..)=-1, Error=4807
2010.08.26 23:36:43 ME-V-v001 (EURUSD,M1) CSignals::Level CopyBuffer(EURCHF)=14, Copied=-1 Error 4807
и что, помогает такая конструкция?
А Вы попробуйте.
Я слегка модифицировал вашу идею, а то она частенько переходит в бесконечный цикл!
Кажется так будет лучше
for (int retry = 0; retry < 5; retry++)
{
if (BarsCalculated(handle) < count)
{
Sleep (1000);
continue;
}
else
{
break;
}
}
и дальше копируем

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Какие проверки, условия, или задержки надо внести ДО и ПОСЛЕ CopyBuffer(), для того, чтоб, ГАРАНТИРОВАННО получить те 400(0) значений индикатора, которые необходимы сейчас(!), на семи(десяти) инструментах в максимально скоростных условиях(в цикле)?
А так же необходимые условия для других Copy..
Предлагаю обсудить. Я уже перегрелся...