Ошибки, баги, вопросы - страница 1494

 
zaskok3:

В MQL4++ без extern не могу обойтись, когда нужно поменять входные параметры программно.

Вам абсолютно ничего не мешает работать с обычными переменными. Для интерактивных индикаторов вообще не нужны по сути внешние const параметры, контролируемые не вашей же интерактивностью.

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

 
Joo Zepper:
Что Вы посоветуете владельцам нескольких мониторов? Каким образом можно организовать эффективную работу с терминалом? 

Все вкладки и служебные окна (тулбокс, тестер, обзор рынка, навигатор, окно данных, тулбары) вынести на отдельный монитор.

В окне терминала оставить только графики. Окно терминала растянуть на оставшиеся несколько мониторов, которые имеют одинаковые характеристики по размерам и разрешению

[Удален]  
o_O:

Вы бы лучше не требовали с таким видом объяснения почему нет этого события в МТ.

А писали бы в Сервисдеск с подробным пояснением как оно по вашему должно работать и зачем оно может быть нужно 99% трейдерам.

o_O:

Вам абсолютно ничего не мешает работать с обычными переменными. Для интерактивных индикаторов вообще не нужны по сути внешние const параметры, контролируемые не вашей же интерактивностью.

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

Не понимаю столь агрессивного восприятия спокойных рассуждений. Вам что-то нехорошее показалось... Этого нет, все хорошо, успокойтесь. Вы же не Р...

Maxim Khrolenko:
По-моему тут можно использовать OnTimer(), каждые Х миллисекунд вызывать событие.
o_O:
Этому решению уже давно придумано более точечный вариант - ставить индикаторы на нужные символы и отправлять пользовательское событие в эксперт.

В курсе, поэтому сразу и написал:

zaskok3:

Зачем-то предлагаются костыльные решения через таймер или еще большее извращение - OnChartEvent.

Slawa, мне не совсем понятна Ваша логика:

Slawa:

Каковы аргументы желающих тиков от чужих символов? "Я не хочу крутить таймер для отслеживания нужных символов, потому что могу опоздать к раздаче". А так как событие тика чужого символа (особенно если мониторится несколько символов) может быть задержано в очереди собственной же обработкой другого события, то тут с гораздо большей вероятностью будет опоздание к раздаче.

Поверьте, мы действительно обсуждали события о чужих тиках. Поэтому и пришли к выводу: "гораздо лучше использовать таймер"

Тогда с какой целью есть OnTick, если достаточно таймера и для своих тиков? У меня логика, возможно, работает неправильно. Но рассуждаю следующем образом: раз есть OnTick - должен быть и OnMarketWatch. Раз OnMarketWatch можно реализовать через OnTimer, то тоже самое можно сделать и с OnTick. Значит существование OnTick имеет те же обоснования, что и существование OnMarketWatch. Но один есть, а другого - нет.

OnTick-очередь обнуляется для тиков, которые были во время выполнения текущего OnTick (в советниках так). О каком переполнении очереди идет - не ясно. На выходных вхолостую гонять таймер - не разумно. В советниках же OnTick не срабатывает на каждом тике. Именно по этой причине нельзя собрать тики без пропусков в советнике. Очередь обнуляется, и это нормально. Никаких переполнений.

 

zaskok3:

Slawa, мне не совсем понятна Ваша логика:

Тогда с какой целью есть OnTick, если достаточно таймера и для своих тиков? У меня логика, возможно, работает неправильно. Но рассуждаю следующем образом: раз есть OnTick - должен быть и OnMarketWatch. Раз OnMarketWatch можно реализовать через OnTimer, то тоже самое можно сделать и с OnTick. Значит существование OnTick имеет те же обоснования, что и существование OnMarketWatch. Но один есть, а другого - нет.

OnTick-очередь обнуляется для тиков, которые были во время выполнения текущего OnTick (в советниках так). О каком переполнении очереди идет - не ясно. На выходных вхолостую гонять таймер - не разумно. В советниках же OnTick не срабатывает на каждом тике. Именно по этой причине нельзя собрать тики без пропусков в советнике. Очередь обнуляется, и это нормально. Никаких переполнений.

