Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1453

 
ANDREY:

а какие же конкретно операции тестер делает с каждым тиком, если в программе под управлением которой он работает нет ни единого символа , который давал бы тестеру какую то команду?

Ну как, тестер создаёт имитацию работы рынка. Посылает в Ваш эксперт новую цену на каждом тике. А поскольку, тиков 53 тысячи, чтобы их все послать необходимо ощутимое время. Все это происходит ещё до исполнения кода советника. А что написать в советнике, это уже дело программиста и к работе тестера отношения не имеет.

 

В total time входит время работы прогона тестера и время подготовки тестера к работе. Время прогона тестера у Вас и там и там минимально (processed in). А подготовка занимает стандартное время независимо от режима.

 
ANDREY:
   

При тестировании ПО ЦЕНАМ ОТКРЫТИЯ - из 160 ордеров, которые открывались НА КАЖДОМ ТИКЕ,  открылось только 120 и к тому же не по внутриминутным ценам( как предписывает код) Наверное данная модель некоторым НЕпипсовочным стратегиям так же не подходит.

Тут всё в руках программиста: какую построить логику, как она будет работать, искать ошибки в понимании работы программы.

Работа по тикам на длительной истории занимает много времени. А поскольку, прогонов тестера будет огромное количество, то нужно сокращать время расчётов. Поэтому, лучше делать советник с контролем открытия нового бара и использовать режим - по ценам открытия. А дальше изучать, разбираться, что не так. 

 
Aleksei Stepanenko:

Ну как, тестер создаёт имитацию работы рынка. Посылает в Ваш эксперт новую цену на каждом тике. А поскольку, тиков 53 тысячи, чтобы их все послать необходимо ощутимое время. Все это происходит ещё до исполнения кода советника. А что написать в советнике, это уже дело программиста и к работе тестера отношения не имеет.

Спасибо за информацию.  Но мне кажется, что желтая и серая фразы противоречат друг другу. Получается, что к моменту начала  работы функции  OnTick() тестер уже пошлет в мой советник ВСЕ тики с ценами. А после того как начнет работать  OnTick(), тестер  тики с ценами в советник посылать не будет. Тогда что же , если не тики будут обрабатывать программные строки моего советника? Извините если я Вас неправильно понял.

 
Aleksei Stepanenko:

Тут всё в руках программиста: какую построить логику, как она будет работать, искать ошибки в понимании работы программы.

Работа по тикам на длительной истории занимает много времени. А поскольку, прогонов тестера будет огромное количество, то нужно сокращать время расчётов. Поэтому, лучше делать советник с контролем открытия нового бара и использовать режим - по ценам открытия. А дальше изучать, разбираться, что не так. 

А Вы согласны с тем, что если ордера открываются внутри минутной свечи на тиках, то модель ПО ЦЕНАМ ОТКРЫТИЯ БАРОВ не будет открывать ордера по ценам тиков внутри минутной свечи? Даже  если контролировать открытие каждой минутной свечи.

 
Aleksei Stepanenko:

В total time входит время работы прогона тестера и время подготовки тестера к работе. Время прогона тестера у Вас и там и там минимально (processed in). А подготовка занимает стандартное время независимо от режима.

То есть экономить время работы тестера  можно только на  processed in

 
Привет! Не знал куда написать немного не по теме, нужен индикатор для приложения Бинанс, там есть добавление «настраиваемого индикатора» прямым вводом кода. Если можете помочь - вот задание:
 
«Выявление импульсной свечи»

1. Сравнение размера тела только что закрытой свечи с предыдущими свечами (количество предыдущих свечей X (должно изменяться в окне параметров индикатора либо в самом коде?)

2. свеча должна быть больше предыдущих свечей на Y% (возможность изменения Y в окне параметров индикатора либо в коде)

3. Тени свечи составляют не более Z процентов от тела свечи (тоже должно меняться)

При срабатывании всех трёх условий высылать уведомление желательно на почту. 
Уже есть такой в формате luac, но нужен на Бинанс. 

 
ANDREY:

Получается, что к моменту начала  работы функции  OnTick() тестер уже пошлет в мой советник ВСЕ тики с ценами.

OnTick() - это функция отлова события, где событие - приход тика в терминал, или имитация прихода в тестере. Тики приходят последовательно друг за другом, и активируют функцию. И если в OnTick() есть код, то он отрабатывает каждый пришедший тик. Если приходит новый тик, в момент обработки старого, то новый тик не ставится в очередь, а пропускается (в режиме торговли). Если в OnTick() нет кода, то тик также активирует эту функцию, но кода там нет, значит отрабатывать нечего.

 
Aleksei Stepanenko:

OnTick() - это функция отлова события, где событие приход тика в терминал, или имитация прихода в тестере. Тики приходят последовательно друг за другом, и активируют функцию. И если в OnTick() есть код, то он отрабатывает каждый пришедший тик. Если приходит новый тик, в момент обработки старого, то новый тик не ставится в очередь, а пропускается. Если в OnTick() нет кода, то тик также активирует эту функцию, но кода там нет, значит отрабатывать нечего.

Понял.Спасибо.

 
Здравствуйте, помогите понять пожалуйста для чего нужен в PrintFormat() знак%, если без него в журнал выводятся значения как в Print()?
PrintFormat("%s %d: плечо = 1:%I64d",
               server,login,leverage);