Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 967

 
Сколько циклов тестирования способен выдержать жесткий диск? В том смысле, как быстро он подохнет? Бывали такие случаи?
 
macleta:

Здравствуйте. Хочу закрыть разнонаправленные позиции когда профит будет =0 Разное количество бай, селл позиций, разные объёмы лотов.

что неправильно в функции поиска средней цены, то есть точки нулевого профита?

double AveroProf(string sy="", int op=-1, int mn1=-1) 
   {
 

   double Buylots=0;
   double Buysum=0;
   double Selllots=0;
   double Sellsum=0;
 
   double zeroprice=0;
 
   for (int i=0; i<OrdersTotal(); i++)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber()!=mn1) continue;
      if (OrderType()==OP_BUY)
      {
       Buylots+=OrderLots();
       Buysum+=OrderLots()*OrderOpenPrice();
      }
      if (OrderType()==OP_SELL)
      {
       Selllots+=OrderLots();
       Sellsum+=OrderLots()*OrderOpenPrice();
      }
   
   }
   if ((Buylots-Selllots)>0)
   zeroprice=NormalizeDouble((Buysum - Sellsum)/(Buylots - Selllots),_Digits);

   return( zeroprice);
   }
 
Vladimir Pastushak:

по моему этот код работает только для разнонаправленных 2-х ордеров

если будет несколько ордеров Buy и Sell и все с разными ценами открытия, то кажется не работает это - нужно учитывать профит ордера и стоимость пункта в валюте

посмотрел, что под рукой, ничего не нашел, но точно знаю, что проверял такой код

кажется в КБ есть индикатор который рассчитывает правильно уровни для разнонаправленных ордеров - в прошлом году искал и находил

 
macleta:

Здравствуйте. Хочу закрыть разнонаправленные позиции когда профит будет =0 Разное количество бай, селл позиций, разные объёмы лотов.

что неправильно в функции поиска средней цены, то есть точки нулевого профита?

Если вы хотите поставить стопы, то от этого на разнонаправленных позициях лучше отказаться. Хотя при жестком спреде конечно может и нормально отработать. Но даже у таких ДЦ бывает момент что спред скачет. Поэтому лучший вариант высчитывать профит и в момент когда он будет немного более 0 (проскальзывание ни кто не отменял), закрывать позиции. То-есть, работать с текущего момента рынка.
Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Igor Makanu:

по моему этот код работает только для разнонаправленных 2-х ордеров

если будет несколько ордеров Buy и Sell и все с разными ценами открытия, то кажется не работает это - нужно учитывать профит ордера и стоимость пункта в валюте

посмотрел, что под рукой, ничего не нашел, но точно знаю, что проверял такой код

кажется в КБ есть индикатор который рассчитывает правильно уровни для разнонаправленных ордеров - в прошлом году искал и находил

Значит плохо проверяли... Это классический 100% расчет 0

 
Vladimir Pastushak:

Значит плохо проверяли... Это классический 100% расчет 0

ну ну, спорить даже не собираюсь, вернетесь на землю бренную попробуйте проверить где у Вас будет уровень безубытка если сверху вниз на графике выставить:

1. бай - бай - бай - селл - селл - селл

2. бай - селл - селл - селл - бай - бай

вот правильный расчет https://www.mql5.com/ru/code/10007 в версии 2 , нужно такой расчет использовать

      if(BuyLots>0) BuyPrice = Bid - ((BuyProfit + SellProfit - MyProfit) / (TickValue * BuyLots) * Point); //уровень безубытка для всех BUY ордеров
      if(SellLots>0) SellPrice = Ask + ((SellProfit + BuyProfit - MyProfit) / (TickValue * SellLots) * Point); //уровень безубытка для всех SELL ордеров


лучше проверяйте свой классический расчет 

 
В папке tester/history хранятся котировки?
 

Привет, помогите новичку с простой задачей. Индикатор в отдельном окне показывает дробные числа 0.123456 1.123456 а мне нужны целые типа 123 1123

подскажите кому не лень как исправить это?

 
potom:

Привет, помогите новичку с простой задачей. Индикатор в отдельном окне показывает дробные числа 0.123456 1.123456 а мне нужны целые типа 123 1123

подскажите кому не лень как исправить это?

int value = (int) 0.12456789*1000000;

Самое простое , что пришло в голову)

 
Konstantin Nikitin:
Если вы хотите поставить стопы, то от этого на разнонаправленных позициях лучше отказаться. Хотя при жестком спреде конечно может и нормально отработать. Но даже у таких ДЦ бывает момент что спред скачет. Поэтому лучший вариант высчитывать профит и в момент когда он будет немного более 0 (проскальзывание ни кто не отменял), закрывать позиции. То0есть, работать с текущего момента рынка.

Пробую пирамидинг, наращивать уменьшенным лотом по тренду, но при открытых противоположных.

Спасибо всем кто помогал.