Терминал перезагрузить не пробовали?
Над проблемой бьюсь со вчерашнего дня (видно по времени открытия ордера на скриншоте). За это время не только терминал перегружался, но и компьютер. Прочитал в инете кучу инф-ции. Нашел, кстати тему человека у которого такая же проблема: https://www.mql5.com/ru/forum/108844 Только я так и не понял решил он эту проблему или нет...
Не знаю, у меня на Build 745 нормально тип определяется вашим скриптом.
enum OrderType
{
Buy = OP_BUY,
BuyLimit = OP_BUYLIMIT,
BuyStop = OP_BUYSTOP,
Sell = OP_SELL,
SellLimit = OP_SELLLIMIT,
SellStop = OP_SELLSTOP
};
Как только удалил это перечисление, все заработало. Но вот почему - понять не могу. Встроенного перечисления OrderType насколько мне известно нету. Может как-то конфликтует с ф-цией OrderType()? Но звучит как-то неправдоподобно..
int type = OrderType();
switch(type) { case 0: Alert("Ticket = ", OrderTicket(), " Type = buy"); break; case 1: Alert("Ticket = ", OrderTicket(), " Type = sell "); break; case 2: case 3: case 4: case 5: default: Alert("Ticket = ", OrderTicket(), " Type = ", OrderType()); break;
pako, Вы напрасно меня исправили. Во-первых, case 2, 3, 4, 5 не нужны. Они все по-умолчанию попадают в случай default. Во-вторых, рекомендую НИКОГДА не использовать числа в подобных случаях. Всегда надо использовать символьные константы. Это избавит Вас в будущем от множества глупых ошибок + на порядок выше наглядность чтения кода + в случае рефакторинга и изменения константы например OP_BUY с значения 0 в значение -10 программа у Вас все также будет корректно работать.
pako, Вы напрасно меня исправили. Во-первых, case 2, 3, 4, 5 не нужны. Они все по-умолчанию попадают в случай default. Во-вторых, рекомендую НИКОГДА не использовать числа в подобных случаях. Всегда надо использовать символьные константы. Это избавит Вас в будущем от множества глупых ошибок + на порядок выше наглядность чтения кода + в случае рефакторинга и изменения константы например OP_BUY с значения 0 в значение -10 программа у Вас все также будет корректно работать.
"Во-первых, case 2, 3, 4, 5 не нужны" имелось ввиду и так далее, нужны или не нужны , кому как
"в случае рефакторинга и изменения константы например OP_BUY с значения 0 в значение -10" для этого есть default
int OrderType() Возвращаемое значение число от 0 до 5
OP_BUY Для облегчения написания программ, а также для удобства восприятия исходных текстов программ, в языке MQL4 предусмотрены предопределенные стандартные константы и перечисления. Кроме того, для хранения информации используются служебные структуры.
Стандартные константы являются аналогом макроподстановок и имеют тип int.
"Во-вторых, рекомендую НИКОГДА не использовать числа в подобных случаях. Всегда надо использовать символьные константы. Это избавит Вас в будущем от множества глупых ошибок"
если вы так решили - это еще не значит , что это правильно.
НИКОГДА не говори НИКОГДА
"на порядок выше наглядность чтения кода" на вкус и цвет.... точки в данном случае означают и так далее
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте господа. Столкнулся вот с такой проблемой... Открываю отложенник BuyStop. Он срабатывает, однако тип его (ф-ция OrderType()) не меняется. Всего открыт 1 ордер, поэтому ошибки что смотрю другой ордер быть не может. На всякий случай даже взял ордер по тикету. Вот код:
Результат:
Честно говоря, то что тип ордера не меняется меня обескураживает... Как же тогда узнать сработал отложенник или нет?!