Скачать MetaTrader 5

последняя убыточная сделка

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
NIkolay2000
624
NIkolay2000  

Привет всем. Хочу заходить 0.2 лотами если последня поза была убыточная и 0.1 если профитаная. Набросал такой код

double Lots()
{
if(OrderSelect(1, SELECT_BY_POS)==true)
{
,
if (OrderProfit()>=0)
{
return( 0.1 );
Print("0.--1");
}
if (OrderProfit()<0)
{
return( 0.2 );
Print("0.2");
}
}
if(OrderSelect(1, SELECT_BY_POS)==false)
{
return( 0.1 );
Print("0.1");
}
На тестере пока пусто, и тесты на демке сделок не дают хотя в логах пока ошибок нет.

Aleksandr Volotko
9828
Aleksandr Volotko  
Посмотрите у Кима в ветке с функциями, там есть готовая.
Leonid Borsky
2380
Leonid Borsky  
Возможно, пригодится - глянь https://www.mql5.com/ru/forum/113963
Aleksandr Volotko
9828
Aleksandr Volotko  

Вот эту гляньте, вроде она: (https://www.mql5.com/ru/forum/107476/page21#80065)

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг убыточности последней позиции.                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isLossLastPos(string sy="", int op=-1, int mn=-1) {
  datetime t;
  int      i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    if (OrderProfit()<0) return(True);
  }
  return(False);
}
NIkolay2000
624
NIkolay2000  
Ок, спасибо, внедряю, тестю.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий