Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всё зависит от того, какая логика заложена в пользовательский индикатор. В принципе, может и раз в сутки пересчитывать свои значения, пропуская все остальные тики. По воле автора, так сказать.
В принципе, некоторые пытаются использовать такой чудовищный подход: создать копию индикатора через iCustom, скопировать нужные данные, уничтожить копию индикатора. По мере необходимости процедуру повторяют.
..Ещё есть функция OnTimer(). Сам с ней не работал, но, может быть, Вам удастся её скомпоновать под свою задачу.
Спасибо. Так и думал. OnTimer не подходит.
Есть ситуация, когда индикатор на M5, но обращение к нему происходит раз в час к примеру. Получается, что индикатор будет рассчитываться в советнике в холостую каждые 5 минут ради вызова его раз в час. Поэтому и интересуюсь - нет ли возможности приостановить пересчет индикатора.
Есть ситуация, когда индикатор на M5, но обращение к нему происходит раз в час к примеру. Получается, что индикатор будет рассчитываться в советнике в холостую каждые 5 минут ради вызова его раз в час.
А переписать индикатор так, чтоб и он рассчитывался ежечасно, не получается?
торговля идет на M5. Неизвестно, когда будет вызов индикатора. Может быть раз в два часа, а может быть три раза за час. Индикатор используется для подтверждения решения о сделке.
Здравствуйте! Скажите пожалуйста,
1)Что делать с ошибками типа TRADE_RETCODE_LOCKED, TRADE_RETCODE_FROZEN и в каком случае блокируется запрос или морозится позиция/ордер?
2)Также интересно, что делать с TRADE_RETCODE_INVALID_FILL и в каком случае она возникает?
Здравствуйте! Скажите пожалуйста,
1)Что делать с ошибками типа TRADE_RETCODE_LOCKED, TRADE_RETCODE_FROZEN и в каком случае блокируется запрос или морозится позиция/ордер?
2)Также интересно, что делать с TRADE_RETCODE_INVALID_FILL и в каком случае она возникает?
1) Посмотрите поиском по форуму. С год назад обсуждалось.
2) Смотрите в Справочнике ENUM_ORDER_TYPE_FILLING. Вероятно, несоответствие в торговом запросе заданного "типа ордера по исполнению" режиму исполнения и приведёт к указанному коду возврата.
Например, ORDER_FILLING_FOK и SYMBOL_TRADE_EXECUTION_MARKET.
Возникло подозрение, что если индикатор активирован через iCustom, то он рассчитывается на каждом тике. И это не зависит от обращений к нему через CopyBuffer. Это верно?
Если верно, то можно ли отключить пересчет индикатора и включить только перед обращением к CopyBuffer ?
Если я правильно Вас понял, то ограничить расчёты на последующих тиках можно попробовать по примеру из справки по iFractals (см. множественные условия в OnCalculate).
Ещё, вероятно, можно флагировать в OnCalculate через true первичное выполнение индикаторных расчётов на всех необходимых барах и проверять серверное время терминала, а по наступлению оного с необходимым шагом t сбрасывать флаг в false, тем самым разрешив перерасчёт, и снова ставить в true... и так далее.
Ну или даже так: написать внешнюю функцию с расчётами, вызвать её в OnInit, где она отработает единожды при первом запуске индикатора (а также при смене ТФ и т. п., что происходит по инициативе пользователя), а затем эту же функцию вызывать в OnCalculate вторым способом (по наступлению заданного времени на сервере и флагированием).
Но первый способ всё же хорош тем, что не просто не грузит процессор полными перерасчётами (зачастую ни к каким новым результатам не ведущими вовсе) на каждом тике, но даже не будет делать полные перерасчёты через заданный интервал времени, а лишь будет обсчитывать самые новые бары (если на каждом тике, то по одному новому, а если раз в t, то несколько накопившихся за это время). ...Хотя этот вариант лучше уточнить лично, могу ошибаться... К тому же всё зависит от конкретной цели индикатора. Если он зависит от большой или даже всей истории рынка, то от пересчётов всей истории никуда не деться.
Не понял юмора шутки (пишу индикатор, хотя без разницы):
Компилируется без ошибок и предупреждений.
Компилируется с 1 error(s), 0 warning(s): 'elements' - invalid index value.
Что тут может быть мимо очевидного здравого смысла??
Что тут может быть мимо очевидного здравого смысла??
число элементов массива задается константой
если число элементов заранее не известно, то чтоб задавать размер с помощью переменных пользуйтесь ArrayResize.
Это азы c++.
поэтому или