OnTimer() вам в помощь. Запускать копирование до тех пор пока не загрузится. По крайней мере другово я не нашел
Evgeny Raspaev:
OnTimer() вам в помощь. Запускать копирование до тех пор пока не загрузится. По крайней мере другово я не нашел
OnTimer() вам в помощь. Запускать копирование до тех пор пока не загрузится. По крайней мере другово я не нашел
100 циклов не помогало
int c=0; while(c!=100) { SymClose[i].Inity(framme); c=CopyClose(Symbols[i],TF,1,framme+1,SymClose[i].close); if(c==framme+1) break; c++; //if( c<(framme+1)) Print("не удалось скопировать (((( символ "+Symbols[i]); }
, правда не в таймере, а просто в цикле. задержку в индюке нельзя сделать а с таймером не научился пользоваться, может подскажешь простейший пример?
Anatolii
int OnInit() { if(Corekt()==false) { Print("Tried to sync"); EventSetTimer(1); } if(Corekt()==true) { Print("Successful synchronization"); } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ void OnTimer() { if(Corekt()==true) { Print("Successful Synronization"); EventKillTimer(); } Print("Tried to sync"); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool Corekt() { double aver[]; int Hendel=iMA(Symbol(),Period(),5,0,MODE_EMA,PRICE_CLOSE); int CountAver1=CopyBuffer(Hendel,0,0,5000,aver[]); if(CountAver1<=0) { Print("download history ",Symbol()); return(false); } return(true); }
Evgeny Raspaev:
спасибо за пример, попробую может шустрее и без проблем получится.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Давно столкнулся с проблемой копирования данных. Сделал индикатор , работает, да вот только не всегда как хотелось бы идеально. Индикатор мультивалютный и потому необходимо копировать значение цен нескольких валютных пар. В тестере всё происходит замечательно. Но вот в реалтай возникают моменты когда неудаётся скопировать данные. Полистал справку и обратил внимание, Если интервал запрашиваемых данных полностью находится вне доступных данных на сервере, то функция возвращает -1. В случае если запрашиваются данные за пределами TERMINAL_MAXBARS (максимальное количество баров на графике), функция также вернет -1. Тоесть получается что копирование будет происходить нормально если график инструмента запущен и на графике есть доступная история. Решил попробовать, вставил в индикатор блок открытия чарта, после этого выполняю копирование и уже после этого удаляю график. Запускаю индикатор всё отлично, быстро открываются а потом закрываются графики и расчёт происходит правильно и нормально. Тоесть с технической стороны вроде решение нашёл. Но есть некрасивые моменты. Так как графики открываются/закрываются програмно то визуально это происходит с затормаживанием и я бы сказал с подвисанием терминала. Начал думать дальше. Ок, есть объект чарт. По сути тотже график и можно его расположить так чтобы его и видно небыло координаты задать с минусом например. так вот интересно в таком варианте будет ли аналогия наличия истории как на графике?... просто если эффект будет аналогичный то объекты можно и не удалять пока индикатор работает. Кто как справляется с подобными моментами , расскажите посоветуйте.