Как реализовать stoploss через OrderProfit()?

 
 Может кто знает, забираю прибыль через OrderProfit(),  там идёт работа с положительными числами, а сейчас нужно записать stoploss через  этот же OrderProfit(), не могу понять с отрицательными числами он не работает? Задача состоит в том , что если прибыль минусовая то...
 
borodadada:
  что если прибыль минусовая то...

... собирать манатки и прятаться от кредиторов?)))

Если серьезно, то OrderProfit() прекрасно информирует и об отрицательном плавающем результате

 
Всё что мог перепробовал, ни как не могу добиться результата. Не могли бы вы привести пример сравнения OrderProfit()  отрицательного, с отрицательным числом. В моём случае нет ни какой конвертации лота, просто  if(OrderProfit()<-10) вообщем так не работает.
 
borodadada:
Всё что мог перепробовал, ни как не могу добиться результата. Не могли бы вы привести пример сравнения OrderProfit()  отрицательного, с отрицательным числом. В моём случае нет ни какой конвертации лота, просто  if(OrderProfit()<-10) вообщем так не работает.

Может так....кинь на график.

//+------------------------------------------------------------------+
//|                                                          Pro.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  double Pro = NormalizeDouble(AccountProfit()*100/AccountBalance(),2); 
  string text;
   if(Pro<0)
         text = StringConcatenate ("Просадка = ", Pro, " %");
     else   
         text = StringConcatenate ("Прибыль = ", Pro, " %");
    SetLabel("Prosadka",text,Yellow,3,15, 3,10);    
//----
   return(0);
  }
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.10.2007                                                     |
//|  Описание : Установка текстовой метки, объект OBJ_LABEL.                   |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    nm - наименование объекта                                               |
//|    tx - текст                                                              |
//|    cl - цвет метки                                                         |
//|    xd - координата X в пикселах                                            |
//|    yd - координата Y в пикселах                                            |
//|    cr - номер угла привязки        (0 - левый верхний )                    |
//|                                     1 - правый верхний                     |
//|                                     2 - левый нижний                       |
//|                                     3 - правый нижний )                    |
//|    fs - размер шрифта              (9 - по умолчанию  )                    |
//+----------------------------------------------------------------------------+
void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
  ObjectSetText(nm, tx, fs);
  ObjectSet(nm, OBJPROP_COLOR    , cl);
  ObjectSet(nm, OBJPROP_XDISTANCE, xd);
  ObjectSet(nm, OBJPROP_YDISTANCE, yd);
  ObjectSet(nm, OBJPROP_CORNER   , cr);
  ObjectSet(nm, OBJPROP_FONTSIZE , fs);
}
 
Действительно минуса кажет, но тут вы производите расчёт имея 2 переменных, а как быть с одим выбранным ордером. Там по идее уже должно быть готовое значение, и получать его не надо, хотя не точно. Вопрос не решил...
 
borodadada:
Действительно минуса кажет, но тут вы производите расчёт имея 2 переменных, а как быть с одим выбранным ордером. Там по идее уже должно быть готовое значение, и получать его не надо, хотя не точно. Вопрос не решил...
Вот здесь, я думаю найдеш , к примеру это.
 
borodadada:
Всё что мог перепробовал, ни как не могу добиться результата. Не могли бы вы привести пример сравнения OrderProfit()  отрицательного, с отрицательным числом. В моём случае нет ни какой конвертации лота, просто  if(OrderProfit()<-10) вообщем так не работает.

Может так ?    if(OrderProfit()<-10*Point)  

И если хоть один ордер в плюсе работать не будет.

 

borodadada приведите кусок кода хотя бы чтоб было понятнее. 

david2 

Возвращает мани а не пункты )   

Возвращает значение чистой прибыли (без учёта свопов и комиссий) для выбранного ордера. Для открытых позиций это - текущая нереализованная прибыль. Для закрытых ордеров - зафиксированная прибыль

 
работает для минусов OrderProfit()+OrderCommission()+OrderSwap();
Причина обращения: