ArrayResize(Buffer,limit) - не пробовал?
основное правило во всех программах - инициализация переменных, деинициализация переменных..кроме тех случаев где ты уверен что инициализация не требуется..
Бредовая проблема:
....
double Buffer[];
....
int start() {
...
for(i = 0; i < limit; i++)
{
Buffer[i] = Volume[i];
Print (Volume[i]);
Print (Buffer[i]);
}
...
На выходе получаем пары типа
1678
0
Это я с похмелья накосячил где-то, или глюк платформы?
Не выделена память под массив Buffer[] ( такое описание - Buffer[] - это только лишь сигнал компилятору, что за переменной Buffer будет скрываться массив - в терминах С это указатель на область памяти, в терминах С++ эта область памяти (пока не известного размера и которую нужно выделять динамически) будет трактоваться как массив чисел типа дабл.
ArrayResize(Buffer,limit) выделит память, но не уверен, что проинициализирует массив нужными значениями - то есть, в значениях может оказаться все, что угодно. Потому для инициализации нужно еще и ArrayInitialize( Buffer, value);
Успехов.
Да, точно. Так и есть.
Добавил в init строки:
ArrayResize(Buffer, Bars);
ArrayInitialize(Buffer, 0);
и заработало.
Всем спасибо.
//+------------------------------------------------------------------+ int init() { SetIndexBuffer(0,Buffer); return(0); } //+------------------------------------------------------------------+
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Бредовая проблема:
....
double Buffer[];
....
int start() {
...
for(i = 0; i < limit; i++)
{
Buffer[i] = Volume[i];
Print (Volume[i]);
Print (Buffer[i]);
}
...
На выходе получаем пары типа
1678
0
Это я с похмелья накосячил где-то, или глюк платформы?