В моих ТС пропуск сигнала - страница 2

 
Evgeny Belyaev:

Я вас не понял. Русский это ваш родной язык?

почистили тему, сложно писать

 
Evgeny Belyaev:

Я вас не понял. Русский это ваш родной язык?

подополню - новое словечко. Даже Даль такого не знает.

как ты оказался в моей теме?

 

OnChartEvent события, не все срабатывают

прошу посмотреть кто использует, ошибку пока не могу найти

 

проблема есть, прошу совет или опыт у кого есть

рандомного механизма нет у меня в коде.

 
Fast235:

проблема есть, прошу совет или опыт у кого есть

рандомного механизма нет у меня в коде.

с какой-то стороны это недочёт вашего "сигнализатора" - небуферизуемые сигналы. Но это весьма сложно делать, и редко надо, поэтому чёрт с ним..

наличие сигнала надо проверять не только в OnChartEvent (или OnTimer), а вообще во всех кол-беках предоставленных терминалом. 

какой-нить CheckForSignal()  вызывать во всех OnXXX() в первую очередь. Для OnChartEvent выставить флаги CHART_EVENT_OBJECT_DELETE, и иже с ним, чтобы ВСЕ события ставились в очередь.

и запускать такое надо на самом активном символе. 

PS/ в "боевой обстановке" даже функция OnTimer используется не как вход от таймера - а просто посыл к тому.

 
Maxim Kuznetsov:

с какой-то стороны это недочёт вашего "сигнализатора" - небуферизуемые сигналы. Но это весьма сложно делать, и редко надо, поэтому чёрт с ним..

наличие сигнала надо проверять не только в OnChartEvent (или OnTimer), а вообще во всех кол-беках предоставленных терминалом. 

какой-нить CheckForSignal()  вызывать во всех OnXXX() в первую очередь. Для OnChartEvent выставить флаги CHART_EVENT_OBJECT_DELETE, и иже с ним, чтобы ВСЕ события ставились в очередь.

и запускать такое надо на самом активном символе. 

PS/ в "боевой обстановке" даже функция OnTimer используется не как вход от таймера - а просто посыл к тому.

спасибо Максим за советы, я специалист другой сферы и как обычно не все понял, тут

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

и такое было 5 лет назад еще почти с обычным ASCTrend с ним не проходил сигнал так же

 
Fast235:

спасибо Максим за советы, я специалист другой сферы и как обычно не все понял, тут

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

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

Когда работаете с более чем одним символом, эту функцию надо вызывать при любой возможности, во всех обработчиках.

OnTick() возникнет только при тике текущего инструмента, а тики по прочим будут убущены.

OnChartEvent() возникнет только при каких-то изменениях в текущем чарте. Опять-же если что поменялось в других, то сигнал будет упущен.

поэтому вызов проверки сигнала у вас должен быть ещё и в OnTimer, OnTrade и так далее. Как только управление попадет к советнику, он сразу и всегда проверяет наличие сигнала.

 
Maxim Kuznetsov:

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

Когда работаете с более чем одним символом, эту функцию надо вызывать при любой возможности, во всех обработчиках.

OnTick() возникнет только при тике текущего инструмента, а тики по прочим будут убущены.

OnChartEvent() возникнет только при каких-то изменениях в текущем чарте. Опять-же если что поменялось в других, то сигнал будет упущен.

поэтому вызов проверки сигнала у вас должен быть ещё и в OnTimer, OnTrade и так далее. Как только управление попадет к советнику, он сразу и всегда проверяет наличие сигнала.

там все идеально, передача номера символа события и новые бар все по номерам хендлов, ошибка может быть только, что не успевает где, то пропуски события

если это не надежная часть, перейду в онтаймер?
 
Fast235:

там все идеально, передача номера символа события и новые бар все по номерам хендлов, ошибка может быть только, что не успевает где, то пропуски события

если это не надежная часть, перейду в онтаймер?

Если-бы всё было идеально, темы форума бы не возникло.

"Л" - Логика.

 
Maxim Kuznetsov:

Если-бы всё было идеально, темы форума бы не возникло.

"Л" - Логика.

понимаю о чем вы, грубых ошибок точно нет, 

напомню что из 50 сделок вылазить пропуск, это примерно за пол дня

пропуск не открытия сделки, а принта сигнала нет

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