Закрыть нужный нам ордер

 
Всем привет, скажите пожалуйста уважаемые форумчане) как закрыть нужный нам ордер, допустим мы имеем два открытых ордера один на Buy другой Sell каждый день в ровно в 23.00 закрываются оба вот как закрыть первым тот у которого OrderProfit() больше?
 
XmaksasX:
Всем привет, скажите пожалуйста уважаемые форумчане) как закрыть нужный нам ордер, допустим мы имеем два открытых ордера один на Buy другой Sell каждый день в ровно в 23.00 закрываются оба вот как закрыть первым тот у которого OrderProfit() больше?

если вам вообще их нужно оба закрыть и при этом они одинакового объема, то юзайте OrderCloseBy
 
sergeev:

если вам вообще их нужно оба закрыть и при этом они одинакового объема, то юзайте OrderCloseBy

Да нужно закрыть оба ордера ну первым тот у которого профит больше допустим (OrderType()==buy его профит= -100) и (OrderType==Sell его профит= -150) то сперва закрыть buy а потом sell. А можно чуть чуть подробней о OrderCloseBy то что написано в справке мне не очень понятно.
 
XmaksasX:

Да нужно закрыть оба ордера ну первым тот у которого профит больше допустим (OrderType()==buy его профит= -100) и (OrderType==Sell его профит= -150) то сперва закрыть buy а потом sell. А можно чуть чуть подробней о OrderCloseBy то что написано в справке мне не очень понятно.
Сравнивание профит первого ордера и второго, если у первого больше закрываете его, если нет закрываете второй,
 
XmaksasX:

А можно чуть чуть подробней о OrderCloseBy то что написано в справке мне не очень понятно.

Эта функция закрывает одномоментно два противоположных ордера.

Вы, во-первых, экономите на спреде. Во-вторых, вместо двух торговых операций делаете одну

 
excelf:
Сравнивание профит первого ордера и второго, если у первого больше закрываете его, если нет закрываете второй,

это я понимаю ну как это делается в цикле или как? или просто присвоить разные MagikNumber'ы и по ним сравнивать, если вас не затруднит можно не большой пример, буду очень признателен.


sergeev:

Эта функция закрывает одномоментно два противоположных ордера.

Вы, во-первых, экономите на спреде. Во-вторых, вместо двух торговых операций делаете одну

а если вдруг у нас открылся только один ордер что делать тогда? это конечно не особо важно ну все же?
 
XmaksasX:
а если вдруг у нас открылся только один ордер что делать тогда? это конечно не особо важно ну все же?

Если вам сложно выбрать самый профитный из ОДНОГО единственного ордера. то навряд ли вам вообще нужно этим заниматься :)
 
sergeev:
Если вам сложно выбрать самый профитный из ОДНОГО единственного ордера. то навряд ли вам вообще нужно этим заниматься :)

А причем тут это кто сказал про выбор профитного из ОДНОГО если Вы прочитали не внимательно то не стоит делать поспешных выводов, "а если вдруг у нас открылся только один ордер что делать тогда"----это имелось ввиду к функции OrderCloseBy она же закрывает один ордер другим, а если он только один то соответственно работать она не будет ведь так???

 
XmaksasX:

А причем тут это кто сказал про выбор профитного из ОДНОГО если Вы прочитали не внимательно то не стоит делать поспешных выводов, "а если вдруг у нас открылся только один ордер что делать тогда"----это имелось ввиду к функции OrderCloseBy она же закрывает один ордер другим, а если он только один то соответственно работать она не будет ведь так???


Прежде чем юзать ту или иную функцию, тем более на реале, необходимо проводить необходимые проверки, в вашем случае - контроль за наличием двух разнонаправленных ордеров в рынкете...

 
Roman.:


Прежде чем юзать ту или иную функцию, тем более на реале, необходимо проводить необходимые проверки, в вашем случае - контроль за наличием двух разнонаправленных ордеров в рынкете...

про какую функцию Вы говорите? меня просто интересует как закрыть первым тот ордер у которого профит больше вот и все))
 
if(Hour()>=23 && Minute()>=00)
     {
        if(OrderSelect(Ticket_Sell, SELECT_BY_TICKET)==true)
           double m1=OrderProfit(); 
         if(OrderSelect(Ticket_Buy, SELECT_BY_TICKET)==true)
           double m2=OrderProfit(); 
          if(m1>m2)
          {
           OrderClose(Ticket_Sell,OrderLots(),PR,3,Red);
            OrderClose(Ticket_Buy,OrderLots(),PR,3,Red);
           }
         else
           {
            OrderClose(Ticket_Buy,OrderLots(),PR,3,Red);
             OrderClose(Ticket_Sell,OrderLots(),PR,3,Red);
           }

Вот так у меня получилось ну походу это как то туповато((((

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