OnTick плавно перешёл из четвёрочной функции start

OnTick покрывает 99% потребностей и позволяет писать простые программы.

О переполнении очереди не идёт речи. Речь идёт о её разбухании - события не теряются.

Нет отдельных очередей для отдельных событий (OnTick-очередь). Очередь одна общая для всех событий одного эксперта.

Но очередь пополняется событиями вполне интеллектуально - если в очереди есть необработанное событие NewTick, то в неё не добавляются другие события NewTick. Если в очереди есть необработанное событие Timer, то другие события Timer в очередь не добавляются. И т.п.

Про разумность-неразумность таймера. На самом деле таймер не забирает так много ресурсов, как Вы думаете. В клиентском терминале, кстати работают одновременно несколько таймеров для собственных нужд терминала. Работают постоянно, загрузка процессора 0

[Удален]  
Slawa:

OnTick покрывает 99% потребностей и позволяет писать простые программы.

В 99% если в исходнике OnTick переобозвать на OnTimer, сделав инициализацию таймера еще (одна строчка), то результат не изменится - будет работать, как раньше и программа будет все так же простой.

OnTick плавно перешёл из четвёрочной функции start

А вот это да. Большинству привычнее. В этом основная причина.

Спасибо, что уделили столько внимания на разъяснения. Есть просьба добавить в кодобазу исходник реализации искусственной OnMarketWatch через таймер. В моей реализации мне приходится помнить предыдущие тики всех символов и на каждом шаге таймера сравнивать с текущими значениями. В случае различий, генерировать событие для вызова OnMarketWatch. И именно это действие и видится неразумным. Т.е. вхолостую OnTimer гонять на выходных не получается. Приходится все время сравнивать. Возможно, есть решение получше. Поэтому прошу Ваш вариант показать. Как бы Вы сделали.


А велосипеды с OnChartEvent попрежнему считаю извратом. Т.к. это требует открытия такого количества чартов, сколько символов в Обзоре рынка.

 
Друзья, сложилась возможно действително парадоксальная ситуация. 
В теории, если я правильно понимаю, в случае если подписчик сигнала увеличивает плечё на счёте от 1:200 до 1:500 - это должно привести минимум к повышению открываемых объёмов в два раза. верно ? 
И та же самая ситуация с нагрузкой депозита При её увеличении должны возрастать объёмы. 
Один из моих подписчиков пишет мне, что он увеличил плечё от 1:200 до 1:500 и нагрузку с 50 % до 90 %. Но после этого объём открываемых объёмов не изменился ни в какую сторону. При этом баланс его счёта должен был более, чем позволить это
Может я что -то не так понимаю в системе копирования ? 
 
Artem Prischepa:
...
Хватит задавать вопросы от имени мнимых (или вымышленных) подписчиков. Если у подписчика есть вопрос - пусть сам задаёт. В противном случае расценю как рекламу сигнала.
 
Karputov Vladimir:
Хватит задавать вопросы от имени мнимых (или вымышленных) подписчиков. Если у подписчика есть вопрос - пусть сам задаёт. В противном случае расценю как рекламу сигнала.
Боюсь вы меня не правильно поняли .Мой сигнал давно в рекламе не нуждается. Я стремлюсь сам разобраться в технических аспектах сервиса, которым пользуюсь. Тем не менее обращаются в первую очередь ко мне.
 
Artem Prischepa:
Боюсь вы меня не правильно поняли .Мой сигнал давно в рекламе не нуждается. Я стремлюсь сам разобраться в технических аспектах сервиса, которым пользуюсь. Тем не менее обращаются в первую очередь ко мне.
В таком случае изучите вопросы в теме FAQ по сервису Сигналы (первый пост).
[Удален]  

Это баг или мое слабое понимание языка:

void Func( int &Tmp )
{
  return;
}

void OnStart( void )
{
  int Tmp1, Tmp2;
  
  Func((0 > 1) ? Tmp1 : Tmp2); // '?' - parameter passed as reference, variable expected 
    
  return;
}