Измерить расстояние в пунктах от цены до MA.

 
Всем привет. При написания советника столкнулся с проблемой. Мне нужно измерить расстояние в пунктах от текущей цены до MA. Как это сделать? Я себе уже всю голову сломал.
 

double CENA = iMA( ... );

if Ask > CENA

PIP = ( Ask - CENA);

else

PIP = ( CENA-Ask);

так понятно ?

 
Hurricanas:
Всем привет. При написания советника столкнулся с проблемой. Мне нужно измерить расстояние в пунктах от текущей цены до MA. Как это сделать? Я себе уже всю голову сломал.



Пример:

 MathAbs((iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,0)-Bid)/Point)
 

Yura7, если отнять значение текущей цены от цены МА или наоборот, то получится дробное число, а мне нужен результат в пунктах.

Roman.:



Пример:


Спасибо!

 
Hurricanas:

Yura7, если отнять значение текущей цены от цены МА или наоборот, то получится дробное число, а мне нужен результат в пунктах.


Спасибо!

Я лал лишь направление в сторону решения... Что бы натолкнуть на мысль.. Роман дал просто готовый кусок кода..
 
YuraZ:
Я лал лишь направление в сторону решения... Что бы натолкнуть на мысль.. Роман дал просто готовый кусок кода..

Я понял. У меня уже была такая мысль, я просто не знал как нужно перевести разницу в пункты. Оказывается что нужно было просто разделить разницу на Point. Спасибо.
 

Добрый день!

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

Допустим по эксперту №1 сформировался один сигнал на вход, и следом на эксперте №2 сформировался другой сигнал на вход. Соответственно должно быть две позиции по разным экспертам.

А то меня в условии при открытии позиции стоит (OrdersTotal() ==0). Эксперт №2 видит открытую позу, и не хочет открывать вторую, так как уже есть открытая поза на экс. №1.

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Alexey Belyakov:

Добрый день!

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

Допустим по эксперту №1 сформировался один сигнал на вход, и следом на эксперте №2 сформировался другой сигнал на вход. Соответственно должно быть две позиции по разным экспертам.

А то меня в условии при открытии позиции стоит (OrdersTotal() ==0). Эксперт №2 видит открытую позу, и не хочет открывать вторую, так как уже есть открытая поза на экс. №1.

Нужно перебрать все открытые ордера и выделить те ордера, которые принадлежат текущему эксперту. Чтобы отличить ордера одного эксперта от другого, обычно используют установку уникального Magic Number (есть такой параметр в функции OrderSend).

Стандартный цикл перебора ордеров выглядит так:

   for (int i = OrdersTotal() - 1; i >= 0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS))          
         continue;
         
      if (OrderSymbol() != Symbol())
         continue;  
      
      if (m_nMagicNumber != OrderMagicNumber())   // m_nMagicNumber - уникальный ID ордеров эксперта
         continue;
         
      // Найден ордер эксперта
      ...
   }
 
Ihor Herasko:

Нужно перебрать все открытые ордера и выделить те ордера, которые принадлежат текущему эксперту. Чтобы отличить ордера одного эксперта от другого, обычно используют установку уникального Magic Number (есть такой параметр в функции OrderSend).

Стандартный цикл перебора ордеров выглядит так:

Спасибо! Вопрос закрыт