Непонятно к кому вопрос-ДЦ или разработчику MQL ?

 

Отрабатываю новую прогу на МТ5. Нестабильно работает определение типа позиции ( Buy -Sell ) -часто определяет с ошибкой до наоборот.

И определение  цены открытия позиции-часто выдаёт 0 значение PriceOpen().

Может я чой то затупил или кто то шалит типа ДЦ ? ДЦ- Альфа форекс.. 

куски подпрограмм:

void OnTrade()

  {

if ( order == 1 && newby < 1 && newsel < 1 && Strade < 1 ) ChecTicket () ;  

  

  } // out OnTrade()


void ChecTicket ()

  long type=PositionGetInteger(POSITION_TYPE);

   if(type==(long)POSITION_TYPE_BUY  ) newby=true;

   if(type==(long)POSITION_TYPE_SELL  ) newsel=true;

   CPositionInfo myposition;

  //  double pos_op_price = myposition.PriceOpen();

   opprice = myposition.PriceOpen();

   if ( opprice > 0) Opprce = (int)((opprice-Ksm)*Kms ); ;

 if ( opprice < 1)  Opprce = B[1] ;         

}  // Out  ChecTicket ()

 

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
Файлы:
MT5bysell.txt  1 kb
 

Читаем здесь:

 Для гарантированного получения свежих данных о позиции рекомендуется вызывать функцию PositionSelect() непосредственно перед обращением за ними.

 
shelandr:

Отрабатываю новую прогу на МТ5. Нестабильно работает определение типа позиции ( Buy -Sell ) -часто определяет с ошибкой до наоборот.

И определение  цены открытия позиции-часто выдаёт 0 значение PriceOpen().

Может я чой то затупил или кто то шалит типа ДЦ ? ДЦ- Альфа форекс.. 

куски подпрограмм:

void OnTrade()

  {

...

Чтобы правильно вставить код на форуме нажмите SRC а потом скопируйте туда код.


Посмотрите статью Торговые операции на MQL5 - это просто, может там найдёте что-то полезное.

 
DC2008:

Читаем здесь:

Спасибо.заработало.
 
paladin800:

Чтобы правильно вставить код на форуме нажмите SRC а потом скопируйте туда код.


Посмотрите статью Торговые операции на MQL5 - это просто, может там найдёте что-то полезное.

 PositionSelect( symbol); 
  long type=PositionGetInteger(POSITION_TYPE);
   if(type==(long)POSITION_TYPE_BUY  ) newby=true;
   if(type==(long)POSITION_TYPE_SELL  ) newsel=true;
   CPositionInfo myposition;
Согласен..с SRC  получше будет..
 
shelandr:
Согласен..с SRC  получше будет..

 

if(PositionSelect(_Symbol))
{
  // ...
 
paladin800:

 

Согласен-так ещё будет правильней.
Причина обращения: