[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 89

 
keep87:
нельзя

можно))

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

 
alsu:
Определитесь, что вы хотите получить на выходе. Если значение маши 5 баров назад, то

или идентично

Если так,

это всегда будет EMPTY_VALUE, т.к. на этих барах сдвинутая машка не существует

Понял, спасибо!
 
alsu:
А лучше всего не мучайтесь со сдвигами в советнике, просто берите сдвиг 0 и номер нужного вам бара.
проверил сейчас на тестере, получается, что сделка открывается через 5 свечей после пересечения средних скользящих, а это уже не то... Догадался как сделать можно, сместить другую МА на 5 свечей вперёд, тогда правильный сигнал получается...)
 
ierehon:
проверил сейчас на тестере, получается, что сделка открывается через 5 свечей после пересечения средних скользящих, а это уже не то... Догадался как сделать можно, сместить другую МА на 5 свечей вперёд, тогда правильный сигнал получается...)

это одно и то же))

нулевой бар машки, сдвинутой на 5 баров вправо = 5-й бар несдвинутой машки

 
keep87:
нельзя. Можно вручную забить данные из массива в массив внутри советника если они не меняются от оптимизации к оптимизации, на время тестов.
Но и в этом случае МТ должен будет каждый раз(?) считывать массив из файла, только не из отдельного, а из кода.
- Будет ли в этом случае выигрыш?
 
alsu:

можно))

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

Элементов массива может быть от нескольких десятков до нескольких сотен и для каждого заранее должна быть объявлена переменная.
Сложновато будет в реализации (конечно, задача тоже не тривиальная).
 
chief2000:
Элементов массива может быть от нескольких десятков до нескольких сотен и для каждого заранее должна быть объявлена переменная.
Сложновато будет в реализации (конечно, задача тоже не тривиальная).

ну и что? Работайте с переменными в цикле так же, как с элементами массива. Пример использования:

double a[];
int n;

...
ArrayResize(a,n);
...

//запись массива в глобальные переменные

string name;
for(i=0;i<n;i++)
{
   name = StringConcatenate("__ARRAY_",i);
   GlobalVariableSet(name,a[i]);
}

//чтение в массив из глобальных

int gv = GlobalVariablesTotal();
int index;

for(i=0;i<gv;i++)
{
   name = GlobalVariableName(i);
   if(StringFind(name,"__ARRAY_")==0)
   {
      index = StrToInteger(StringSubstr(name,8));
      if(index>=0&&index<n) a[index]=GlobalVariableGet(name);
      
      //опционально - если хотим очистить список
      //GlobalVariableDel(name);
   }
}


все как нельзя проще))

 
alsu:

ну и что? Работайте с переменными в цикле так же, как с элементами массива. Пример использования:

все как нельзя проще))

На моей памяти я работал таким образом с парой тысяч переменных, тормозов при этом не отмечал. При бОльших количествах (сотни тысяч элементов и больше), как правило, стараюсь пользоваться связкой с MySQL.
 
alsu:
На моей памяти я работал таким образом с парой тысяч переменных, тормозов при этом не отмечал. При бОльших количествах (сотни тысяч элементов и больше), как правило, стараюсь пользоваться связкой с MySQL.
БОЛЬШОЕ СПАСИБО!
 

Подскажите, есть csv файл в нем данные в таком формате 1.33027; 1.33023 и так далее.

Далее читаю этот файл но почему то данные читаются с 4-х значной точностью а мне надо с 5.

Читал по разному и

FileReadString и FileReadDouble и FileReadInteger

не помогает

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