Как реализовать закрытие позиций по одной через N-минут ? - страница 7

 
Renat Akhtyamov:

Вы что перевели на английский?

А во вкладке эксперты по русски?


Нет, всё по умолчанию.

 
Natalya Dzerzhinskaya:

Нет, всё по умолчанию.

во вкладке эксперты посмотрите пожалуйста - по русски транслируются ошибки?

 
Natalya Dzerzhinskaya:

Да, код работает.

Я использую в вашем коде для close не bool а int

int close;

И ticket использую один для всех закрытий buy и sell, ну это только для проверки. Может из-за этого ошибка, т.к. buy закрыт а для sell нет закрытия.

ну это правильно, так и задумано

 
Renat Akhtyamov:

во вкладке эксперты посмотрите пожалуйста - по русски транслируются ошибки?


всё на английском транслируется 

 
Natalya Dzerzhinskaya:

всё на английском транслируется 

задумано изначально было, согласно Вашим описаниям так

я на первой страничке положил код, в конце которого

if(TicketFirst>0)
{
//ну и пошло-поехало...
}

Вам оставалось одну из 2-х функций закрытия положить в это условие и закрыть найденный ордер по тикету (вставляю две), т.е.

if(TicketFirst>0)
{
                  if(OrderSelect(TicketFirst, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(TicketFirst,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }
                  if(OrderSelect(TicketFirst, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(TicketFirst,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,clrBlue);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }

}

и функцию обработки ошибок разместить после всего кода

Плюсом в условии входа к функции закрытия должна быть какая то логика, Вы её не разъяснили до конца, об этом я тоже писал.

И было бы всё ОК-ейно.

Если оставить так, то будет закрываться дважды один и тот же тикет. Будет ошибка 4108 при закрытии ордера с тикетом, который уже закрыт в первый раз.

 
Renat Akhtyamov:

ну это правильно, так и задумано

Нужно не задумывать, а пользоваться справкой, и писать значение типа bool

Впрочем можно использовать int, всё равно это ничего не изменит.

Запустите скрипт, можете запустить 50 раз подряд, и никогда не будет переменная close равняться -1. Это говорит о том, что ошибки не будут транслироваться ни на одном языке, даже на китайском.

//+------------------------------------------------------------------+
#property version   "1.00"
#property strict
#property show_inputs

input int MyTicket = 451971753;

int close = -1;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//закрытие по тикету, переделайте под свой

   if(OrderSelect(MyTicket,SELECT_BY_TICKET)==true)
     {
      close=OrderClose(MyTicket,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
      if(close<0) Print("ERROR равен -1: ",close);
      if(close==0) Print("ERROR не может быть -1 НИКОГДА: ",close);
     }
  }


 
Vitaly Muzichenko:

Нужно не задумывать, а пользоваться справкой, и писать значение типа bool

Впрочем можно использовать int, всё равно это ничего не изменит.

Запустите скрипт, можете запустить 50 раз подряд, и никогда не будет переменная close равняться -1. Это говорит о том, что ошибки не будут транслироваться ни на одном языке, даже на китайском.

Виталя, не надо меня учить.

Я тебя помню сам еще с годик-два назад учил на 5-рку переходить, так что опыта у тебя пока что меньше...

Ты ведь не сделал один в один с моим, а говоришь...
 
Renat Akhtyamov:

Виталя, не надо меня учить.

Я тебя помню сам еще с годик-два назад учил на 5-рку переходить, так что опыта у тебя пока что меньше...

Да Я пример даже дал, не выставляйте себя напоказ не в лучшем виде!

 
Vitaly Muzichenko:

Да Я пример даже дал, не выставляйте себя напоказ не в лучшем виде!

Ты ведь не сделал один в один с моим, сделал по своему, а говоришь...

И вообще, какой у тебя билд?

и кажешь ты мне не вкладку эксперты, а журнал. Это вообще то две большие разницы.

Ошибку в моем случае транслирует эксперт во вкладке эксперты.
 
Renat Akhtyamov:

Ты ведь не сделал один в один с моим, сделал по своему, а говоришь...

И вообще, какой у тебя билд?

и кажешь ты мне не вкладку эксперты, а журнал. Это вообще то две большие разницы.

Ошибку в моем случае транслирует эксперт во вкладке эксперты.

Я понял, решили меня потроллить.

Ладно ушёл. 

Не, наверное всё-же напишу в сервисдеск, что мне подсунули бракованный терминал.

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