Не могу заполнить данными 3-х мерный массив

 

Нужно внешней функцией собрать с показаний индюка MZZ4 (типа ZigZag) по экстремумам с разных ТМ данные в 3-х мерный массив.

//+----------------------------------------------------------------------------+
//|  Параметры:                                                                                                              |
//|    period[]     - массив TM для индикатора MZZ4 (задаём)                              |
//|    v            - количество вершин на одном TM                                                     |
//|    PeakH[x][][] - индекс TM                                                                                    |
//|    PeakH[][x][] - индекс вершин на одном TM                                                    |
//|    PeakH[][][x] - индекс значения и номера бара вершины                             |
//+----------------------------------------------------------------------------+
void fAskMZZ4 (int period[], int v, double & PeakH[][][2], double & PeakL[][][2])
{
    double b, cur_PeakHigh[] = {0,0,0,0}, cur_PeakLow[] = {0,0,0,0};
    int i, t, Bar, peak, x = 4, BufLow[] = {0,2,4,6}, BufHigh[] = {1,3,5,7};
    string txt;

    for (i = 0; i < x; i++)
    {
        Bar = 0;
        
        for (t = 0; t < v; t++)
        {
            txt = "";
            cur_PeakHigh[i] = iCustom (Symbol(), period[i], "MZZ4", BufHigh[i], t);
            txt = StringConcatenate ("cur_PeakHigh[", i, "] = ", cur_PeakHigh[i], "; ");
            while (cur_PeakHigh[i] == 0)
            {
                cur_PeakHigh[i] = iCustom (Symbol(), period[i], "MZZ4", BufHigh[i], Bar);
                Bar++;
            }
            PeakH[i][t][0] = cur_PeakHigh[i];
            b = Bar;
            PeakH[i][t][1] = b;
            txt = StringConcatenate (txt, "Bar = ", b, "; cur_PeakHigh[", i, "] = ", cur_PeakHigh[i], "; ");
            txt = StringConcatenate (txt, "PeakH[", i, "][", t, "][", 0, "] = ", PeakH[i][t][0], "; ");
            txt = StringConcatenate (txt, "PeakH[", i, "][", t, "][", 1, "] = ", PeakH[i][t][1], "; ");
            Print (txt);
        }
 
        Bar = 0;
        
        for (t = 0; t < v; t++)
        {
            txt = "";
            cur_PeakLow[i] = iCustom (Symbol(), period[i], "MZZ4", BufLow[i], t);
            txt = StringConcatenate ("cur_PeakLow[", i, "] = ", cur_PeakLow[i], "; ");
            while (cur_PeakLow[i] == 0)
            {
                cur_PeakLow[i] = iCustom (Symbol(), period[i], "MZZ4", BufLow[i], Bar);
                Bar++;
            }
            PeakL[i][t][0] = cur_PeakLow[i];
            b = Bar;
            PeakL[i][t][1] = b;
            txt = StringConcatenate (txt, "Bar = ", b, "; cur_PeakLow[", i, "] = ", cur_PeakLow[i], "; ");
            txt = StringConcatenate (txt, "PeakL[", i, "][", t, "][", 0, "] = ", PeakL[i][t][0], "; ");
            Print (txt);
        } 
    }
}
Комментарий выдаёт (отрывок):


EURUSD,H1: cur_PeakHigh[3] = 0; Bar = 35; cur_PeakHigh[3] = 1.5145; PeakH[3][0][0] = 0; PeakH[3][0][1] = 0;
EURUSD,H1: cur_PeakHigh[3] = 0; Bar = 214; cur_PeakHigh[3] = 1.3737; PeakH[3][1][0] = 0; PeakH[3][1][1] = 0;
EURUSD,H1: cur_PeakHigh[3] = 0; Bar = 277; cur_PeakHigh[3] = 1.4719; PeakH[3][2][0] = 0; PeakH[3][2][1] = 0;
EURUSD,H1: cur_PeakHigh[3] = 0; Bar = 389; cur_PeakHigh[3] = 1.6038; PeakH[3][3][0] = 0; PeakH[3][3][1] = 0;

Получается, что не могу заполнить данными массив - данные есть, а заполнения массива нет. Код:

PeakH[i][t][0] = cur_PeakHigh[i];
PeakL[i][t][1] = b;
не срабатывает, судя по комментам.


ПЛИЗ-З-З! Подскажите в чём ошибка???


 

кажется ошибка тут:

void fAskMZZ4 (int period[], int v, double & PeakH[][Указать размер][2], double & PeakL[][][2])
самому счас проверять некогда sorry.
 
xeon >>:

кажется ошибка тут:

самому счас проверять некогда sorry.


Поставил размер:

void fAskMZZ4 (int period[], int v, double & PeakH[][v][2], double & PeakL[][v][2])

Попробовал дополнительно инициализировать заполняемые массивы:

    PeakH[x][v][2] = {0, 0};
    PeakL[x][v][2] = {0, 0};
НО результат тот же - массив не заполняется... :(
 
TarasBY >>:

Поставил размер:

Попробовал дополнительно инициализировать заполняемые массивы:

НО результат тот же - массив не заполняется... :(



вспомнил, у меня так-же было, решил при помощи ArrayCopy

создал локальный массив, заполнил его, а потом скопировал в нужный