Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ну вот пример: когда новый бар в терминал приходит, новая ячейка же имеет 0 номер. А если посмотреть на underlying data, то увидим, что на самом деле она - последняя в массиве.
А проверку делали. Я просто это не проверял, потому как таким способом не пользуюсь. Достаточно для примера простого скрипта или индикатора. С выводом контрольных цифр (чисел).
А проверку делали. Я просто это не проверял, потому как таким способом не пользуюсь. Достаточно для примера простого скрипта или индикатора. С выводом контрольных цифр (чисел).
Если бы это было не так, то вот это бы, полагаю, не работало? Кроме того, мне кажется именно такой способ адресации самым логичным - гораздо проще переназначить индексы, чем двигать данные.
Если бы это было не так, то вот это бы, полагаю, не работало? Кроме того, мне кажется именно такой способ адресации самым логичным - гораздо проще переназначить индексы, чем двигать данные.
MQL4 и MQL5 довольно сильно различаются и по логике, и по механизмам исполнения. Что можно в одном, нельзя в другом. И наоборот. Пример неудачный
MQL4 и MQL5 довольно сильно различаются и по логике, и по механизмам исполнения. Что можно в одном, нельзя в другом. И наоборот. Пример неудачный
там есть версии и для четверки, и для пятерки. Работают они одинаково, различие версий только в синтаксисе.
Исследование показало, что механизмы адресации массивов не различаются.
если он адресуется как Series, то да. функция ArraySetAsSeries не изменяет внутреннего расположения данных, она только "разворачивает" их адресацию. Оператор [] это не то же самое, что в с++, он не просто берет значение по такому-то смещению, а сначала проверяет, в каком порядке адресуется массив и при необходимости вычисляет новый индекс. Я недавно, когда статью писАл, этот вопрос исследовал.
Не сводите меня с ума! ))) Вот результат простенького скрипта с вашим "предложением" и с тем, как правильно.
Как и было ожидаемо, в вашем случае (без предварительного до ресайза переворота массива) пустая ячейка (#5) добавляется в КОНЕЦ массива. Хоть индексного, хоть нет. Это НЕ годится для эмкуляции индикаторного буфера.
Код скрипта:
НЕ МОЖЕТ БЫТЬ
------
пошел стреляться
НЕ МОЖЕТ БЫТЬ
------
пошел стреляться
У Митьков есть картина "Митьки отнимают пистолет у Маяковского".
Жаль, что я не художник...)))
мда... надо будет покопать поподробнее, но, похоже, что либо а) при ресайзе массива с обратной индексацией действительно происходит сдвиг в памяти реальных данных либо б) индикаторные буферы все же несколько больше отличаются от обычных массивов, чем я предполагал. Между тем, факт того, что индекс [] это всего лишь псевдоним, установлен достоверно - сам разглядывал адреса ячеек в памяти и убеждался, что при изменении направления индексации данные остаются на месте.
Прошу прощения, что заставил пыхтеть над скриптами, надо было сначала самому.
Чисто для пользователя сдвига при ресайзе как раз и не происходит. Просто добавляется ячейка с новым старшим номером. Приходится его - сдвига как в инд.буфере - добиваться вот таким вот "подвыподвертом". А что там происходит в памяти...
Вы, кажется, слегка себя перехитрили. "Многия знания...")))