for (j=2; j<6; j++) { double x = iClose(pairs[j], timeframe, i); if (x>0) index += 1.0 / x; }А строку:
for (int j=1; j<3; j++) index += iClose(pairs[j], timeframe, i);может лучше записать так?
for (int j=0; j<3; j++) index += iClose(pairs[j], timeframe, i);Да и в следующей строке 2 надо бы исправить на 3.
Вот исправленный и работающий вариант кода:
double USD_Index(int i, int timeframe) { string pairs[6] = { "USDCHF", "USDJPY", "USDCAD", "EURUSD", "GBPUSD", "AUDUSD" }; double index = iClose(pairs[0], timeframe, i); for (int j=1; j<3; j++) index += iClose(pairs[j], timeframe, i); for (j=3; j<6; j++) if (iClose(pairs[j], timeframe, i) > 0) index += 1.0/iClose(pairs[j], timeframe, i); return(index/6.0); }
Вы не знаете, почему бар может исчезнуть?
Вы не знаете, почему бар может исчезнуть?
Встречный вопрос. А Вы не знаете, почему у Вас опрос массива pairs[6] начинается со второго элемента, то есть с j=1?
double index = iClose(pairs[0], timeframe, i);Поэтому дальнейший опрос массива ведется со второго элемента. Т.е. я сократил количество выполняемых операций на единицу (лишней была бы инициализация нулем: double index = 0;, т.к. index можно сразу проинициализировать первым элементом массива). Хотя такая мелочь не влияет на скорость работы программы, все равно приятно, когда лишнее отсутствует...
Я хотел написать программу для вывода графиков индексов отдельных валют (здесь была приведена функция подсчета индекса USD).
Интерфейс программы довольно неуклюжий, т.к. чтобы выбирать между валютами, по которым будет подсчитан индекс, в программе введена внешняя переменная c_number. Ее значениям соответствуют различные валюты, напр. USD соответствует c_number=0, EUR соответствует c_number=1 и т.д.
Хотелось бы, чтобы в свойствах индикатора была возможность выбирать валюту из меню (т.е. нужно создать меню), т.к. никогда не упомнишь какая цифра за что отвечает. Еще было бы неплохо, если бы можно было в том же окне со свойствами выбирать для данной валюты соотв. валютные пары, по которым будет считатьсяи индекс.
Мне кажется, в MetaTrader этого сделать не получится. Или можно как-то ухитриться?
Хотелось бы, чтобы в свойствах индикатора была возможность выбирать валюту из меню (т.е. нужно создать меню), т.к. никогда не упомнишь какая цифра за что отвечает. Еще было бы неплохо, если бы можно было в том же окне со свойствами выбирать для данной валюты соотв. валютные пары, по которым будет считатьсяи индекс.
Мне кажется, в MetaTrader этого сделать не получится. Или можно как-то ухитриться?
Всё что вы хотите вполне реализуемо в МТ4.
Насчёт создания меню и интерактивного управления запущенным экспертом можно глянуть пример вот здесь:
'Графический эксперт AutoGraf'
Спасибо за ссылку! На днях обязательно разберусь со статьей.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Почему следующий код
работает на графиках вплоть до D1, но не работает на W1 и MN?
P.S. В поисках ошибки, если в index += 1.0/iClose(pairs[j], timeframe, i) убрать деление, т.е. заменить на index += iClose(pairs[j], timeframe, i), то программа работает на всех таймфреймах.