Скачать MetaTrader 5

Математический вопрос! Мартингейл - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Artyom Trishkin
Модератор
81485
Artyom Trishkin  
trump:


Спасибо. Кое-что для меня урок: SymbolProfit+=(OrderProfit()+OrderCommission()+OrderSwap());

Остальное туманно. Как насчёт только баев???

//+----------------------------------------------------------------------------+
double PriceWL(int op, int mn) {          // Рассчёт БУ для однонаправленных позиций
   double Res=0, pp, pt, tic, NumPP, Prof=0, SumLot=0.00000001;// костыль во избежание деления на ноль
   int i;
   
   pt =MarketInfo(sy,MODE_POINT);
   tic=MarketInfo(sy,MODE_TICKVALUE);                          // Стоимость тика
   for (i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderMagicNumber()!=mn)   continue;
         if (OrderSymbol()!=sy)        continue;
         if (OrderType()!=op)          continue;
         Prof+=(OrderProfit()+OrderSwap()+OrderCommission());  // Суммарный профит позиций
         SumLot+=OrderLots();                                  // Суммарный лот позиций
         }
      }
   NumPP=MathAbs(Prof/(tic*MathAbs(SumLot)));                  // Количество пунктов до уровня бу
   if (op==0) Res=Ask+NumPP*pt;
   if (op==1) Res=Bid-NumPP*pt;
   
   return(Res);
}
//+----------------------------------------------------------------------------+
khorosh
9043
khorosh  
trump:


По формулам получаются скачки в закрытии, а хочется уменьшить риски... Вот не могу понять что не так...

Если вы имеете ввиду скачки на графике баланса, то это нормально, если закрытие производится при достижении определённого количества профита в пунктах.
Stanislav Lobanov
555
Stanislav Lobanov  
artmedia70:


Подходит. Спасибо. Не могу понять где ошибка в моих предыдущих рассуждениях.

p1*l1 + p2*l2 + p3*l3 = (l1+l2+l3) * p4;

p4 - Цена в которой позиция закрывается в ноль... А я к ней прибавлял TakeProfit в TrailingStop тут и получался суммарный профит по всем позициям... Угу.

А тут: NumPP=MathAbs(Prof/(tic*MathAbs(SumLot))); Я получаю количество пунктов под безубыток...

А тут: double lot=MathAbs(-600)/30/MarketInfo(Symbol(),MODE_TICKVALUE); Получаем размер лота, чтобы через 30 пунктов уйти в плюс.

Так... Пойду попробую...

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