Параллельная работа индикатора и советника

 

Возник вопрос по параллельной работе индикатора и советника.

Индикатор(И) ведет обработку поступающей информации и выдает сигнал через глобальную переменную советнику.

Советник(С) ожидает сигналы и выполняет их команды.

Если действия в И и С происходят по приходу одного и того же тика, то могут получаться разные варианты по времени обработки.

Может кто объяснит этот момент? Думаю не мне одному это интересно.

 
Если советник зациклен и период итерации меньше, чем время между тиками, то количество "вариантов" сведено к минимуму.
 
Я только так и делаю.
 

Если советник зациклен и период итерации меньше, чем время между тиками.

Не совсем понимаю как это может быть?

Думаю что итерация это начало нового тика. Тик одновременно приходит в терминал для И и С. Далее не понятно.

 
Зацикленный советник не зависит от прихода тиков.
 
Zhunko:
Зацикленный советник не зависит от прихода тиков.

Не пойму однако.

Зацикленный это значит в цикле. Есть начало и завершение цикла.

Что в таком случае является повторной командой начала цикла? Или периодом цикличности?.

 

Временная задержка которую вы ему укажете. В виде примера :

void start(){
   while(!IsStopped()){
       ваш код для исполнения  
       Sleep(100);
   }
return;
}
 
FAQ:

Временная задержка которую вы ему укажете. В виде примера :

Удовлетворен вразумительным ответом. Благодарю.
 
Кстати, да. Весьма разумный подход. Простой, НО.. грамотный. Присоединяюсь к благодарности.
 

1. Не забудьте RefreshRates() в начале цикла.

2. Насчет хорошести. Ничего особо хорошего в этом нет, потому-что окно свойств становится недоступным. Подход для особых крайних случаев.

3. Передавать данные из индикатора в советник глобальной переменной, вообще не здоровый подход. Существует функция iCustom() для получения данных индикаторов.

 
Integer:

1. Не забудьте RefreshRates() в начале цикла.

2. Насчет хорошести. Ничего особо хорошего в этом нет, потому-что окно свойств становится недоступным. Подход для особых крайних случаев.

3. Передавать данные из индикатора в советник глобальной переменной, вообще не здоровый подход. Существует функция iCustom() для получения данных индикаторов.


1) Однозначно.

2) В этом режиме вся обработка всех событий ложится на плечи программиста.

3) Передача данных через глобалки оправдана только в тестере, в некоторых редких случаях, только для визуализации, и от эксперта к индикатору.

Да. Зацикленные эксперты в тестере не работают.

Причина обращения: