Профит не в пунктах. Вопрос.

 
OrderProfit() показывает значение прибыли в валюте депозита. Подскажите, если не затруднит, какой функцией можно получить значение профита в пунктах (по одному ордеру)?
 
DrawDown:
OrderProfit() показывает значение прибыли в валюте депозита. Подскажите, если не затруднит, какой функцией можно получить значение профита в пунктах (по одному ордеру)?
По разнице между ценой закрытия и открытия. Ну и потом результат умножить на 100 или 10000 в зависимости от количества значащих цифр в цене после запятой.
 

Значит такой функции нет.
А умножать проще на Point, точнее надо будет делить на Point. Тогда не придется определять кол-во знаков после запятой.

 
DrawDown:

Значит такой функции нет.
А умножать проще на Point, точнее надо будет делить на Point. Тогда не придется определять кол-во знаков после запятой.


Да тут всего пара строк получается:

profit = (OrderClose() - OrderOpen()) / Point;
if (OrderType() == OP_SELL) profit = - profit;
 
Reshetov:
DrawDown:

Значит такой функции нет.
А умножать проще на Point, точнее надо будет делить на Point. Тогда не придется определять кол-во знаков после запятой.


Да тут всего пара строк получается:

profit = (OrderClose() - OrderOpen()) / Point;
if (OrderType() == OP_SELL) profit = - profit;


А если ордер не закрыт?

Например, я хочу его закрыть когда прибыль будет 10пунктов?

 
alexfx:
Reshetov:

DrawDown:

Значит такой функции нет.
А умножать проще на Point, точнее надо будет делить на Point. Тогда не придется определять кол-во знаков после запятой.


Да тут всего пара строк получается:

profit = (OrderClose() - OrderOpen()) / Point;
if (OrderType() == OP_SELL) profit = - profit;


А если ордер не закрыт?


Например, я хочу его закрыть когда прибыль будет 10пунктов?


if (OrderType()==OP_SELL) { profit = (OrderOpen() -Ask)/Point;}  
if ( profit>=10 &&  OrderType() == OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);  
if (OrderType() == OP_BUY) { profit = (Bid - OrderOpen())/Point ;}  
if ( profit>=10 &&  OrderType() == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
Причина обращения: