Получается что этих данных (402082) не достаточно для расчета индикатора?
Я думал что функция BarsCalculated должна выдавать ошибку (-1) если данных для расчета не хватает
Похоже на то, что терминал продолжает подкачивать историю - соответственно индикатор всё время пересчитывается. Или другой вариант: в терминале у Вас выставлено ОЧЕНЬ большое число баров для отображения на графике, а Ваш компьютер ОЧЕНЬ слабый.
Добавлено.
Проверил на MetaTrader 5 x64 build 2470 и при настройках "Показывать баров" 100000 - при этом история давно закачена. Код отработал на отлично.
Похоже на то, что терминал продолжает подкачивать историю - соответственно индикатор всё время пересчитывается. Или другой вариант: в терминале у Вас выставлено ОЧЕНЬ большое число баров для отображения на графике, а Ваш компьютер ОЧЕНЬ
Спасибо за помощь!
При выборе другой даты, расчет происходит сразу. При первом тесте присутствовал разрыв в цене, возможно пропуск некоторых цен - скорее всего проблема в этом.
Здравствуйте! Есть индикатор для MT5 "Grid Builder", он рисует горизонтальные линии с шагом цены. Можно выбрать например 100п, 200п и тд. И строится горизонтальная сетка вверх и вниз с заданным шагом. Но у него одна проблема, например, когда я на таймфрейме H4 рисую свою графические горизонтальные уровни( ставлю горизонтальные линии из инструментов рисования в терминале) и переключаю на любой другой таймфрейм, все мои линии удаляются. А остаются только горизонтальные уровни индикатора. Как в коде исправить эту ошибку? Чтобы мои горизонтальные уровни никогда не удалялись. Вот код индикатора. (Вопрос писал уже в другой теме, но там пока ответа нету)
//+------------------------------------------------------------------+//| GridBuilder.mq5 |//| Copyright 2015, AM2 |//| https://www.forexsystems.biz |//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link "https://www.forexsystems.biz"
#property version "1.00"
#property indicator_chart_window
//---- для расчёта и отрисовки индикатора использовано ноль буферов
#property indicator_buffers 0//---- использовано всего ноль графических построений
#property indicator_plots 0//--- входные параметры
input int count = 50; //количество линий вверх вниз от цены
input int step = 333; //шаг линий
input double pr = 1.4622; //цена от которой пляшем//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int OnInit()
{
//--- indicator buffers mapping
ObjectsDeleteAll(0,0,OBJ_HLINE);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(constint reason)
{
Comment("");
ObjectsDeleteAll(0,0,OBJ_HLINE);
}
//+------------------------------------------------------------------+ //| Создает горизонтальную линию | //+------------------------------------------------------------------+ bool HLine(conststring name="HLine",double price=0)
{
//--- создадим горизонтальную линию if(!ObjectCreate(0,name,OBJ_HLINE,0,0,price))
{
Print(__FUNCTION__,
": не удалось создать горизонтальную линию! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет линии
ObjectSetInteger(0,name,OBJPROP_COLOR,clrGreen);
ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
return(true);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int OnCalculate(constint rates_total,
constint prev_calculated,
const datetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
double price=pr;
//--- создадим горизонтальную линию for(int i=0;i<=count;i++)
{
HLine("HLine"+(string)i,price+step*i*_Point);
HLine("HLine"+(string)(i+count+1),price-step*i*_Point);
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
Здравствуйте! Есть индикатор для MT5 "Grid Builder", он рисует горизонтальные линии с шагом цены. Можно выбрать например 100п, 200п и тд. И строится горизонтальная сетка вверх и вниз с заданным шагом. Но у него одна проблема, например, когда я на таймфрейме H4 рисую свою графические горизонтальные уровни( ставлю горизонтальные линии из инструментов рисования в терминале) и переключаю на любой другой таймфрейм, все мои линии удаляются. А остаются только горизонтальные уровни индикатора. Как в коде исправить эту ошибку? Чтобы мои горизонтальные уровни никогда не удалялись. Вот код индикатора. (Вопрос писал уже в другой теме, но там пока ответа нету)
[in] Префикс, по которому будут удалены все объекты, чьи имена начинаются с данного набора символов. Префикс можно указывать как 'name' или 'name*' – оба варианта работают одинаково. Если в качестве префикса указана пустая строка, то будут удалены объекты с любым именем. Функция использует синхронный вызов – это...
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Доброго всем дня!
При обращении к хендлу индикатора ATR, первые 30-ть секунд выдает странные значения.
Не могу понять в чем причина?
Доброго все дня!
При обращении к хендлу индикатора ATR, первые 30-ть секунд выдает странные значения.
Не могу понять в чем причина?
А готовность индикатора проверяете?
(вместо 'handle' вставьте свой хендл)
Получается что этих данных (402082) не достаточно для расчета индикатора?
Я думал что функция BarsCalculated должна выдавать ошибку (-1) если данных для расчета не хватает
Получается что этих данных (402082) не достаточно для расчета индикатора?
Я думал что функция BarsCalculated должна выдавать ошибку (-1) если данных для расчета не хватает
Похоже на то, что терминал продолжает подкачивать историю - соответственно индикатор всё время пересчитывается. Или другой вариант: в терминале у Вас выставлено ОЧЕНЬ большое число баров для отображения на графике, а Ваш компьютер ОЧЕНЬ слабый.
Добавлено.
Проверил на MetaTrader 5 x64 build 2470 и при настройках "Показывать баров" 100000 - при этом история давно закачена. Код отработал на отлично.
Похоже на то, что терминал продолжает подкачивать историю - соответственно индикатор всё время пересчитывается. Или другой вариант: в терминале у Вас выставлено ОЧЕНЬ большое число баров для отображения на графике, а Ваш компьютер ОЧЕНЬ
Спасибо за помощь!
При выборе другой даты, расчет происходит сразу. При первом тесте присутствовал разрыв в цене, возможно пропуск некоторых цен - скорее всего проблема в этом.
Здравствуйте! Есть индикатор для MT5 "Grid Builder", он рисует горизонтальные линии с шагом цены. Можно выбрать например 100п, 200п и тд. И строится горизонтальная сетка вверх и вниз с заданным шагом. Но у него одна проблема, например, когда я на таймфрейме H4 рисую свою графические горизонтальные уровни( ставлю горизонтальные линии из инструментов рисования в терминале) и переключаю на любой другой таймфрейм, все мои линии удаляются. А остаются только горизонтальные уровни индикатора. Как в коде исправить эту ошибку? Чтобы мои горизонтальные уровни никогда не удалялись. Вот код индикатора. (Вопрос писал уже в другой теме, но там пока ответа нету)
Здравствуйте! Есть индикатор для MT5 "Grid Builder", он рисует горизонтальные линии с шагом цены. Можно выбрать например 100п, 200п и тд. И строится горизонтальная сетка вверх и вниз с заданным шагом. Но у него одна проблема, например, когда я на таймфрейме H4 рисую свою графические горизонтальные уровни( ставлю горизонтальные линии из инструментов рисования в терминале) и переключаю на любой другой таймфрейм, все мои линии удаляются. А остаются только горизонтальные уровни индикатора. Как в коде исправить эту ошибку? Чтобы мои горизонтальные уровни никогда не удалялись. Вот код индикатора. (Вопрос писал уже в другой теме, но там пока ответа нету)
Обратите внимание на этот код:
В частности прочтите про ObjectsDeleteAll() - там и причина и ответ как подправить.
Обратите внимание на этот код:
В частности прочтите про ObjectsDeleteAll() - там и причина и ответ как подправить.
Спасибо!!! Разобрался, теперь работает без удаления.
Операции с базой SQLite доступны из тестера ? Я про добавление и изменение данных.
Доступны. Только следите за расположением базы. Они создаются так-же как и файлы.