qee:
Всем здравствуйте!
Написал скрипт, которой должен выводить последние пять значений High[]
Помогите!
Всем спасибо!
Всем здравствуйте!
Написал скрипт, которой должен выводить последние пять значений High[]
double F[] = {0}; int k = 0; void start() { int i = 1; while(i<6) { F[k] = High[i]; ================================================ k++; ArrayResize(F,k+1); ================================================ i++; } while (k<ArraySize(F)) { Alert(F[k]); k++; } }Не могу найти ошибку.
Помогите!
Всем спасибо!
Все равно не работает.
Результат "0".
Вас не удивляет, почему в алерте открывается только одно значение,
в то время как в массиве несколько больше элементов? Вставтье
k=0; перед вторым циклом. А последний элемент будет равен нулю.
qee:
Написал скрипт, которой должен выводить последние пять значений High[]
А так ?
Написал скрипт, которой должен выводить последние пять значений High[]
double F[1] = {0}; int k = 0; void start() { int i = 1; while(i<6) { F[k] = High[i]; ArrayResize(F,k+1); k++; i++; } k=0; while (k<ArraySize(F)) { Alert(F[k]); k++; } }
Всем спасибо
получилось:
А теперь другой вопрос.
Как сделать так чтобы скрипт выдавал результаты для всех таймфреймов?
Т.е. хотелось чтобы скрипт содержал массив T[1,5,15,30,60,240,1440,10080,43200]
получилось:
double F[1] = {0}; int k = 0; void start() { int i = 1; while(i<6) { F[k] = High[i]; if (i==5) break; k++; ArrayResize(F,k+1); i++; } k=0; while (k<ArraySize(F)) { Alert(F[k]); k++; } }Заработало.
А теперь другой вопрос.
Как сделать так чтобы скрипт выдавал результаты для всех таймфреймов?
Т.е. хотелось чтобы скрипт содержал массив T[1,5,15,30,60,240,1440,10080,43200]
double F[1] = {0}; int k = 0; int T[]={1,5,15,30,60,240,1440,10080,43200}; int ti = 0; void start() { while (ti<ArraySize(T)) { ArrayResize(F,1); F[1] = {0}; int i = 1; while(i<6) { F[k] = iHigh(NULL,T[ti],i); if (i==5) break; k++; ArrayResize(F,k+1); i++; } k=0; while (k<ArraySize(F)) { Alert(F[k]," ",T[ti]); k++; } ti++; } }
Получился вот такой код.
Работает правильно только для минуток(для первого элемента
массива).
Все остальные результаты мне не понятны.
Подскажите кто что сможет!
Помогите, пожалуйста!
А такой кусок кода не устраит?
double F[9][5]; int T[]={1,5,15,30,60,240,1440,10080,43200}; void start() { int i,j; // Формирование массива for (i=0;i<9;i++) { for (j=0;j<5;j++) { F[i,j] = iHigh(NULL,T[i],j+1); } } // Вывод массива for (i=0;i<9;i++) { for (j=0;j<5;j++) { Alert(F[i,j]," ",T[i]); } } }
Код не оптимальный, но верный. Не хватает одной строчки.
После int i = 1; добавить k=0;

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Написал скрипт, которой должен выводить последние пять значений High[]
Не могу найти ошибку.
Помогите!
Всем спасибо!