Копирование данных с CopyBuffer. - страница 2

 
zhurs #:
Добрый день. А можно ли каким-то образом через API Python получить результаты расчёта индикаторов (по аналогии с CopyBuffer)? Не могу найти такую возможность.

Никак нельзя. Питон не может штатными средствами говорить с терминалом. 

А что мешает в Питоне вычислять значения индикаторов? Существуют готовые пакеты с индикаторами.

 

Здравствуйте! Когда я пытаюсь скопировать данные буфера, все получается, но копируется только 6 элементов (6 последних баров) вне зависимости от того, сколько я укажу.

Т.е. следующий код:

double MAarray[];
ArraySetAsSeries(MAarray, true);
if (CopyBuffer(handle_MA, 0, 0, 6, MAarray) < 0) {Print("CopyBuffer MAarray =",GetLastError());};
int MAarraySize = sizeof(MAarray)/sizeof(MAarray[0]);
Print("MAarray Size - ", MAarraySize);

выводит MAarray Size - 6, точно так же, если указать 100 элементов:

double MAarray[];
ArraySetAsSeries(MAarray, true);
if (CopyBuffer(handle_MA, 0, 0, 100, MAarray) < 0) {Print("CopyBuffer MAarray =",GetLastError());};
int MAarraySize = sizeof(MAarray)/sizeof(MAarray[0]);
Print("MAarray Size - ", MAarraySize);

результат тоже  MAarray Size - 6. 

Я хочу подсчитать среднее значение цены скользящей средней, например, предпоследних 20-и баров (от MAarray[1] до MAarray[19]), но даже если я неправильно считаю количество элементов, все равно в массиве нет этих элементов (ошибка индексации, когда перебираю циклом). В примерах в документации вводят разное количество, я так и не понял в чем проблема. 

Как решить данную задачу?

 
Yauheni Tolstsik #:

Здравствуйте! Когда я пытаюсь скопировать данные буфера, все получается, но копируется только 6 элементов (6 последних баров) вне зависимости от того, сколько я укажу.

Т.е. следующий код:

выводит MAarray Size - 6, точно так же, если указать 100 элементов:

результат тоже  MAarray Size - 6. 

Я хочу подсчитать среднее значение цены скользящей средней, например, предпоследних 20-и баров (от MAarray[1] до MAarray[19]), но даже если я неправильно считаю количество элементов, все равно в массиве нет этих элементов (ошибка индексации, когда перебираю циклом). В примерах в документации вводят разное количество, я так и не понял в чем проблема. 

Как решить данную задачу?

Во-первых, размер массива определяется так:

ArraySize(MAarray)

а не так, как указано в коде.

Во-вторых, количество скопированных элементов можно получить от самой CopyBuffer(), просто сохраните это значение.

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