Добрый день!
при работе индикатора в журнале появляются сообщения об ошибках:
,а при перезапуске терминала открывается второй Offline график.
Не подскажите как с этим бороться?
Добрый день,
Спасибо за комментарий.
В приложенной ниже версии решен вопрос с открытием повторного графика.
По поводу HistoryBase ошибок, мне надо проработать и я обязательно отвечу позже.
С уважением,
Дмитрий.
По поводу HistoryBase ошибок, мне надо проработать и я обязательно отвечу позже.
Сразу скажу - неправильно создается автономный график, т. к. имеются повторные бары по времени. МТ4 этого не любит, хотя в тестере такое легко проходит.
В приложенной ниже версии решен вопрос с открытием повторного графика.
Странно, посмотрел новую выложенную вами версию, проблема с открытием нового графика при перезапуске терминала как была так и осталась, посмотрел код в шапке и код выложенный потом-они идентичны.
такое ощущение что вы залили не исправленный код а старый.
Странно, посмотрел новую выложенную вами версию, проблема с открытием нового графика при перезапуске терминала как была так и осталась, посмотрел код в шапке и код выложенный потом-они идентичны.
такое ощущение что вы залили не исправленный код а старый.
Новая версия во вложении сообщения. В CodeBase я залил новую версию, но она сейчас на проверке.
В новой версии я добавил в процедуру OnInit блок проверки открытого графика, и новый открывается только если такой график не найде
//--- Open new chart with hwnd=WindowHandle(_Symbol,999); if(hwnd==0) { chart=ChartOpen(_Symbol,999); if(chart<=0) return INIT_FAILED; //--- deleting all indicators from new chart (if its was opened by default template) //--- if you want use default template just delete this block for(int w=(int)ChartGetInteger(chart,CHART_WINDOWS_TOTAL)-1; w>=0; w--) for(int i=ChartIndicatorsTotal(chart,w)-1; i>=0; i--) { ResetLastError(); string indy_name=ChartIndicatorName(chart,w,i); if(ChartIndicatorDelete(chart,w,indy_name)) Print("Error to delete indicator "+indy_name+" "+(string)GetLastError()); } //--- save handle of new chart window hwnd=WindowHandle(_Symbol,999); } else { chart=ChartFirst(); while(chart>=0) { if(hwnd==ChartGetInteger(chart,CHART_WINDOW_HANDLE)) { break; } else { chart=ChartNext(chart); } } }
Я это понимаю и допускаю, так как часто бывает более 1 тика в секунду. А время в МТ4 задается с точностью до секунды.
Новая версия во вложении сообщения. В CodeBase я залил новую версию, но она сейчас на проверке.
В новой версии я добавил в процедуру OnInit блок проверки открытого графика, и новый открывается только если такой график не найде
Я и проверял версию из вложения вашего сообщения.
вот индикатор устанавливается на график:
вот результат: открыт offline график
теперь делаем перезапуск терминала(выключаем и снова включаем) : открыто 2 offline графика:
итак по нарастающей, перезапускаем ещё раз, получается 3 графика и т.д. , причём обновляется только последний открытый, а остальные нет.
Я и проверял версию из вложения вашего сообщения.
вот индикатор устанавливается на график:
вот результат: открыт offline график
теперь делаем перезапуск терминала(выключаем и снова включаем) : открыто 2 offline графика:
итак по нарастающей, перезапускаем ещё раз, получается 3 графика и т.д. , причём обновляется только последний открытый, а остальные нет.
Можно ли сделать так чтобы он рисовал свечки с заданным количеством тиков в каждой либо 10 или 50 сколько задашь?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Тиковый график:
Представленный индикатор строит полностью функциональный тиковый график, аналогичный стандартным ценовым графикам, с возможностью анализа всеми средствами MetaTrader.
Автор: Dmitriy Gizlyk