Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я запутался
убрал окончание i-- в первом цикле упс. но это не повлияло.
С одним небольшим изменением ваш код, кажется, делает что-то...
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[0]= 0
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[1]= 0
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[2]= 0
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[3]= 0.8202
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[4]= 0.8202
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[5]= 0.8202
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[6]= 0.8202
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[7]= 0.8202
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[8]= 0
"При объявлении массива должны быть указаны тип данных, имя массива и количество элементов каждого измерения:".
С одним небольшим изменением ваш код, кажется, делает что-то...
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[0]= 0
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[1]= 0
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[2]= 0
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[3]= 0.8202
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[4]= 0.8202
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[5]= 0.8202
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[6]= 0.8202
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[7]= 0.8202
2011.09.21 11:24:41 2007.04.05 21:11 Agent86_5min AUDUSD,H1: v1[8]= 0
"При объявлении массива должны быть указаны тип данных, имя массива и количество элементов каждого измерения:".
Как я понял, double v1[] определяет тип данных глобально и перед start().
Затем [i] инициализирует массив, сообщая ему, сколько элементов в массиве, в данном случае 1 измерение с элементами = Bars, однако число меняется при деинкрементации i--.
верно?
Итак, если число элементов деинкрементируется, то как буфер сохраняет и публикует индикатор, если число элементов больше не существует?
Или, наверное, я должен сказать, что происходит с элементами при деинкрементации [i]?
Они просто исчезают? Они все еще хранятся в v1[i], чтобы на них можно было ссылаться, или они исчезают?
Если я смогу выяснить это, возможно, я смогу понять, как ссылаться на них или, если они исчезли, я смогу понять, как сохранить их для использования.
Я не могу понять, что оператор else, похоже, может ссылаться на v1[i]=v1[i+1] Так как же он может ссылаться на v1[i], если в этот момент v1[i] = 0, когда я печатаю в этой точке.
Это вроде как имеет смысл для = 0 в некотором смысле, потому что если массив пуст, то он будет печатать пустой массив как 0, так как в массиве нет элементов.
Я не уверен, что действительно понимаю это, но я продолжаю думать об этом и читать документ снова и снова.
Теперь, учитывая, что если Bars имеет более 1 числа, связанного с ним, то размерность может быть другой, чем я думаю.
Так что я думаю, что мне нужно прочитать больше об этом, чтобы быть уверенным, что я понимаю, что это такое на самом деле.
Я думал, что это просто подсчет одного числа, как в Bar=количество баров на графике.
Когда я печатаю Bars, это дает мне 1002 на 5-минутном графике, и я думаю, что это одно измерение.
Буду продолжать работать над этим.
Если вы хотите сделать массив больше (или меньше), вам нужно использовать ArrayResize... Массив - это такая же переменная, как и любая другая ... просто их может быть много, и вы можете легко получить к ним доступ ....
Скопируйте этот код и запустите его как скрипт, как вы думаете, что получится на выходе?
2011.09.21 07:54:26 none EURUSD,M5: uninit reason 0
2011.09.21 07:54:26 none EURUSD,M5: deinitialized
2011.09.21 07:54:26 none EURUSD,M5: test[39]= 0
2011.09.21 07:54:26 none EURUSD,M5: initialized
Вот что выдает скрипт Я скопировал его в точности
Я просто дважды щелкнул по нему и он запустился и вот что появляется на вкладке эксперты
В журнале скрипта просто написано
2011.09.21 07:54:26 Script none EURUSD,M5: removed
2011.09.21 07:54:26 Script none EURUSD,M5: loaded successfully
Я думал, что должен увидеть 45.6 в качестве вывода? Я не прав?
Я создал свой фиксированный массив[5] = {1,2,3,4,5}
И, кажется, могу вывести Print[5] или Print[3] и т.д.
дайте мне вставить скобки и посмотреть скрипт снова
Хорошо, хорошо... теперь отредактируйте эту строку...
. ... и попробуйте снова.
2011.09.21 08:07:58 none EURUSD,M5: деинициализация
2011.09.21 08:07:58 none EURUSD,M5: test[39]= 45.6
Черт, надо бежать, вернусь через пару часов.
Может быть, я смогу еще немного подумать об этом за рулем.
Здесь действительно не о чем думать. ...
"При объявлении массива должны быть указаны тип данных, имя массива и количество элементов каждого измерения:".
Вы должны объявить количество элементов в массиве ...
Интересно
Я думал, что объявление количества элементов делается с помощью v1[i]? Поскольку i=Bars, я думал, что это то же самое, что сказать v1[Bars], который является любым числом.
Если оно не объявлено, то я не понимаю, как индикатор узнает, что такое v1[i], если я тоже не могу на него сослаться?Этот же скрипт работает на версии индикатора и хранит это в буфере v1[], так откуда он знает, как ссылаться на буфер, чтобы нарисовать линию?
Сейчас это работает на индикаторе. Это другая тема?
Да, индикаторные буферы обрабатываются иначе, чем обычные массивы.
v[i] не является объявлением массива, это просто один из элементов ... но double v[]; - это массив с нулевыми элементами ... поэтому v[anything] всегда = 0