[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 170

 
угу, и куда мы придем ? внимательно читайте вопрос. речь идет от калькуляции профита, в определенной точке, не текущей.
 
hedger:

Возможно.

Но если причина в том, что вопрос по МТ5, а не МТ4, то ориентировался вот по этому списку:


Это лишь замануха нас на пятёру с её рекламой... :-) Подробнее - См. треуги наступают.
 
FAQ:
угу, и куда мы придем ? внимательно читайте вопрос. речь идет от калькуляции профита, в определенной точке, не текущей.
Угу. Точно. Извиняйте не добдил.
 

Кажется так... к сожалению, на тестере это проблематично проверить (либо я настолько хочу спать, что не соображу как), проверьте?

double AcountProfitEx (double Price) {
   double PipsPrice = MarketInfo(Symbol(),MODE_TICKVALUE)/(MarketInfo(Symbol(),MODE_TICKSIZE)/MarketInfo(Symbol(),MODE_POINT));
   double ProfitSum = 0;
   for (int i = OrdersTotal(); i > 0; i--) {
      OrderSelect(i, SELECT_BY_POS);
      if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL)) {
         ProfitSum += (OrderOpenPrice()-Price)*PipsPrice*OrderLots();
      }
   }
   return (ProfitSum);
}
 

добрый день.

как проверить целое ли получилось число ?

например, в результате от деления от одного числа на другое

 
Stells:

добрый день.

как проверить целое ли получилось число ?

например, в результате от деления от одного числа на другое


bool CheckInt(double Value, double Delta){
   if (MathAbs(Value-MathRound(Value))<Delta) 
       return(true);
   return(false);
}

Можно примерно так

Delta - Заданная погрешность

 
if(MathMod(input,1.0)==0){
    // значит input целое
}
 
Vinin:

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

int Orders=HistoryTotal(); // history orders total
int Kol_Orders=0; // количество сделок

for(int s=Orders-1;s>=0;s--)
{
if(OrderSelect(s,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка в истории!");
break;
}
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL || OrderMagicNumber()!=MAGIC)
continue;
Kol_Orders++;

}
bool CheckInt(double Value, double Delta){

Value=Kol_Orders/2;

delta =0.001;
if (MathAbs(Value-MathRound(Value))<Delta)
return(true);
return(false);
}

 
FAQ:

так можно ?

int Orders=HistoryTotal(); // history orders total
int Kol_Orders=0; // количество сделок

for(int s=Orders-1;s>=0;s--)
{
if(OrderSelect(s,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка в истории!");
break;
}
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL || OrderMagicNumber()!=MAGIC)
continue;
Kol_Orders++;

}

if(MathMod(Kol_Orders/2,1.0)==0){
// значит input целое
}

 
Добрый день! Уважаемые Профи, подскажите как вы тестируете своих советников? Раньше мы пользовались скриптом Birt’s Patch и получали результаты 99%, но с 1 числа он перестал работать, так как терминал перестал поддерживать старые билды... и вот теперь не знаю даже как быть, можно ли доверять результатам обычных тестов терминала? Как вы выходите из положения? А может кто-нибудь посмотрит скрипт и сможет его адаптировать под последний билд?
Файлы: