Я могу и ошибаться, но, по моему, Вы вообще не представляете как работает советник. Что значит "выполняется программа"?
Совет-подсказка - разберитесь, для начала, что такое OnInit, OnTick и OnDeinit. Думаю, после этого всё встанет на свои места )))
Вообще судя по вашему ответу, Вы сами не очень понимаете, как работает программа. Раз кажется, что это глупый вопрос. Да как и предыдущий комментатор думает, что она останавливается. Просто по опыту программирования в других языках думаю, что она выполняет в цикле своё тело, и когда событие приходит, она в него ныряет. Если программа выполняет в цикле своё тело, то это объясняет, почему так написана программа.
Всем доброго времени суток! Я тестирую советника в МТ4. Подскажите пожалуйста, при помощи какой языковой конструкции , или функции на MQL4 сделать так , что бы функция Print() печаталась в Журнале Тестера МТ-4 только 1 раз и только с последним значением часа. Вот простой код.
int g;
voidOnTick()
{
if (Hour()>g)
{
Print("------------------------------------=",Hour());
g=Hour();
}
}
А мне нужно что бы Print() печатался в Журнале МТ-4 только один раз с последним значением часа. Логично было бы после появления в Журнале последней функции Print() удалять предпоследнюю, то есть предыдущую запись Print(). Я знаю как удалить ордер, графический объект. Но как удалить из Журнала запись Print() пока не знаю.
Данные типа double выводятся с точностью до 16 десятичных цифр после точки, при этом данные могут выводиться либо в традиционном либо в научном формате – в зависимости от того, как запись будет наиболее компактна. Данные типа float выводятся с 5 десятичными цифрами после точки. Для вывода вещественных чисел с другой точностью либо в явно...
Valeriy Yastremskiy: Нет. Тик не обрывает эксперт. Если эксперт работает, пришедшие тики пропускаются. Когда закончит, в режиме ожидания следующий тик запустит его заново.
По вашей логике выходит, что программа никогда не пойдёт на функцию установки лота. Но так написана программа от официального издателя. Я написал порядок функций в предыдущих постах.
Я еще раз спрошу, растёкся мыслями с предыдущими комментаторами. В официальном примере предложено считать объём лотовый в теле программы, но разве не логично вычислять его на каждом тике? Для чего написано в теле программы?
Есть скрипт. Запустить его из советника стандартными средствами нельзя. Значит нужно его добавить в советник как функцию. Но уж очень не хочется при правке скрипта делать такие же правки в советнике. Как решить? Инклюдниками?
Ivan_Invanov: По вашей логике выходит, что программа никогда не пойдёт на функцию установки лота. Но так написана программа от официального издателя. Я написал порядок функций в предыдущих постах.
Инициализация и деиницидизация работают один раз. В начале и в конце.
Ivan_Invanov: Вообще судя по вашему ответу, Вы сами не очень понимаете, как работает программа. Раз кажется, что это глупый вопрос. Да как и предыдущий комментатор думает, что она останавливается. Просто по опыту программирования в других языках думаю, что она выполняет в цикле своё тело, и когда событие приходит, она в него ныряет. Если программа выполняет в цикле своё тело, то это объясняет, почему так написана программа.
Судя по Вашему комменту - это и Вы не понимаете. (((
Тут не "другие языки", тут MQL !!!
Совет и Вам - разберитесь как именно работает эта связка.
Ivan_Invanov: Да, не понимаю, вот я и спрашиваю. Я знаю, что ontick это событие, только мне непонятно, куда потом идёт советник. Он пойдёт потом по телу программы и выполнится рассчёт объема лота? или не пойдёт? почему тогда так написан советник от официального издателя.
И Вы полагаете, что кто-то тут лично для Вас начнёт переписывать документацию? Вот именно для Вас? И именно сюда? Почешитесь сами....
Ivan_Invanov: Да, не понимаю, вот я и спрашиваю. Я знаю, что ontick это событие, только мне непонятно, куда потом идёт советник. Он пойдёт потом по телу программы и выполнится рассчёт объема лота? или не пойдёт? почему тогда так написан советник от официального издателя.
Вы бы показали код(но вы должны понимать что если вы код покажете значит авторское право у всех на виду) и ребята посмотрят схему советника и скажут что вызывается что нет открывается сделка или нет.
Я могу и ошибаться, но, по моему, Вы вообще не представляете как работает советник. Что значит "выполняется программа"?
Совет-подсказка - разберитесь, для начала, что такое OnInit, OnTick и OnDeinit. Думаю, после этого всё встанет на свои места )))
Всем доброго времени суток! Я тестирую советника в МТ4.
Подскажите пожалуйста, при помощи какой языковой конструкции , или функции на MQL4 сделать так , что бы функция Print() печаталась в Журнале Тестера МТ-4 только 1 раз и только с последним значением часа. Вот простой код.
Print() печатается в Журнале МТ- 4 на каждом часе
А мне нужно что бы Print() печатался в Журнале МТ-4 только один раз с последним значением часа. Логично было бы после появления в Журнале последней функции Print() удалять предпоследнюю, то есть предыдущую запись Print(). Я знаю как удалить ордер, графический объект. Но как удалить из Журнала запись Print() пока не знаю.
Спасибо за помощь
Нет. Тик не обрывает эксперт. Если эксперт работает, пришедшие тики пропускаются. Когда закончит, в режиме ожидания следующий тик запустит его заново.
Калаш или Максим? ))))))))))))
Вопрос:
Есть скрипт. Запустить его из советника стандартными средствами нельзя. Значит нужно его добавить в советник как функцию. Но уж очень не хочется при правке скрипта делать такие же правки в советнике. Как решить? Инклюдниками?
По вашей логике выходит, что программа никогда не пойдёт на функцию установки лота. Но так написана программа от официального издателя. Я написал порядок функций в предыдущих постах.
Вообще судя по вашему ответу, Вы сами не очень понимаете, как работает программа. Раз кажется, что это глупый вопрос. Да как и предыдущий комментатор думает, что она останавливается. Просто по опыту программирования в других языках думаю, что она выполняет в цикле своё тело, и когда событие приходит, она в него ныряет. Если программа выполняет в цикле своё тело, то это объясняет, почему так написана программа.
Судя по Вашему комменту - это и Вы не понимаете. (((
Тут не "другие языки", тут MQL !!!
Совет и Вам - разберитесь как именно работает эта связка.
Все другие функции - это производные.
Разбирайтесь.
Да, не понимаю, вот я и спрашиваю. Я знаю, что ontick это событие, только мне непонятно, куда потом идёт советник. Он пойдёт потом по телу программы и выполнится рассчёт объема лота? или не пойдёт? почему тогда так написан советник от официального издателя.
И Вы полагаете, что кто-то тут лично для Вас начнёт переписывать документацию? Вот именно для Вас? И именно сюда? Почешитесь сами....
Да, не понимаю, вот я и спрашиваю. Я знаю, что ontick это событие, только мне непонятно, куда потом идёт советник. Он пойдёт потом по телу программы и выполнится рассчёт объема лота? или не пойдёт? почему тогда так написан советник от официального издателя.
Вы бы показали код(но вы должны понимать что если вы код покажете значит авторское право у всех на виду) и ребята посмотрят схему советника и скажут что вызывается что нет открывается сделка или нет.