Integer:
Проверьте, есть ли что-нибудь в DataArray до сортировки. Возможно массиву размер не задан. Функция ArraySort работает нормально.
Проверьте, есть ли что-нибудь в DataArray до сортировки. Возможно массиву размер не задан. Функция ArraySort работает нормально.
в initе задаю ArrayResize(Buffer,Period)
если при инициализации буфера ему задавать размерность, то всё равно при сортировке выдаёт 0
dzhini:
в initе задаю ArrayResize(Buffer,Period)
если при инициализации буфера ему задавать размерность, то всё равно при сортировке выдаёт 0
А результат изменения размера проверили?
Чтобы другим не гадать и, возможно, сразу указать на ошибку, приведите весь код, касающийся описанной проблемы.
//+------------------------------------------------------------------+ //| Indicator.mq4 | //| Copyright © 2015, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2015, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Violet #property indicator_width1 2 #property indicator_color2 Red #property indicator_width2 2 extern int Period=60; double Buffer[]; double Buffer2[]; double Count[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0,Buffer); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,Buffer2); SetIndexBuffer(2, Count); SetIndexEmptyValue(2,0); ArrayResize(Count,Period); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int limit, i; //---- indicator calculation if(counted_bars<0) return(-1); //---- last counted bar will be recounted limit=(Bars-counted_bars)-1; //---- for(i = 1; i >= 0; i--) { // заполнение массива for(int j = Period; j >= 0; j--) { double HL = MathAbs(High[i+j+1]-Low[i+j+1]); Count[j] = HL; } bool Sort=ArraySort(Count,WHOLE_ARRAY,0,MODE_ASCEND); //сортировка for(j = 0; j < Period; j++) { //проверка Print(Count[j]); } ................. ................. } //---- return(0); }
И какой-же результат ты хочешь получить.? Заполняешь массив Count[] а сортируешь и печатаешь значения массива StdDv[]
AlexeyVik:
И какой-же результат ты хочешь получить.? Заполняешь массив Count[] а сортируешь и печатаешь значения массива StdDv[]
Ошибка вышла, но не та, которую вы обозначили. При копировании кода забыл поменять в тексте сообщения StdDv[] на Count[] . Сейчас всё правильно.
И какой-же результат ты хочешь получить.? Заполняешь массив Count[] а сортируешь и печатаешь значения массива StdDv[]
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
При сортировке массива ArraySort заполняет его 0-ми.
Вначале заполняю массив данными, проверку на заполнение проходит. Потом сортирую массив по методичке:
Делаю проверку и весь массив оказывается заполнен 0-ми.
Проверял возвращаемое значение функции, оно всегда было true.
Что делать?