Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1039
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сервис -> Настройки -> Графики Макс баров истории и Макс баров в окне
Теперь скорость. Большинство индикаторов на каждом тике обрабатывают лишь один, последний бар. Или 2 при появлении нового бара. Но есть индикаторы, которые или по ошибке программирования или по специфическому алгоритму на каждом тике пересчитывают много или даже все бары. Во-первых, надо их выявить. Это можно сделать с помощью диспетчера задач, определив нагрузку на процессор. Или, что точнее, вставить в индикатор что-то вроде
Вряд ли индикатор должен пересчитывать все бары. Надо проверить 1) что возвращает индикатор оператором return 2) количество пересчитываемых баров в коде индикатора. 3) Макс баров в окне 4) индикаторы, вызываемые функцией iCustom, не обязаны находиться на графике. Иначе получается дублирование и увеличение нагрузки на процессор.
Для повышения грамотности текст набираю в Word и копирую через буфер обмена. А то 4 синтаксические и 1 запятая...
Доброго времени суток, коллеги!
Подскажите в чём проблема в этом кусочке кода:
Обращение к TF без квадратных скобок, т.е. без указания индекса - бессмысленно. Какой элемент массива использовать?
Предполагаю, что можно что-то вроде for(int NTF=0;NTF<6;NTF++) for(int i=iBars(NULL,TF[NTF]);i>=0;)
Доброго времени суток, коллеги!
Подскажите в чём проблема в этом кусочке кода:
TF - описан как массив из 6 элементов. т.е. есть: TF[0]=1, TF[1]=5, TF[2]=15, TF[3]=30 TF[4]=60 TF[5]=240
Обращение к TF без квадратных скобок, т.е. без указания индекса - бессмысленно. Какой элемент массива использовать?
Предполагаю, что можно что-то вроде for(int NTF=0;NTF<6;NTF++) for(int i=iBars(NULL,TF[NTF]);i>=0;)
Спасибо, ребят)
То есть, то, что в первом операторе for(int TF=0;TF<6;TF++) я задал переменную TF, то компилятор путает его с массивом?
Дело хуже... Дважды объявляется TF 1) как массив 2) как целая переменная. Второе объявление закрывает (делает невидимым, почти уничтожает) первое.
Компилятор выдает сначала предупреждение: declaration of 'TF' hides local declaration ... Второе объявление TF скрывает предыдущее. Теперь TF уже не массив, а целая переменная. Поэтому последующее применение TF[] требует наличия массива, который уже скрыт, и ошибка: '[' - array required Требуется массив.
Дело хуже... Дважды объявляется TF 1) как массив 2) как целая переменная. Второе объявление закрывает (делает невидимым, почти уничтожает) первое.
Компилятор выдает сначала предупреждение: declaration of 'TF' hides local declaration ... Второе объявление TF скрывает предыдущее. Теперь TF уже не массив, а целая переменная. Поэтому последующее применение TF[] требует наличия массива, который уже скрыт, и ошибка: '[' - array required Требуется массив.
От оно что.. ясно, большое спасибо.
Всё поправил, ошибок больше не выдаёт (впрочем, меня смутил тот факт, когда я объявил вместо переменной TF переменную f, не было ошибок с использованием далее в коде TF[TF]),
но скрипт не открывается в терминале, может дело в предупреждениях?
Сервис -> Настройки -> Графики Макс баров истории и Макс баров в окне
Теперь скорость. Большинство индикаторов на каждом тике обрабатывают лишь один, последний бар. Или 2 при появлении нового бара. Но есть индикаторы, которые или по ошибке программирования или по специфическому алгоритму на каждом тике пересчитывают много или даже все бары. Во-первых, надо их выявить. Это можно сделать с помощью диспетчера задач, определив нагрузку на процессор. Или, что точнее, вставить в индикатор что-то вроде
Вряд ли индикатор должен пересчитывать все бары. Надо проверить 1) что возвращает индикатор оператором return 2) количество пересчитываемых баров в коде индикатора. 3) Макс баров в окне 4) индикаторы, вызываемые функцией iCustom, не обязаны находиться на графике. Иначе получается дублирование и увеличение нагрузки на процессор.
Для повышения грамотности текст набираю в Word и копирую через буфер обмена. А то 4 синтаксические и 1 запятая...
Ekburg!!! Все предупреждения надо устранить. Первое предупреждение означает, что оператор не имеет эффекта - отброшен компилятором - это плохо. Последнее предупреждение - размер локальной переменной (массив) превышает 512 кБ и потому его нет - это очень плохо. Остальные предупреждения - возможно использование неинициализированной переменной. Это как на карту деньги забыли положить, а пытаемся тратить. Надо проверить все ветви программы. Иногда компилятор перестраховывается. Тогда надо объявлять так: int x=0; string y=""; bool z=false;