[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 525
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Roll:
5940 --Начальный индекс исходного массива для копирования 10 последних баров (бар - 6 индексов).
Уважаемые эксперты, а нет ли ошибки в учебнике?
Вот мои рассуждения:
В начале кода вызывается ф-я int ArrayCopyRates, которая копирует в двухмерный массив, вида RateInfo[][6], данные баров текущего графика и возвращает количество скопированных баров, либо -1 в случае неудачи, согласно примера этой ф-ии:
текущим баром является бар с индексом 0-0, таким образом , возвращаясь к первоначальному коду, мы копируем элемент с индексом 0-0 (текущий бар) массива array1 , в массив array2 с начальным индексом 0-0, мы получаем 10 последних баров ( где последний бар - это текущий бар, бар с индексом [0]), что противоречит написанному в учебнике… и соответственно , копируя элемент с индексом Bars*6-60,60 массива array1 в массив array2 с начальным индексом элемента 0 мы получаем информациию о барах из истории.
Здравствуйте.
Есть пользовательский индикатор.
Пишу советника..и встал вопрос...как обратиться к моему индикатору? А именно взять данные из указанного бара(в моем случае необходимо взять 2-ого бара). Есть windowsPriceMax, но насколько я понял, выводит только последнее значение графика подокна и то не понятно, если к примеру у меня 3 линии на индикаторе, что он выведет?
Здравствуйте.
Есть пользовательский индикатор.
Пишу советника..и встал вопрос...как обратиться к моему индикатору? А именно взять данные из указанного бара(в моем случае необходимо взять 2-ого бара). Есть windowsPriceMax, но насколько я понял, выводит только последнее значение графика подокна и то не понятно, если к примеру у меня 3 линии на индикаторе, что он выведет?
double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)
Расчет указанного пользовательского индикатора. Пользовательский индикатор должен быть скомпилирован (файл с расширением EX4) и находиться в директории каталог_терминала\experts\indicators.
Параметры:
symbol - Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.
timeframe - Период. Может быть одним из периодов графика. 0 означает период текущего графика.
name - Имя пользовательского индикатора.
... - Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.
mode - Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer.
shift - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).
Спасибо. Помогли. Думал, что так вызываются лишь iMac*** iStoch*** индикаторы, которые шли предустановленные.
Уважаемые эксперты, а нет ли ошибки в учебнике?
Вот мои рассуждения:
В начале кода вызывается ф-я int ArrayCopyRates, которая копирует в двухмерный массив, вида RateInfo[][6], данные баров текущего графика и возвращает количество скопированных баров, либо -1 в случае неудачи, согласно примера этой ф-ии:
текущим баром является бар с индексом 0-0, таким образом , возвращаясь к первоначальному коду, мы копируем элемент с индексом 0-0 (текущий бар) массива array1 , в массив array2 с начальным индексом 0-0, мы получаем 10 последних баров ( где последний бар - это текущий бар, бар с индексом [0]), что противоречит написанному в учебнике… и соответственно , копируя элемент с индексом Bars*6-60,60 массива array1 в массив array2 с начальным индексом элемента 0 мы получаем информациию о барах из истории.
Не делая громких заявлений, проверяем на практике:
Не делая громких заявлений, проверяем на практике:
Да, на практике действительно получается, что элемент с индексом Bars*6-60,60 - текущий бар... тогда как объяснить, что в примере :
текущий бар - array1[0][0], а после копирования массива он становится array1[Bars*6-60,60][0]... получается что где-то происходит перенумерация... конечно результат понятен после использования функции на практике... но логика напутана, на мой взгляд)))Да, на практике действительно получается, что элемент с индексом Bars*6-60,60 - текущий бар...
Это Ваш вывод.
Не делая громких заявлений, проверяем на практике:
Ну так тут распринтован канкретный элемент массива TimeToStr(array2[a][0]
То что вывело верно, я согласен. Но причём тут Bars*6-60 ... Вместо Bar подставляется при расчёте значение чего? Если баров, то как выходит, что последние 10 баров?
Можно заметить, на форуме не только я этого не понял, а многие.
Получается что количество всех баров умножить на 6 и минус 60. Откуда мы взяли 6 ? Да и вообще бессмыслица какая-то.
Ну так тут распринтован канкретный элемент массива TimeToStr(array2[a][0]
То что вывело верно, я согласен. Но причём тут Bars*6-60 ... Вместо Bar подставляется при расчёте значение чего? Если баров, то как выходит, что последние 10 баров?
Можно заметить, на форуме не только я этого не понял, а многие.
int Bars -- Количество баров на текущем графике.