Изменения в валидации экспертов в Маркете МТ4 - страница 3

 
Торговать и Вылаживать то маркет без стопов не пробовали? :-)
Если уж со стопом, то крыть при сработке условия- отслеживая НУЖНЫЙ уровень (без запредельного грабительского пункта). Или так тоже нельзя? Может я чего то не допонимаю... ? Просвятите плз. (Здесь без шуток)
 
Roman Shiredchenko:
Торговать и Вылаживать то маркет без стопов не пробовали? :-)
Если уж со стопом, то крыть при сработке условия- отслеживая НУЖНЫЙ уровень (без запредельного грабительского пункта). Или так тоже нельзя? Может я чего то не допонимаю... ? Просвятите плз. (Здесь без шуток)
Это так называемый Виртуальный стоп.
Минусы при его использовании:
1. При обрыве связи терминала с брокером ордер не будет закрыт роботом по СЛ. Возможны неконтролируемые убытки.
2. Исполнение чуть дольше чем реального СЛ (иногда миллисекунды, иногда намного больше). Так как Реальный СЛ уже висит на сервере брокера и при поступлении указанной котировки не требуется траты времени на отправку и получение этой котировки терминалом, анализ котировки, отправки запроса на закрытие, постановка запроса в очередь на выполнение. При Виртуальном СЛ всё это потребует дополнительного времени (разного).
 
o_o:

На данный момент изменились правила проверки допустимых расстояний до стопуровней ()

StopLevel = MarketInfo(symbol, MODE_STOPLEVEL) * Point;


Раньше была корректным такая установка (пример для Бай позиции)

SL для Бай не выше Bid - StopLevel


Сейчас такое расстояние для маркета не допустимо. Хотя в реальности брокер и МТ4 сервер при торговле на реальном/демо счете считают что это правильно и исполняют ордера.

----

В маркете теперь нужно отступать на дополнительный пункт

SL для Бай не выше Bid - StopLevel - Point

То есть появилось доп. требование на пункт


----

Все это касается также отложенных ордеров и также стопов/тейков.


как Вы решаете проблему, если Stoplevel = 0 ?

интересно Ваше мнение. 

 
Vladislav Andruschenko:


как Вы решаете проблему, если Stoplevel = 0 ?

интересно Ваше мнение. 

не понимаю вопроса

---

МТ сервер разрешает ставить стоп бай позиции на бид цену при стопуровне=0

Проверьте сами MT5 (Metaquotes demo)

void OnStart()
{
  MqlTradeRequest req; ZeroMemory(req);
  MqlTradeResult res; ZeroMemory(res);
  req.action=TRADE_ACTION_DEAL;
  req.symbol=Symbol();
  req.volume=0.1;
  req.price=NormalizeDouble(SymbolInfoDouble(Symbol(), SYMBOL_ASK), 5);
  req.sl=NormalizeDouble(SymbolInfoDouble(Symbol(), SYMBOL_BID), 5);
  MqlTradeCheckResult rec; ZeroMemory(rec);
  Print(OrderCheck(req, rec)," - ",rec.retcode, "  ", rec.comment); 
  Print(OrderSend(req, res)," - ",res.retcode, "  ", res.comment); 
}

 (EURUSD)    true - 0  Done
 (EURUSD)    true - 0  Request executed

----

Или для МТ4 (roboforex demo)

 Print(OrderSend(Symbol(), OP_BUY, 0.1, Ask, 0, Bid, 0));
 Print(GetLastError());

open #178774843 buy 0.10 EURUSD.e at 1.18467 sl: 1.18462 ok
getlasterror = 0


Но маркет такое не пропустит! 

Это бага маркета.

 
o_o:

не понимаю вопроса

---

МТ сервер разрешает ставить стоп бай позиции на бид цену при стопуровне=0

Проверьте сами MT5 (Metaquotes demo)

 (EURUSD)    true - 0  Done
 (EURUSD)    true - 0  Request executed

----

Или для МТ4 (roboforex demo)

open #178774843 buy 0.10 EURUSD.e at 1.18467 sl: 1.18462 ok
getlasterror = 0


Но маркет такое не пропустит! 

Это бага маркета.



Я и спрашивал про маркет.)) 
 
o_o:

не понимаю вопроса

---

МТ сервер разрешает ставить стоп бай позиции на бид цену при стопуровне=0

Проверьте сами MT5 (Metaquotes demo)

 (EURUSD)    true - 0  Done
 (EURUSD)    true - 0  Request executed

----

Или для МТ4 (roboforex demo)

open #178774843 buy 0.10 EURUSD.e at 1.18467 sl: 1.18462 ok
getlasterror = 0


Но маркет такое не пропустит! 

Это бага маркета.


Здесь нет никакого бага маркета. Есть ДЦ или торговые условия, где стоплевел=0 -- это значит, что берётся N*спред.

Поэтому требование маркета по стоплевел=0 вполне обоснованы.

p.s. Другое дело, что стоплевел не работает адекватно и не отслеживает эти особенности, хотя должен.

 
Vladislav Andruschenko:


Я и спрашивал про маркет.)) 

ясно

примерно так

double StopLvl=MarketInfo(smb, MODE_STOPLEVEL)*Point(); 
if (StopLvl>0) StopLvl+=Point();

и далее для бай

sl = MathMin(sl, Bid-StopLvl)
 
o_o:

ясно

примерно так

и далее для бай

Спасибо. Так я тоже пробовал. Но как сказали выше.  Некоторые брокеры при 0 стоплевеле просто принимают 0 за плавающий стопуровень.  
Причина обращения: