Артефакт или действительно ошибка 130

 
Заметил один артефакт. Правда на исполнении по маркету.
(на инстанте не проверял... )

Для бай: / правильный вариант /
if (StopLoss>0) loss=Ask-StopLoss*Point;
if (TakeProfit>0) profit=Ask+TakeProfit*Point;

Простым копипастом создал скрипт для селл.
И... забыл про пару знаков...

if (StopLoss>0) loss=Bid - StopLoss*Point;
if (TakeProfit>0) profit=Bid + TakeProfit*Point;


2008.02.21 17:07:17 0-СЕЛЛ-ММС2 EURUSD,M15: removed
2008.02.21 17:07:17 0-СЕЛЛ-ММС2 EURUSD,M15: uninit reason 0
2008.02.21 17:07:17 0-СЕЛЛ-ММС2 EURUSD,M15: Ошибка = 130
2008.02.21 17:07:17 0-СЕЛЛ-ММС2 EURUSD,M15: open #25911 sell 0.01 EURUSD at 1.4734 ok
2008.02.21 17:07:17 0-СЕЛЛ-ММС2 EURUSD,M15 inputs: Lots=0.01; StopLoss=10; TakeProfit=0;

Ошибка! однако поза была таки открыта...
 

Исполнение по маркету предполагает отсутствие в OrderSend цены исполнения и отсутствие стопов. Может Вы имели в виду исполнение по запросу?

 

Дык знаю...
уж не первый год МТ мучаю. :)))


Вот этим скриптом. Исполнение по маркету.

//--- 0-СЕЛЛ-ММС2.mq4 |
#property show_inputs
extern double Lots=0.01;
extern int StopLoss=10;
extern int TakeProfit=0;
 
int start()
{
 double loss=0, profit=0;
 if (StopLoss>0) loss=Bid+StopLoss*Point; 
 if (TakeProfit>0) profit=Bid-TakeProfit*Point;
 int ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0);
 if (ticket==-1) Print ("Ошибка = ",GetLastError());
 else
 {
  if (!OrderSelect(ticket,SELECT_BY_TICKET)) Print ("Ошибка = ",GetLastError());
  else if (!OrderModify(ticket,OrderOpenPrice(),loss,profit,0)) Print ("Ошибка = ",GetLastError());
 }
 return(0); 
}
//-----------------------------------------------------------+

Но что более озадачило, так это то, что журнал выписывал прям с терминала,
а в логах этого не нашел сейчас...

 

Вот, снова воспроизвёл ситуацию...

Для чего в скрипте что выше помелял + с - как и описывал ещё выше.

Билд 211 от 15.10.2007г.

 

Спасибо за скрипт. Я вижу следующее развитие событий:

1. OrderSend отрабатывает без ошибок, о чём и написано в журнале "open ... ok"

2. OrderSelect отрабатывает без ошибок.

3. OrderModify вызывает ошибку 130 (неверные стопы), о чём Вы же и выводите сообщение в журнал "Ошибка = 130"

Вроде бы всё логично, так и должно было быть.

 

Да мне особо не мешает...

Просто буду учитывать в советнике обработку ошибки.
Которая насколько понял по логике остановит попытку открыться.

Основной же причиной появления темы банальное стечение обстоятельств...
У меня вот господин случай, а у одного клента одного ДЦ через раз она вылазит, 130-я...
Причем говорит только на одной паре, и стопы далеко стоят, чуть ли на 100 пипок от открытия.

К тому же почему то был я уверен что наличие ошибки не позволит открыться.
Теперь же посмотрев повнимательней ошибка возникает на стадии выставления стопов.
Ещё точнее НЕвыставлении оных...


Спасибо за внимание !

 
kombat:
Заметил один артефакт. Правда на исполнении по маркету.
(на инстанте не проверял... )

Для бай: / правильный вариант /
if (StopLoss>0) loss=Ask-StopLoss*Point;
if (TakeProfit>0) profit=Ask+TakeProfit*Point;

Простым копипастом создал скрипт для селл.
И... забыл про пару знаков...

if (StopLoss>0) loss=Bid - StopLoss*Point;
if (TakeProfit>0) profit=Bid + TakeProfit*Point;


2008.02.21 17:07:17 0-СЕЛЛ-ММС2 EURUSD,M15: removed
2008.02.21 17:07:17 0-СЕЛЛ-ММС2 EURUSD,M15: uninit reason 0
2008.02.21 17:07:17 0-СЕЛЛ-ММС2 EURUSD,M15: Ошибка = 130
2008.02.21 17:07:17 0-СЕЛЛ-ММС2 EURUSD,M15: open #25911 sell 0.01 EURUSD at 1.4734 ok
2008.02.21 17:07:17 0-СЕЛЛ-ММС2 EURUSD,M15 inputs: Lots=0.01; StopLoss=10; TakeProfit=0;

Ошибка! однако поза была таки открыта...
сделайте принтовку стопа тейка аска стоплевела спреда ( ask-bid )
в обработке ошибок, возможно проблема прояснится
 
При установке стопов в ордере, открытом по маркету, необходимо учитывать не только расстояние до Bid или Ask, но и расстояние до цены открытия ордера (OrderOpenPrice), которая может сильно отличаться от Bid или Ask (исполнение по маркету, однако!)
 
stringo:
При установке стопов в ордере, открытом по маркету, необходимо учитывать не только расстояние до Bid или Ask, но и расстояние до цены открытия ордера (OrderOpenPrice), которая может сильно отличаться от Bid или Ask (исполнение по маркету, однако!)


Возможно...

Однако непонятны причины такого вот "отказника" ;)

Что за ерунда с CHFJPY? Советник пытается выставить Sell по CHFJPY (Bid=98.12,sl=0, tp=96.09), вылетает ошибка 130: Как следует из номера ошибки – неправильные стопы.
На демо, по разным парам, в т.ч. по CHFJPY, работает. На реале, по другим валютам, тоже работает. Проблема только с CHFJPY.


Торговые условия таковы, что даже впринципе не столь важны эти плюсы и минусы.
- уровень стопов 0
- фриз 0
- спреды от 1 пипа на мажорах

Иногда, и очень редко на некоторых парах вводится временно ~ уровень стопов: спред * 2,5