Как записать определение - страница 2

 

Не надо "биться головой" - она Вам еще пригодиться, ну хотя бы, для составления алгоритма :)

действуйте проще - разбейте задачу на множество мелких.

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

Итак для этого вам нужно найти последний закрытый ордер, раз ордер последний, то время закрытия его OrderCloseTime() должно быть наибольшим .

а так как вам нужен закрытый ордер то искать мы его будем в истории ордеров MODE_HISTORY

и при этом нам нужно определить был ли этот ордер закрыт в прибыли, или убытке. За это отвечает характеристика ордера OrderProfit()

int time = 0;double profit = 0;//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера
for(int 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){//действия если история чистая}
if(profit >= 0){//действия если последний ордер был прибыльным, или нулевым}
if(profit <  0){//действия если последний ордер был убыточным}
 
xrust:

Не надо "биться головой" - она Вам еще пригодиться, ну хотя бы, для составления алгоритма :)

действуйте проще - разбейте задачу на множество мелких.

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

Итак для этого вам нужно найти последний закрытый ордер, раз ордер последний, то время закрытия его OrderCloseTime() должно быть наибольшим .

а так как вам нужен закрытый ордер то искать мы его будем в истории ордеров MODE_HISTORY

и при этом нам нужно определить был ли этот ордер закрыт в прибыли, или убытке. За это отвечает характеристика ордера OrderProfit()


ОГРОМНОЕ спасибо,доходчивей не бывает :)
 
xrust:

Не надо "биться головой" - она Вам еще пригодиться, ну хотя бы, для составления алгоритма :)

действуйте проще - разбейте задачу на множество мелких.

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

Итак для этого вам нужно найти последний закрытый ордер, раз ордер последний, то время закрытия его OrderCloseTime() должно быть наибольшим .

а так как вам нужен закрытый ордер то искать мы его будем в истории ордеров MODE_HISTORY

и при этом нам нужно определить был ли этот ордер закрыт в прибыли, или убытке. За это отвечает характеристика ордера OrderProfit()


спс! полдня мне сэкономил, все думал как ММ прикрутить к советнику.
Причина обращения: