Интересный отчет - страница 2

 
Rosh:
А кусок кода, который работал в этот момент - можно увидеть?

Даже не знаю. Надо разрешение спрашивать, даже как-то неудобно)) Какой-бы ни был код, суть в том, что мт не знал о наличие открытого ордера, вроде как не было его в списке ордеров или функция OrderSend из-за общей ошибки пропустила ответ сервера.
 
Integer писал (а):
Rosh:
А кусок кода, который работал в этот момент - можно увидеть?

Даже не знаю. Надо разрешение спрашивать, даже как-то неудобно)) Какой-бы ни был код, суть в том, что мт не знал о наличие открытого ордера, вроде как не было его в списке ордеров или функция OrderSend из-за общей ошибки пропустила ответ сервера.
Кусок кода отвечающий за отрытие ордера, проверку открытия, и перебор открытых ордеров вряд ли "сдаст" алгоритм, без этого при всем желании сложно помочь... Да и разработчики скажут "сам "дурак"":).
 

Проверка открытия выполняется фукцией GetLаstError(). По логам явно видно, что ордер открылся, а функция вернула общую ошибку. Интересно какой тикет функция OrderSend() вернула, но этого к сожалению не узнать. Очень много вопросов вызывает то, что ордера открыты по одинаковой цене.

 
Integer писал (а):

Проверка открытия выполняется фукцией GetLаstError(). По логам явно видно, что ордер открылся, а функция вернула общую ошибку. Интересно какой тикет функция OrderSend() вернула, но этого к сожалению не узнать. Очень много вопросов вызывает то, что ордера открыты по одинаковой цене.

Для того чтобы можно было узнать больше - больше записываю.
while(tic==-1 && kk<3)
{
tic=OrderSend(Symbol(), OP_BUY, lotsi, ask, slip, 0,0, " ", m, 0,Yellow);
Print("tic_buy=", tic);
if (tic==-1)
{
kk++;
Print("Ошибка №", GetLastError(), " при buy ", kk);
Sleep(6000);
RefreshRates();
}
}
 
rsi писал (а):
Integer писал (а):

Проверка открытия выполняется фукцией GetLаstError(). По логам явно видно, что ордер открылся, а функция вернула общую ошибку. Интересно какой тикет функция OrderSend() вернула, но этого к сожалению не узнать. Очень много вопросов вызывает то, что ордера открыты по одинаковой цене.

Для того чтобы можно было узнать больше - больше записываю.
while(tic==-1 && kk<3)
{
tic=OrderSend(Symbol(), OP_BUY, lotsi, ask, slip, 0,0, " ", m, 0,Yellow);
Print("tic_buy=", tic);
if (tic==-1)
{
kk++;
Print("Ошибка №", GetLastError(), " при buy ", kk);
Sleep(6000);
RefreshRates();
}
}



Теперь так и буду делать;-)
 
Проблема прояснилась. В фоновом режиме работало еще два терминала
Причина обращения: