В ордере отправить можно только положительно значение маджика
structMqlTradeRequest
{
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; // Тикет встречной позиции
};
Это баг или я чето-то не понимаю? обычный советник по параболику, ставит стоп ордер на прошлой точке, в случае с бай с учетом спреда. И вот цена (Ask) дошла до цены ордера 57781, но ордер не открывается.
class CLASS1
{
public:
int i;
};
class CLASS2 : public CLASS1 {};
voidOnStart()
{
CLASS2 Object;
CLASS1* Ptr = dynamic_cast<CLASS1*>(&Object);
Ptr.i = 1;
}
т.е. приведение к родителю, то все проходит корректно, видимо в структуре языка очень существенные изменения прошли и теперь производный тип однозначно не тип предок.
Проверил на С++:
class CLASS1
{
public:
int i;
};
class CLASS2 : public CLASS1 {};
voidOnStart()
{
CLASS1* Object = new CLASS1();
CLASS2* Ptr = (CLASS2 *)&Object;
Ptr->i = 1;
}
приведение объекта родительского класса к типу производного отрабатывается корректно, т.е. какая то ошибка в механизме MQL5 с приведением типов, если конечно так не было задумано.
Потому что может возвращать только ДВА значения - или POSITION_TYPE_BUY или POSITION_TYPE_SELL ибо
ENUM_POSITION_TYPE
Идентификатор
Описание
POSITION_TYPE_BUY
Покупка
POSITION_TYPE_SELL
Продажа
и других значений нет. А дальше как в фильмах "любые совпадения имён случайны"...
PositionGetInteger(POSITION_TIME); уже может вернуть больше 2 значений
поразительно не так ли?
А в случае ошибки PositionGetInteger(POSITION_MAGIC) ?
-1 в МТ5 маджики только положительные, на счет только положительных маджиков тоже возмущался )
И отрицательные.
В ордере отправить можно только положительно значение маджика
гы, а получить можно и отрицательное )))
все понятно, у МК не было выбора )
В ордере отправить можно только положительно значение маджика
И отрицательное.
Это баг или я чето-то не понимаю? обычный советник по параболику, ставит стоп ордер на прошлой точке, в случае с бай с учетом спреда.
И вот цена (Ask) дошла до цены ордера 57781, но ордер не открывается.
В чем ошибка выполнения
если сделать так:
т.е. приведение к родителю, то все проходит корректно, видимо в структуре языка очень существенные изменения прошли и теперь производный тип однозначно не тип предок.
Проверил на С++:
приведение объекта родительского класса к типу производного отрабатывается корректно, т.е. какая то ошибка в механизме MQL5 с приведением типов, если конечно так не было задумано.
В чем ошибка выполнения
Если Вы не проверяете, что возвращает dynamic_cast, то его использование не имеет смысла.