Несколько общих вопросов по выполнению скрипта

Страницы: 1
RSS
Несколько общих вопросов по выполнению скрипта
 
Я новичок в луа - поэтому такие вопросы. Как я понял в скрипте в общем случае работает одна функция майн и несколько коллбэков. В функции майн обязательно крутится бесконечный цикл с некоторым временным прерыванием слип ( как в скрипте квипл). Так как в коллбэках нельзя (не рекомендуется) выполнять какие либо обработки и вычисления событий (так как это может "повесить" систему), то мы их обрабатываем в функции майн. То есть мы получаем сигнал от коллбэка и обрабатываем его в майне. Допустим коллбэк "он квота" просигналил что в стакане что то изменилось и я в функции майн с помощью функции  "гетквоталевел" смотрю что там. Отсюда вопрос - зачем нужно использовать коллбэк "он квота", когда я могу просто постоянно опрашивать стакан "гетквоталевелом"? Ведь задержка  в получении данных будет одна и таже ( придет ли сигнал от коллбэка или поймается "гетквоталевел") и она будет определятся параметром слип
 
Использование сигналов от колбеков позволяет избежать лишних запросов к данным из main.

особенно это актуально на редких колбеков типа ontrade или onfutureslimit
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
Дмитрий написал:
То есть мы получаем сигнал от коллбэка и обрабатываем его в майне. Допустим коллбэк "он квота" просигналил что в стакане что то изменилось и я в функции майн с помощью функции  "гетквоталевел" смотрю что там
Вообще так делать не рекомендую. колбек просигналит что есть данные. но мейн запрашивает данные позже. пока он их запросит стакан может вообще стать пустым и в мейте получите пустую таблицу.
Цитата
Дмитрий написал:
Отсюда вопрос - зачем нужно использовать коллбэк "он квота", когда я могу просто постоянно опрашивать стакан "гетквоталевелом"?
при постоянном опросе есть шанс пропустить данные между этими проверками(это касаемо стакана). при использовании колбека будет обработана вся информация.
если время обработки не существенно то используйте спокойно колбек.

если существенно и можно часть данных пропустить переносите обработку просто в main с опросом через getquotelevel2.
если существенно и нельзя данные пропускать: собираете эти данные в колбеке, запихиваете в таблицу обработки. шлете сигнал на обработку. в мейне ждете этот сигнал и обрабатываете таблицу.
 
Цитата
Антон написал:
если существенно и нельзя данные пропускать: собираете эти данные в колбеке, запихиваете в таблицу обработки. шлете сигнал на обработку. в мейне ждете этот сигнал и обрабатываете таблицу.
Теперь более понятно. То есть все данные мы получаем в коллбэке, но так как они не могут быть сразу обработаны в майне из за наличия прерывания, то они записываются в таблицу, а в майне мы уже дополнительным циклом считываем те данные из таблицы, которые появились к моменту опроса
 
Совместный тест Луа и Квипл показал, что статусы заявок обновляются одновременно миллисекунда в миллисекунду, что при ловле OnOrder(), что при опросе GET_ITEM("ORDERS"). Поэтому пока погодим перебегать на Луа.
Страницы: 1
Читают тему
Наверх