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

 
Ilya Malev:

Там нужно было считать не все, а только до расчета Ишимоку. Все это время count было больше либо равно 0, а потом -1. Вообще это не имеет значения. Важно, что

...

Идея в том, чтобы пользователь видел количество входов в OnCalculate. При этом в самой OnCalculate, при результате работы CopyBuffer более нуля выводятся сообщения об удачном получении в буфер значений. В итоге визуально видно количество удачных заходов в OnCalculatе.
 
Karputov Vladimir:
Идея в том, чтобы пользователь видел количество входов в OnCalculate. При этом в самой OnCalculate, при результате работы CopyBuffer более нуля выводятся сообщения об удачном получении в буфер значений. В итоге визуально видно количество удачных заходов в OnCalculatе.

Я понимаю, просто уже уехали чуть дальше этого примера. Его использовали, разобрались и вернулись к основной проблематике. Пример подтвердил, что с первого запуска расчета не происходит в выходные. У меня подтвердил, во всяком случае. Приходилось бы постоянно нажимать на "Обновить". Мне лично кажется, что для пользователей это неприемлемо. Поэтому буду пытаться сделать через OnTimer.

[Удален]  

Дождаться готовности таймсерий в OnCalculate нельзя, т.к. все подвиснет. Поэтому, если не готово, то делаем EventTimer на милисекунду, а в OnTimer проверяем готовность. Как только готовы таймсерии, вызываем OnCalculate и убиваем таймер через KillTimer.

У меня вопрос в другом, как убедиться на 100%, что сейчас все нужные таймсерии готовы или нет? 

 

Похоже OnTimer в индикаторах, которые вызываются из других индикаторов, вообще не запускается. Поэтому через OnTimer обновлять их не получится. Похоже придется смириться с десятками лишних нажатий на "Обновить" график в процессе работы, по сравнению с МТ4.

И как на зло придется каждый раз это делать мышкой из меню, потому что ни на панели инструментов нет этой опции, ни горячей клавиши у неё нет. А индикаторы бывают "тяжелые", которые строятся значительно дольше 1 секунды.

 
Ilya Malev:

... А индикаторы бывают "тяжелые", которые строятся значительно дольше 1 секунды.

Сталкивался с проблемой "тяжелых" индикаторов. Посмотрите ссылки по порядку - Вам будет интересно. 

1. Видео с иллюстрацией проблемы тяжелого индикатора. Ключевой момент - один тяжелый индикатор по символу тормозит работу всех советников на этом символе. Даже на другом чате!!! Тяжелые индикаторы это зло :)

2. Тема с описанием и вариантами решения проблемы

3. Решение проблемы в рамках маркета

 
Andrey Miguzov:

Сталкивался с проблемой "тяжелых" индикаторов. Посмотрите ссылки по порядку - Вам будет интересно. 

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

Проблема у меня сейчас в том, что обсчета всех используемых в данном индикаторе других индикаторов невозможно дождаться при первом же запуске OnCalculate, само же OnCalculate вызывается повторно только при следующем тике, которых в выходные к примеру нет совсем. OnTimer вместо (или вместе с) OnCalculate использовать не получится, потому что OnTimer вообще не вызывается в индикаторах которые были вызваны не пользователем, а например вызваны из другого индикатора с помощью iCustom (пока по моим тестам выходит именно так). Хотелось бы найти решение чтобы индикатор мог в автоматическом режиме после запуска дожидаться расчета всех используемых в нем индикаторов и выдать информацию без вмешательства пользователя (без регулярных нажатий им кнопки "Обновить" из ниспадающего меню графика, если частоты прихода новых тиков для этого недостаточно).

 
Ilya Malev:

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

Проблема у меня сейчас в том, что обсчета всех используемых в данном индикаторе других индикаторов невозможно дождаться при первом же запуске OnCalculate, само же OnCalculate вызывается повторно только при следующем тике, которых в выходные к примеру нет совсем. OnTimer вместо (или вместе с) OnCalculate использовать не получится, потому что OnTimer вообще не вызывается в индикаторах которые были вызваны не пользователем, а например вызваны из другого индикатора с помощью iCustom (пока по моим тестам выходит именно так). Хотелось бы найти решение чтобы индикатор мог в автоматическом режиме после запуска дожидаться расчета всех используемых в нем индикаторов и выдать информацию без вмешательства пользователя (без регулярных нажатий им кнопки "Обновить" из ниспадающего меню графика, если частоты прихода новых тиков для этого недостаточно).

Если ставить задачу таким образом - то действительно такой необходимости нет.

Но, можно создать эксперта - который будет создавать индикаторы, получать от них данные, обрабатывать эти данные и передавать результат в индикатор-визуализатор. Тогда не будет всех описанных Вами проблем. И многоих других тоже...

Решение не очень красивое, но от описанных проблем помогает избавиться.  

 

ЗДРАВСТВУЙТЕ, ПОДСКАЖИТЕ КОГДА ОТКРЫВАЕШЬ РЕАЛЬНЫЙ СЧЕТ НА МТ5, ТО В ТЕЧЕНИИ КАКОГО ВРЕМЕНИ ДОЛЖЕН ПОЗВОНИТЬ СОТРУДНИК КОМПАНИИ И ЗАВЕРШИТЬ ПРОЦЕДУРУ ОТКРЫТИЯ СЧЕТА?

 
galustyan10:

ЗДРАВСТВУЙТЕ, ПОДСКАЖИТЕ КОГДА ОТКРЫВАЕШЬ РЕАЛЬНЫЙ СЧЕТ НА МТ5, ТО В ТЕЧЕНИИ КАКОГО ВРЕМЕНИ ДОЛЖЕН ПОЗВОНИТЬ СОТРУДНИК КОМПАНИИ И ЗАВЕРШИТЬ ПРОЦЕДУРУ ОТКРЫТИЯ СЧЕТА?

А кричать-то зачем? Никто никому не звонит, а логин и пароль Вы получаете при регистрации счёта. Как правило это личный кабинет на сайте брокера.

 
Ошибка компиляции: 'a' - is not static member
class A     { int a; };
class B : A { void a(); };
void B::a() {}
а так 
class A     { int a; };
class B : A { void a() {} };
нормально. А в чём разница?