Нужна помощь Богов и Гуру, сам не справлюсь!!!

 

ГУРУ ПОМОГИТЕ!

Есть такой код:

EMA_1 = EMAf(3,0);
EMA_2 = EMAf(8,0);
if (EMA_1 == EMA_2) { Dvig = 3;}

//Вот функция: (Цель функции вычислить значение ЕМА по двум параметрам, всё отлично вычисляется)

double EMAf(int N,int Bar)

   {
   double EMA=0.0,summ=0.0,k=2.0/(N+1),kk=(N-1.0)/(N+1);
   for(int i=0;i<Bars-Bar-1;i++)
      {
      EMA+=k*Close[Bar+i];
      summ+=k;
      k*=kk;
      if(1.0-summ<0.00000001) break;
      }
   if(1.0-summ>0.00000001) EMA+=(1.0-summ)*Close[Bars-1];
   return(EMA);

   }

К сожалению при сравнении не  выходит правильного результата. Точнее в процессе проверки на равенство он их не уравнивает, и не выравнивает при вычитании а так-же делении. При вычитании результат будет равен нулю, однако при сравнении с нулём всё равно не работает. В чём может быть проблема? Пробовал приводить к одному количеству точек, не помогает.

 
НОРМАЛИЗАЦИЯ https://www.mql5.com/ru/forum/131853
 
Поправил, прошу прощения первая тема на форуме.
 
Спасибо уже разобрался самостоятельно =)
 

Помогите, пожайлуста, новичку!

Как определить количество открытых ордеров по конкретной валютной паре

int OrdersTotal( )
 ВСЕ открыте ордера определяет, а как именно по паре на график которой прикреплён советник?

 
Smilk:

Помогите, пожайлуста, новичку!

Как определить количество открытых ордеров по конкретной валютной паре

int OrdersTotal( )
 ВСЕ открыте ордера определяет, а как именно по паре на график которой прикреплён советник?


пройтись по ордерам (OrderSelect) и проверить их символ (OrderSymbol)
 
Smilk:

Помогите, пожайлуста, новичку!

Как определить количество открытых ордеров по конкретной валютной паре

int OrdersTotal( )
 ВСЕ открыте ордера определяет, а как именно по паре на график которой прикреплён советник?

1. Перебор всех ордеров MODE_TRADES
2. Если OrderSymbol() равен текущему Symbol() (или заданному, например EURUSD) символу счётчик i++
3. Значение i в итоге и будет равно количеству ордеров по нужной паре.

ЗЫ. Не бог. 

 
int orders; 
for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() 
        {
         orders++;
        }
     }
Типа как-то так...
 
moskitman:
Типа как-то так...


Спасибо большое!

Очень помогли 

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