Ошибки, баги, вопросы - страница 1888

 
Vladimir Karputov:

Потому что может возвращать только ДВА значения - или POSITION_TYPE_BUY или POSITION_TYPE_SELL ибо 

ENUM_POSITION_TYPE

Идентификатор

Описание

POSITION_TYPE_BUY

Покупка

POSITION_TYPE_SELL

Продажа


и других значений нет. А дальше как в фильмах "любые совпадения имён случайны"...


PositionGetInteger(POSITION_TIME); уже может вернуть больше 2 значений

поразительно не так ли?

 
fxsaber:
А в случае ошибки PositionGetInteger(POSITION_MAGIC) ?
-1 в МТ5 маджики только положительные, на счет только положительных маджиков тоже возмущался )
 
Alexandr Bryzgalov:
-1 в МТ5 маджики только положительные, на счет только положительных маджиков тоже возмущался )
И отрицательные.
 
fxsaber:
И отрицательные.

В ордере отправить можно только положительно значение маджика

struct MqlTradeRequest 
  { 
   ENUM_TRADE_REQUEST_ACTIONS    action;           // Тип выполняемого действия 
   ulong                         magic;            // Штамп эксперта (идентификатор magic number) 
   ulong                         order;            // Тикет ордера 
   string                        symbol;           // Имя торгового инструмента 
   double                        volume;           // Запрашиваемый объем сделки в лотах 
   double                        price;            // Цена  
   double                        stoplimit;        // Уровень StopLimit ордера 
   double                        sl;               // Уровень Stop Loss ордера 
   double                        tp;               // Уровень Take Profit ордера 
   ulong                         deviation;        // Максимально приемлемое отклонение от запрашиваемой цены 
   ENUM_ORDER_TYPE               type;             // Тип ордера 
   ENUM_ORDER_TYPE_FILLING       type_filling;     // Тип ордера по исполнению 
   ENUM_ORDER_TYPE_TIME          type_time;        // Тип ордера по времени действия 
   datetime                      expiration;       // Срок истечения ордера (для ордеров типа ORDER_TIME_SPECIFIED) 
   string                        comment;          // Комментарий к ордеру 
   ulong                         position;         // Тикет позиции 
   ulong                         position_by;      // Тикет встречной позиции 
  };
 

гы, а получить можно  и отрицательное )))

все понятно, у МК не было выбора )

 
Alexandr Bryzgalov:

В ордере отправить можно только положительно значение маджика

И отрицательное.

[Удален]  

Это баг или я чето-то не понимаю? обычный советник по параболику, ставит стоп ордер на прошлой точке, в случае с бай с учетом спреда.
И вот цена (Ask) дошла до цены ордера 57781, но ордер не открывается.

 
В чем ошибка выполнения
class CLASS1
{
public:
  int i;  
};

class CLASS2 : public CLASS1 {};

void OnStart()
{
  CLASS1 Object;
  CLASS2* Ptr = dynamic_cast<CLASS2*>(&Object);
  
  Ptr.i = 1;
}
 

если сделать так:

class CLASS1
{
public:
  int i;  
};

class CLASS2 : public CLASS1 {};

void OnStart()
{
  CLASS2 Object;
  CLASS1* Ptr = dynamic_cast<CLASS1*>(&Object);
  
  Ptr.i = 1;
}

т.е. приведение к родителю, то все проходит корректно, видимо в структуре языка очень существенные изменения прошли и теперь производный тип однозначно не тип предок.

Проверил на С++:

class CLASS1
{
public:
  int i;  
};

class CLASS2 : public CLASS1 {};

void OnStart()
{
  CLASS1* Object = new CLASS1();
  CLASS2* Ptr = (CLASS2 *)&Object;
  
  Ptr->i = 1;
}

приведение объекта родительского класса к типу производного отрабатывается корректно, т.е. какая то ошибка в механизме MQL5 с приведением типов, если конечно так не было задумано.

[Удален]  

Если Вы не проверяете, что возвращает  dynamic_cast, то его использование не имеет смысла.