я проверял в прошлом году, вызов из ЕА iCustom() кэшируемый, т.е. если из ЕА вызовете на одном тике несколько раз iCustom() для разных буферов или индексов, то сам индикатор будет пересчитан один раз на этот тик, т.е. с производительностью там все в порядке
ЗЫ: зачем МТ4 - если МТ5 уже "раскушали", производительности больше, тестер точнее... в целом нормальная штука для исследований, имхо
я проверял в прошлом году, вызов из ЕА iCustom() кэшируемый, т.е. если из ЕА вызовете на одном тике несколько раз iCustom() для разных буферов или индексов, то сам индикатор будет пересчитан один раз на этот тик, т.е. с производительностью там все в порядке
ЗЫ: зачем МТ4 - если МТ5 уже "раскушали", производительности больше, тестер точнее... в целом нормальная штука для исследований, имхо
идеи легче отрабатывать на МТ4. Оболочка легче))) Нет так нет. Будем по дедовски в цикле в массив писать)))) В МТ5 масштабировать имеет смысл когда МТ4 перестает справляться)) а это либо медленно, либо слишком много данных. пока до этих этапов не дошел)))
добавлено. И когда идея отработана до допустимой ошибки.
Всем добрый день. Грааль машину практически-то закончил ваять, но у меня при компиляции около 50-60 предупреждений return value of 'OrderSend' should be checkedTREND+ _V_1,1.mq4162611
Насколько я понял это от того, что я открытие ордеров пишу без всякой проверки- вот так
//--- АО БАЙ--/*УСЛОВИЕ 1*/if(flag_screen1==en_vbIkl_screen1 &&flag_screen2==en_vbIkl_screen2)
{ // НАЧАЛО УСЛОВИЕ 1if(ao_buy!=EMPTY_VALUE && count_orders_market_buy ==0)
{
OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_buy); // ОТКРЫВАЕМ БАЙ ОРДЕР
}
} // КОНЕЦ УСЛОВИЕ1
Всем добрый день. Грааль машину практически-то закончил ваять, но у меня при компиляции около 50-60 предупреждений return value of 'OrderSend' should be checkedTREND+ _V_1,1.mq4162611
Насколько я понял это от того, что я открытие ордеров пишу без всякой проверки- вот так
напиши так
if(OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_buy)) Print(Buy Open); // ОТКРЫВАЕМ БАЙ ОРДЕР
'Open' - some operator expected TREND+_V_1,1.mq4 860 102
а сам код вот такой
if(OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_market_buy)) Print(Buy Open); // ОТКРЫВАЕМ БАЙ ОРДЕР
Всё как и советовалось написал, с тем лишь отличием что изменил имя переменной для коммента, чтобы разделять коммент рыночных и отложенных ордеров. Что не так делаю?(((
'Open' - some operator expected TREND+_V_1,1.mq4 860 102
а сам код вот такой
Всё как и советовалось написал, с тем лишь отличием что изменил имя переменной для коммента, чтобы разделять коммент рыночных и отложенных ордеров. Что не так делаю?(((
Тики приходят это видно по принтам но не копирует, как будто нет индикатора в терминале, только смена периода с индикатором помогает, далее после первого старта индикатор работает нормально.
BillionerClub: С первым стартом индикатора в методе OnCalculate не работает CopyRates
Тики приходят это видно по принтам но не копирует, как будто нет индикатора в терминале, только смена периода с индикатором помогает, далее после первого старта индикатор работает нормально.
Если интервал запрашиваемых данных полностью находится вне доступных данных на сервере, то функция возвращает -1. В случае если запрашиваются данные за пределамиTERMINAL_MAXBARS(максимальное количество баров на графике), функция также вернет -1.
При запросе данных из индикатора, если запрашиваемые таймсерии еще не построены или их необходимо загрузить с сервера, то функция сразу же вернет -1, но при этом сам процесс загрузки/построения будет инициирован.
При запросе данных из эксперта или скрипта, будет инициирована загрузка с сервера, если локально этих данных у терминала нет, либо начнется построение нужной таймсерии, если данные можно построить из локальной истории, но они еще не готовы. Функция вернет то количество данных, которые будут готовы к моменту истечения таймаута, но загрузка истории будет продолжаться, и при следующем аналогичном запросе функция вернет уже больше данных.
При запросе данных по начальной дате и количеству требуемых элементов возвращаются только данные, дата которых меньше (раньше) или равна указанной. При этом интервал задается и учитывается с точностью до секунды. То есть дата открытия любого бара, для которого возвращается значение (объем, спред, значение в индикаторном буфере, цена Open, High, Low, Close или время открытия Time), всегда равна или меньше указанной.
При запросе данных в заданном диапазоне дат возвращаются только данные, попадающие в запрашиваемый интервал, при этом интервал задается и учитывается с точностью до секунды. То есть время открытия любого бара, для которого возвращается значение (объем, спред, значение в индикаторном буфере, цена Open, High, Low, Close или время открытия Time), всегда находится в запрошенном интервале.
Таким образом, если текущий день недели Суббота, то при попытке скопировать данные на недельном таймфрейме с указанием start_time=Последний_Вторник и stop_time=Последняя_Пятница функция вернет 0, так как время открытия на недельном таймфрейме всегда приходится на воскресенье, но ни один недельный бар не попадает в указанный диапазон.
Если необходимо получить значение, соответствующее текущему незавершенному бару, то можно использовать первую форму вызова с указанием start_pos=0 и count=1.
CopyBuffer не нашел в мт4, только в мт5 В мт4 нет? есть простенько по номерам буферных массивов получить данные в мт4?
нет
в МТ4 это iCustom() https://docs.mql4.com/ru/indicators/icustom
я проверял в прошлом году, вызов из ЕА iCustom() кэшируемый, т.е. если из ЕА вызовете на одном тике несколько раз iCustom() для разных буферов или индексов, то сам индикатор будет пересчитан один раз на этот тик, т.е. с производительностью там все в порядке
ЗЫ: зачем МТ4 - если МТ5 уже "раскушали", производительности больше, тестер точнее... в целом нормальная штука для исследований, имхо
нет
в МТ4 это iCustom() https://docs.mql4.com/ru/indicators/icustom
я проверял в прошлом году, вызов из ЕА iCustom() кэшируемый, т.е. если из ЕА вызовете на одном тике несколько раз iCustom() для разных буферов или индексов, то сам индикатор будет пересчитан один раз на этот тик, т.е. с производительностью там все в порядке
ЗЫ: зачем МТ4 - если МТ5 уже "раскушали", производительности больше, тестер точнее... в целом нормальная штука для исследований, имхо
идеи легче отрабатывать на МТ4. Оболочка легче))) Нет так нет. Будем по дедовски в цикле в массив писать)))) В МТ5 масштабировать имеет смысл когда МТ4 перестает справляться)) а это либо медленно, либо слишком много данных. пока до этих этапов не дошел)))
добавлено. И когда идея отработана до допустимой ошибки.Всем добрый день. Грааль машину практически-то закончил ваять, но у меня при компиляции около 50-60 предупреждений return value of 'OrderSend' should be checked TREND+ _V_1,1.mq4 1626 11
Насколько я понял это от того, что я открытие ордеров пишу без всякой проверки- вот так
Всем добрый день. Грааль машину практически-то закончил ваять, но у меня при компиляции около 50-60 предупреждений return value of 'OrderSend' should be checked TREND+ _V_1,1.mq4 1626 11
Насколько я понял это от того, что я открытие ордеров пишу без всякой проверки- вот так
напиши так
напиши так
не фурычит данная строка кода:( сразу выдаёт 2 ошибки вот таких:
'Buy' - undeclared identifier TREND+_1,1.mq4 860 98
'Open' - some operator expected TREND+_V_1,1.mq4 860 102
а сам код вот такой
Всё как и советовалось написал, с тем лишь отличием что изменил имя переменной для коммента, чтобы разделять коммент рыночных и отложенных ордеров. Что не так делаю?(((Print("Buy Open");не фурычит данная строка кода:( сразу выдаёт 2 ошибки вот таких:
'Buy' - undeclared identifier TREND+_1,1.mq4 860 98
'Open' - some operator expected TREND+_V_1,1.mq4 860 102
а сам код вот такой
Всё как и советовалось написал, с тем лишь отличием что изменил имя переменной для коммента, чтобы разделять коммент рыночных и отложенных ордеров. Что не так делаю?(((я пропустил ""
Vladislav Andruschenko:
Print("Buy Open");Тики приходят это видно по принтам но не копирует, как будто нет индикатора в терминале, только смена периода с индикатором помогает, далее после первого старта индикатор работает нормально.
С первым стартом индикатора в методе OnCalculate не работает CopyRates
Тики приходят это видно по принтам но не копирует, как будто нет индикатора в терминале, только смена периода с индикатором помогает, далее после первого старта индикатор работает нормально.
Справка: CopyRates
Примечание