Как я могу определить старейших покупку или продажу

 

Как я могу определить старейших покупку или продажу
и закрыть? with script.

pansa

Kak ya mogu opredelitʹstaryeĭshih pokupku ili prodazhu
i zakrytʹ

Wörterbuch

  1. Adverb
    1. как
  2. Konjunktion
    1. как
 
 

IgorM-SPASIBO BOLSHOE! Polesno no ne direct.

Script dolshen sortirovat po time and close oldest.

pansa

 
Как как, пробегаетесь по открытым ордерам=>засовываете даты открытия и номера тикеров в массив=>сортируете массив по возрастанию/убыванию=>берете нужный вам ордер сверху или снизу отсортированного массива и закрываете. Скрипт был, но уже нет )))
 

вот под рукой есть такая функция:

double history(){
   int i;
//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера   
   double profit;
   datetime time;
   time = 0;
   profit = 0;
   for(i = OrdersHistoryTotal();i>=0;i--){// Перебираем все закрытые ордера
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){//если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)
            if(OrderSymbol() == Symbol()){//если выбранный ордер был открыт по нашей валютной паре
               if(time<OrderCloseTime()){//(сравниваем его с хранящимся в переменной time) 
                  time=OrderCloseTime();//если время закрытия ордера больше - ложим его в переменную
                  profit=OrderProfit();//и заодно запоминаем прибыль ордера
               }
            }
         }
   }
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.
//теперь мы можем выставлять условия в зависимости от результата процедуры
   
   if(profit == 0 &&time == 0){//действия если история чистая
      Print("история чистая");
   }
   if(profit >= 0){//действия если последний ордер был прибыльным, или нулевым
      Print("последний ордер был прибыльным, или нулевым");
   }
   if(profit <  0 ){//действия если последний ордер был убыточным
      Print("последний ордер был убыточным");
   }
return(profit);// вернем в качестве результата функции значение прибыли последнего ордера из истории, так на всякий случай ;)
}

может это поможет?

 
pansa:

Как я могу определить старейших покупку или продажу
и закрыть? with script.

pansa

Kak ya mogu opredelitʹstaryeĭshih pokupku ili prodazhu
i zakrytʹ

Wörterbuch

  1. Adverb
    1. как
  2. Konjunktion
    1. как

Если внимательно подумать, то ордерок с наименьшим тикетом - самый старый.

А если, предварительно, еще и по типу отсортировать - то вот оно, решение!

 
hhohholl:

Если внимательно подумать, то ордерок с наименьшим тикетом - самый старый.

А если, предварительно, еще и по типу отсортировать - то вот оно, решение!

с тикетами нельзя - некоторые ДЦ в 0 часов по серверному времени переоткрывают ордера с выдачей новых тикетов, неизвестно по какому принципу в ДЦ внутренняя нумерация тикетов, с тикетами вообще ненадежно работать, как и с комментариями ордера
 

SPASIBO BSEM sa interes!

ja sametil chem dolshe order zhdet tem bolshe neprijatnostei

ili naoborot-nuzhno tolko optimaljnoe wremja!

pansa

 
pansa:

SPASIBO BSEM sa interes!

ja sametil chem dolshe order zhdet tem bolshe neprijatnostei

ili naoborot-nuzhno tolko optimaljnoe wremja!

pansa


Вам нужно узнать время открытия рыночного ордера? - т.е. тот ордер который сейчас в рынке?

тогда Вам нужно всего лишь использовать функцию OrderOpenTime()

вышеприведенную мной функцию нужно переписать с использованием OrderOpenTime() и с перебором рыночных ордеров OrderSelect(i,SELECT_BY_POS,MODE_TRADES)

 

Hallo.IgorM!

ja vizhu u tebja est opyt pisatj scripty-poprobuy,

ja budu testovatj!

Mozhet poluchitsja!

pansa

 
pansa:

Hallo.IgorM!

ja vizhu u tebja est opyt pisatj scripty-poprobuy,

ja budu testovatj!

Mozhet poluchitsja!

pansa


Вот тут посмотри https://www.mql5.com/ru/forum/122319
Причина обращения: