Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пиши статьи с помощью нашего редактора. Это удобно!
Артём
14
Артём 2013.05.21 11:58 

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

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

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);

   }

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

Рустам
3599
Рустам 2013.05.21 12:03  
НОРМАЛИЗАЦИЯ https://www.mql5.com/ru/forum/131853
Артём
14
Артём 2013.05.21 12:39  
Поправил, прошу прощения первая тема на форуме.
Артём
14
Артём 2013.05.21 13:44  
Спасибо уже разобрался самостоятельно =)
Александр
7
Александр 2013.05.21 18:35  

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

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

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

o_O
Модератор
23259
o_O 2013.05.21 18:46  
Smilk:

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

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

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


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

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

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

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

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

ЗЫ. Не бог. 

moskitman
4027
moskitman 2013.05.21 18:57  
int orders; 
for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() 
        {
         orders++;
        }
     }
Типа как-то так...
Александр
7
Александр 2013.05.22 16:08  
moskitman:
Типа как-то так...


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

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

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