[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 526

 
hoz:

 

 Получается что количество всех баров умножить на 6 и минус 60. Откуда мы взяли 6 ? Да и вообще бессмыслица какая-то. 

Справочник MQL4 - Операции с массивами - ArrayCopyRates
 
Roll:



int Bars -- Количество баров на текущем графике.

 


Ну а откуда последние 10 взялись тогда?

 int Bars = 10 000;

Тогда Bars*6 - 60 = 10 000*6 - 60 =60 000 - 60 = 59 960;

 Значение  59 960 больше чем значение Bars. А это уже значит, что он вышло за пределы массива. Да и 10 тут нигде не прослеживается..

 
hoz:

 Получается что количество всех баров умножить на 6 и минус 60. Откуда мы взяли 6 ? Да и вообще бессмыслица какая-то. 

 Чтобы не усугублять путаницу, хочу исправить ошибку, допущенную мной в предыдущем ответе,  запись   "array1[Bars*6-60,60][0] " - не правильна, т.к. Bars*6 - это общее количество элементов а массиве array1.  Каждый бар имеет по 6 свойств, допустим у нас имеется 30 баров,   умножив их на 6,  мы получим количество элементов в первом массиве - 180 . Второй массив имеет всего 60 свободных "ячеек" (т.е. 10 х 6 свойств), поэтому мы должны выбрать только 60 элементов из первого массива для копирования. С помощью выражения [Bars*6-60,60] мы из общего количества вычитаем 60,т.е 180 - 60 = 120, т.е. 120 элемент первого массива запишется в нулевой элемент второго, 121 в 1-й и.т.д. , другой вопрос каким образом получается,  что информация о последих сформировавшихся барах  содержатся не в начале первого массива, а в конце... но видимо ответ кроется в коде функции, и глубже капать уже нет смысла...
 
hoz:


Ну а откуда последние 10 взялись тогда?

 int Bars = 10 000;

Тогда Bars*6 - 60 = 10 000*6 - 60 =60 000 - 60 = 59 960 -- ошибка!!!

 Значение  59 960 больше чем значение Bars. А это уже значит, что он вышло за пределы массива. Да и 10 тут нигде не прослеживается..


Виктор, не волнуйтесь, у Вас всё впереди. "Опыт -- сын ошибок трудных ..." Идите от простого к сложному, а не наоборот:

" ПРОГРЕСС (от лат. progressus — движение вперед),  направление развития, для которого характерен переход от низшего к высшему, от менее совершенного к более совершенному. О прогрессе можно говорить применительно к системе в целом, отдельным ее элементам, структуре развивающегося объекта. Понятие прогресс противоположно понятию регресс.

РЕГРЕСС (от лат. regressus — обратное движение), тип развития, для которого характерен переход от высшего к низшему. Противоположен прогрессу."

 
Roll:


Виктор, не волнуйтесь, у Вас всё впереди. "Опыт -- сын ошибок трудных ..." Идите от простого к сложному, а не наоборот:

" ПРОГРЕСС (от лат. progressus — движение вперед),  направление развития, для которого характерен переход от низшего к высшему, от менее совершенного к более совершенному. О прогрессе можно говорить применительно к системе в целом, отдельным ее элементам, структуре развивающегося объекта. Понятие прогресс противоположно понятию регресс.

РЕГРЕСС (от лат. regressus — обратное движение), тип развития, для которого характерен переход от высшего к низшему. Противоположен прогрессу."


а почему бы просто не объяснить человеку? не помочь на пути к прогрессу? а все эти рассуждения о регрессе больше похожи на занудство преподавателя...
 
Lisi4ka330:
 Чтобы не усугублять путаницу, хочу исправить ошибку, допущенную мной в предыдущем ответе,  запись   "array1[Bars*6-60,60][0] " - не правильна, т.к. Bars*6 - это общее количество элементов а массиве array1.  Каждый бар имеет по 6 свойств, допустим у нас имеется 30 баров,   умножив их на 6,  мы получим количество элементов в первом массиве - 180 . Второй массив имеет всего 60 свободных "ячеек" (т.е. 10 х 6 свойств), поэтому мы должны выбрать только 60 элементов из первого массива для копирования. С помощью выражения [Bars*6-60,60] мы из общего количества вычитаем 60,т.е 180 - 60 = 120, т.е. 120 элемент первого массива запишется в нулевой элемент второго, 121 в 1-й и.т.д. , другой вопрос каким образом получается,  что информация о последих сформировавшихся барах  содержатся не в начале первого массива, а в конце... но видимо ответ кроется в коде функции, и глубже капать уже нет смысла...
 
Roll:


Виктор, не волнуйтесь, у Вас всё впереди. "Опыт -- сын ошибок трудных ..." Идите от простого к сложному, а не наоборот:

" ПРОГРЕСС (от лат. progressus — движение вперед),  направление развития, для которого характерен переход от низшего к высшему, от менее совершенного к более совершенному. О прогрессе можно говорить применительно к системе в целом, отдельным ее элементам, структуре развивающегося объекта. Понятие прогресс противоположно понятию регресс.

РЕГРЕСС (от лат. regressus — обратное движение), тип развития, для которого характерен переход от высшего к низшему. Противоположен прогрессу."


 Евгений, я конечно, могу всё понять НО, это написано в так называемом учебнике. Как мне идти от простого, где смотреть ? Если ты сам программист, возможно, для тебя это очевидно. Но я не въехал совсем.

 Да и ветка для новичков, я же задаю вопросы по теме.. Уже второй день пытаюсь понять. Пожалели бы уже, и объяснили бы кто-нибудь. :( 

 А по поводу:

Lisi4ka330:
 .. но видимо ответ кроется в коде функции, и глубже капать уже нет смысла...

  Если не копать, то и понять не возможно. А если не понять, то пользоваться тоже не получится в полной мере.

 
hoz:


 Евгений, я конечно, могу всё понять НО, это написано в так называемом учебнике. Как мне идти от простого, где смотреть ? Если ты сам программист, возможно, для тебя это очевидно. Но я не въехал совсем.

 Да и ветка для новичков, я же задаю вопросы по теме.. Уже второй день пытаюсь понять. Пожалели бы уже, и объяснили бы кто-нибудь. :( 

 А по поводу:


  Если не копать, то и понять не возможно. А если не понять, то пользоваться тоже не получится в полной мере.


Учите сторонние языки программирования, типа Бейсик, Паскаля, Си по книжкам, где всё жуётся ОТ и ДО, если вообще не шАрите или нанимайте репетитора. 

Потом за 2 недели с синтаксисом мкл4,5 ознакомитесь + торговые ф-ии и порядок работы терминала и всё. Чем так... страдать...

ИМХО!

 
Roman.:

если вообще не шАрите или нанимайте репетитора. 

 Про вообще.. дело не идёт. Вопрос не такой уж и простой. Да и ветка для кого это, для профи что-ли? Я уже и по Си книгу читаю, нет там тоже подобного. Тут логика абы какая, а не синтаксис. Книжки этому не учат.
 
hoz:

 Про вообще.. дело не идёт. Вопрос не такой уж и простой. Да и ветка для кого это, для профи что-ли? Я уже и по Си книгу читаю, нет там тоже подобного. Тут логика абы какая, а не синтаксис. Книжки этому не учат.

Естественно, нет. Если разберётесь и поднатаскаетесь с работой с массивами на БАЗОВЫХ языках, то подобные вопросы будете щелкать легко!  Тут логика в соответствие простоте восприятия и исчисления баров (текущий имеет индекс "0") - читайте массивы-таймсерии. Даже, если Вы и нашли какой-либо "глюк" (люди также находили...) в доке, то пишите напрямую с "Сервисдеск" на пятом форуме и не парьте мозг ни себе, ни людям и кичиться этим не надо... Бывает...

Причина обращения: