Сообщество Экспертописателей - страница 6

 
а Вы какую разницу хотите найти? разницу массивов? так у нас массивы не могут складываться или вычитаться. находите разницу поэлементно.
 
а Вы какую разницу хотите найти? разницу массивов? так у нас массивы не могут складываться или вычитаться. находите разницу поэлементно.


Просто нам чукчам не понятно, почему Вы говорите, что мы пытаемся вычитать массивы, мы делаем как показано в МКЛ4 словаре:


double macurrent=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,0);
   double macurrentslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,0);
   double maprev=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,1);
   double maprevslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,1);
   //----
   if(maprev<maprevslow && macurrent>=macurrentslow)
     Alert("crossing up");



Please, advise!

 
Спасибо Слава за подсказку.

Вот код с ошибкой

ArrayCopySeries(ma_C, MODE_CLOSE, "EURUSD", PERIOD_H1);
double ma_6C=iMAOnArray( ma_C, 0, 3*MA_period,0,MODE_SMA,1 );



А вот рабочий

ArrayCopySeries(ma_C, MODE_CLOSE, "EURUSD", PERIOD_H1);

 ma_6C=ma_C[1];

for(i=2; i<(3*MA_period); i++)
   {
      ma_6O+=ma_O[i];
      ma_6C+=ma_C[i];
   }

ma_6C/=(3*MA_period);
 
Тема переехала на http://forum.viac.ru/viewtopic.php?t=2973
 
Тема переехала на http://forum.viac.ru/viewtopic.php?t=2973
 
Тема переехала на http://forum.viac.ru/viewtopic.php?t=2973
 
Вопрос к познавшим глубины MKL4.

Существует ли какая то стандартная команда позволяющая эксперту
видеть пересечение средних. Например средняя периода 5 пересекает среднюю
периода 20. Может ли эксперт увидеть как человек момент пересечения,
есть ли какая то стандартная функция или команда для таких штучек?

Рисунок ниже показывает пересечение красной и зеленой средних, как
пример того, что должен увидеть эксперт и отработать этот сигнал.
 
М1 - первая скользящая,
М2 - вторая скользящая.

Нужно сравнить знаки разностей (М1 - М2)
на текущем и предыдущем барах.
Если они разные, значит есть пересечение.
Особый случай когда одна из разностей = 0.

Можно сделать например так
if ((M1[0] - M2[0]) != 0)
{ 
   double R = 0;
   for (int i = 1; i < Bars && R == 0; i++)  R = (M1[i] - M2[i]);
   if ((M1[0] - M2[0]) * R < 0)
   {
      // Знаки разные, есть пересечение ..........
   }
}



(сам не проверял)

 
...Существует ли какая то стандартная команда позволяющая эксперту
видеть пересечение средних.

стандартной - нет
Может ли эксперт увидеть как человек момент пересечения,
есть ли какая то стандартная функция или команда для таких штучек?

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

см. словарь iMAOnArray, там даже пример приведен с пересечением
на всякий случай
   double macurrent=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,0);
   double macurrentslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,0);
   double maprev=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,1);
   double maprevslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,1);
   //----
   if(maprev<maprevslow && macurrent>=macurrentslow)
     Alert("crossing up");



2Сисадмин, опять заныкалась кнопка "вход", и еще насколько я понимаю [pre] заменен [code]?

 
А зачем Вы делаете эту операцию и что она дает?

   for (int i = 1; i < Bars && R == 0; i++)  R = (M1[i] - M2[i]);
 



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