Изучаем и пишем вместе на MQL5 - страница 19

 
Interesting:

(да и просьба, уж извините мало обоснована и подтверждена убедительными доводами).

PS

Хотя, я может быть что-то упустил и разработчики решать что она вполне целесообразна.

Повторюсь: никаких просьб к разработчикам не было :) Не было ни требований, ни даже пожеланий - в соответствии с темой ветки.  Как говорится: "плавали - знаем" :) Причину объяснил здесь: "Если бы кто-то такой вопрос поднимал бы с полгода назад, можно было бы ещё надеяться на относительно  скорое появление фичи, а ждать следующего года - проще самому ввести переменную для даты. Хоть будет и не совсем точно, но всё-таки".

Как всегда, спасибо всем за мысли! В этот раз убедили меня же в моей правоте :) 

 

stringo:

Yedelkin:

Вопрос. В описании оператора switch(выражение){...} сказано, что "выражение оператора switch должно быть целого  типа". В интернете встречал описание этого оператора с выражениями других типов. Будет ли расширено применение оператора switch путем добавления выражений строкового типа?

Нет, к сожалению не будет. Для строковых типов только if ... else if ... else

За счёт использования целых типов в switch достигается нескольки кратное ускорение по сравнению с if 

Вопрос. А есть ли (по аналогии со switch) какое-нибудь ускорение по сравнению с if у "условного оператора ?:"  ? 

 
Yedelkin:

Вопрос. А есть ли (по аналогии со switch) какое-нибудь ускорение по сравнению с if у "условного оператора ?:"  ? 

Нет. У условного оператора нет никакого ускорения по сравнению с if. Просто удобство записи.
 
stringo:
Нет. У условного оператора нет никакого ускорения по сравнению с if. Просто удобство записи.
Спс, понял.
 

ORDER_TYPE_BUY_STOP_LIMIT

По достижении цены ордера выставляется отложенный ордер Buy Limit по цене StopLimit

Получается, что обработка этого ордера, в том числе "выставление отложенного ордера Buy Limit" происходит на стороне сервера. Появилось несколько вопросов, ответов на которые в справочных материалах не обнаружил:

1) Уходит ли в историю сам ORDER_TYPE_BUY_STOP_LIMIT при достижении цены ордера и выставлении отложенного ордера Buy Limit?

2) Наследуется ли тикет ордера  ORDER_TYPE_BUY_STOP_LIMIT новым отложенным ордером, выставленным на стороне сервера?

3) Генерируется ли какое-нибудь торговое событие типа Trade  при выставлении на стороне сервера отложенного ордера Buy Limit?

4) Как (по какому правилу) на стороне сервера новому отложенному ордеру  Buy Limit назначается время истечения ордера, время жизни ордера, комментарий?

 

И вообще, существует ли грамотный способ оперативно выловить выставление ордеров на стороне сервера? Может, где-нибудь уже говорилось про это? 

 
Возможно изначально Old_Time[0] не верно инициализировано. Из кода не ясно, что там. Посмотрите тут, может воспользуетесь этим решением.
 
AUser:
...
CopyTime(_Symbol,_Period,0,1,Old_Time);
Попробуйте вот эту строчку вставить перед закрывающей скобкой OnTick().
 
Поток к ядру вообще не привязан.

Yedelkin:

...функция Sleep() не тормозит сам поток

Тормозит, но освобождая тем самым процессорные ресурсы для других потоков.

Поэтому Sleep нельзя использовать в индюках -- в одном потоке может обсчитываться большое количество индюков, и Sleep в одном приведет к простою также и всех остальных.

________

Чорд, немножко опоздал :) в следующий раз буду внимательней смотреть на даты.

 
TheXpert:
Поток к ядру вообще не привязан.

Тормозит, но освобождая тем самым процессорные ресурсы для других потоков.

Поэтому Sleep нельзя использовать в индюках -- в одном потоке может обсчитываться большое количество индюков, и Sleep в одном приведет к простою также и всех остальных.

________

Чорд, немножко опоздал :) в следующий раз буду внимательней смотреть на даты.

Насчёт "опоздал". - Всё правильно! Здесь ключевая фраза - "освобождая тем самым процессорные ресурсы для других потоков". Именно её я и пытался сформулировать в вопросе.

 
Yedelkin:

ORDER_TYPE_BUY_STOP_LIMIT

По достижении цены ордера выставляется отложенный ордер Buy Limit по цене StopLimit

Получается, что обработка этого ордера, в том числе "выставление отложенного ордера Buy Limit" происходит на стороне сервера. Появилось несколько вопросов, ответов на которые в справочных материалах не обнаружил: ...

Судя по отсутствию реакции на вопрос, народ здесь - после МТ4 и на использование стоп-лимит ордеров ещё не перешёл :)

А если без лирики, то обнаружил в Сети материалы, из которых следует, что STOP LIMIT ордер не порождает новый  отложенный ордер, а просто трансформируется в лимит-ордер при выполнении определённого условия:

- обусловленный приказ, превращающийся в лимитный в случае достижения ценой контракта определенного уровня;

- ордер на исполнение сделки по цене хуже текущей рыночной цены, однако не хуже цены, указанной в лимитной части ордера. В отличие от стоп-ордера при достижении рыночной цены, указанной в ордере, этот ордер активизируется, как лимит-ордер. При этом цена исполнения стоп-лимит ордера может быть либо равной ордерной цене, либо лучше нее;

- клиентский приказ, который становится лимит-ордером после достижения рыночной ценой установленного уровня (стоп-цены);

и т.д. 

 Такой подход даёт ответы на большинство моих вопросов. Но если это действительно так, то тогда фраза из Справочника про "выставление лимит-ордера" представляется некорректной и конкретно сбивает с толку.

Причина обращения: