Что еще можно использовать кроме MODE_STOPLEVEL ? (mql4) - страница 2

 
Alexey Volchanskiy:

А счет какоей - ECN? Некоторые ДЦ с ECN счетами не позволяют в OrderSend задавать SL и TP...

Я с другой проблемой столкнулась на альпе. В OnTick() много кода и в конце мне надо было проверить цену Ask и Bid. И я делала RefreshRates(). Т.е. по сути нехорошо, что это происходит на каждом тике. Робо этот код нормально проглотил, а вот с альпой у меня периодически происходил дисконнект с сервером. Пока я не сделала более мудреный код. Сначала сравниваю с той ценой, что есть, с Ask и Bid, что пришли при тике. И если они соответствуют условию, то уже RefreshRates() и опять проверка условия.

Может, конечно, все это и проще решается.

 
Oksana Berenko:
Спасибо! Обязательно проверю то, что вы написали. И там и там у меня есть ECN.
Отлично, напишите потом о результатах пожалуйста. На робо у меня, естественно, ECN Pro.
 
Alexey Volchanskiy:

Я во всех роботах делаю такую настройку

Использую вместо неё SYMBOL_TRADE_EXEMODE примерно с начала года (точно не скажу). Не видел сам и никто другой ни разу не пожаловался на проблемы с отправкой ордеров по этой причине. Правда есть подозрение что проблема instant / market решена на стороне сервера MT, бо не помню чтобы на это кто-то где-то жаловался в этом году

 

Результаты:

Мои результаты на картинке, скрипт такой:

#property strict

void OnStart() {
        Alert(EnumToString(
                ENUM_SYMBOL_TRADE_EXECUTION(
                        SymbolInfoInteger(_Symbol, SYMBOL_TRADE_EXEMODE)
                )
        ));
}

.

Файлы:
MIE.png  278 kb
 
Alexander Puzanov:

Использую вместо неё SYMBOL_TRADE_EXEMODE примерно с начала года (точно не скажу). Не видел сам и никто другой ни разу не пожаловался на проблемы с отправкой ордеров по этой причине. Правда есть подозрение что проблема instant / market решена на стороне сервера MT, бо не помню чтобы на это кто-то где-то жаловался в этом году

 

Мои результаты на картинке, скрипт такой:

.

Alexander, вы правда не понимаете, что мы обсуждаем или прикалываетесь? Вопрос не в том, чтобы установить Instant or Market Execution, это традиционно решается на ура через 
SymbolInfoInteger(_Symbol, SYMBOL_TRADE_EXEMODE)

Вопрос в том, чтобы установить, разрешает ли ДЦ с Market Execution задавать Sl и TP в приказе на открытие ордера. Вы понимаете, в чем суть вопроса? Странно, что при более 500 выполненных работ вы ни разу не сталкивались с такой проблемой.

 
Oksana Berenko:

Я с другой проблемой столкнулась на альпе. В OnTick() много кода и в конце мне надо было проверить цену Ask и Bid. И я делала RefreshRates(). Т.е. по сути нехорошо, что это происходит на каждом тике. Робо этот код нормально проглотил, а вот с альпой у меня периодически происходил дисконнект с сервером. Пока я не сделала более мудреный код. Сначала сравниваю с той ценой, что есть, с Ask и Bid, что пришли при тике. И если они соответствуют условию, то уже RefreshRates() и опять проверка условия.

Может, конечно, все это и проще решается.

А вот с таким я нигде не сталкивался, у меня на альпе счета Standart и Ecn, тоже не замечал. Могут быть проблемы в другом, например, в качестве связи? Иногда бывает трудно точно установить причину "плавающего" сбоя.
 

Алексей, мне непонятны ваши проблемы - слишком запутано. То что вы здесь описали

Alexey Volchanskiy:

Связано с тем, что ДЦ заранее не знает реальную цену, по которой откроется ордер, а значит не может оценить правильность SL и TP.

это разница меж instant execution и market execution. Эта проблема - разница в способе установки SL/TP при market execution - легко решается с помощью SYMBOL_TRADE_EXEMODE

Alexey Volchanskiy:

Вопрос в том, чтобы установить, разрешает ли ДЦ с Market Execution задавать Sl и TP в приказе на открытие ордера

ДЦ не должен разрешать их задавать по определению метода market execution, что ещё вы хотите устанавливать мне действительно непонятно. Развивать эту тему дальше не буду, описанная Оксаной проблема не имеет отношения к запрету на SL/TP в приказе открытия
 
Oksana Berenko:

Я с другой проблемой столкнулась на альпе. В OnTick() много кода и в конце мне надо было проверить цену Ask и Bid. И я делала RefreshRates(). Т.е. по сути нехорошо, что это происходит на каждом тике. Робо этот код нормально проглотил, а вот с альпой у меня периодически происходил дисконнект с сервером. Пока я не сделала более мудреный код. Сначала сравниваю с той ценой, что есть, с Ask и Bid, что пришли при тике. И если они соответствуют условию, то уже RefreshRates() и опять проверка условия.

Может, конечно, все это и проще решается.

Не может такого быть, что бы RefrashRates происходил дисконнект. При RefreshRates советник в обзор рынка смотрит и ничего больше, на сервер не обращается.
 
Dmitry Fedoseev:
Не может такого быть, что бы RefrashRates происходил дисконнект. При RefreshRates советник в обзор рынка смотрит и ничего больше, на сервер не обращается.
Может просто совпало - параллельно с тем, что я изменила код, я еще в сервис поддержки писала про дисконнект. Может они что-то изменили. Хотя не верится. В итоге - сейчас все работает нормально.
 
Alexey Volchanskiy:
Отлично, напишите потом о результатах пожалуйста...

Написала скрипт, который при открытии позиции тут же посылает значения SL и TP - у двух брокеров счет ECN и у двух брокеров позиция открылась.

OrderSend(Symbol(), OP_BUY, Lot, Ask, Slippage, NormalizeDouble(sl,Digits), NormalizeDouble(tp,Digits), Comment, MagicNumber);
 
Alexander Puzanov:

ДЦ не должен разрешать их задавать по определению метода market execution...

Нет, не правильно. У Roboforex даже для market execution разрешается устанавливать TP/SL при открытии ордера.