Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 48

 

Пацаны, давно не записывал видео с тестера стратегий. Забыл. Подскажите прогу, может щас какая появилась новая... Благодарю. Щас сам гляну поиском на сайте через гугл, вроде в "Навигаторе" была.

Или ссыль киньте, где почитать об этом...

 

Добрый день. Дорогие учителя, вот пишу функцию, ее задача, перебрать все ордера по магику и вернуть тикет ордера с наименьшим профитом.

Посмотрите, я правильно все написал:

int TicketMinProfitPos(string sy="", int op=-1, int mn=-1) {
double mi, p;
int    i, k=OrdersTotal(), pp=0, ti=0;
double arr_Orders[10][10];
int Qnt=0; // объявление и обнуление счётчика ордеров
ArrayInitialize (arr_Orders,0); // обнуление массива

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
             Qnt++;
             arr_Orders[Qnt][8]=OrderProfit();
       } arr_Orders[0][0]=Qnt;
     }
   }
 }
}

int index1=0;
double min= 10000000;
  for (int i=0;i<10;i++) {
      if (arr_Orders[i][8]< min){
      index1=i; min=arr_Orders[i][8]
      }
  }
return(min);

}
 
Подскажите как реализовать ф-цию по сортировке строкового массива в алфавитном порядке. например string mass[]={"USDJPY","EURUSD",...,"AUDUSD"} привести к типу {"AUDUSD", "EURUSD",..., "USDJPY"}
 

Столкнулся с такой интересной проблемой:

Пишу тривиальное условие:

if( А < Б )
 {
  // Выполнить действия
 }

Казалось бы - проще некуда... Но! происходит следующее: А == Б и, тем не менее, условие считается верным и выполняются действия.

Модифицируется ордер, в частности, - выставляется СЛ. Но СЛ итак уже является равным - модифицировать не нужно, но все равно каждый раз программа дает распоряжение на модификацию ордера (по той же самой цене).

Конечно же я все пропринтовал. И пытался и так и сяк переписать, добавить доп условия (если они не равны "!=") - и все равно условие проходит.

Что это за такое явление и с чем может быть связано?

 
Chiripaha:

Столкнулся с такой интересной проблемой:

Пишу тривиальное условие:

Казалось бы - проще некуда... Но! происходит следующее: А == Б и, тем не менее, условие считается верным и выполняются действия.

Модифицируется ордер, в частности, - выставляется СЛ. Но СЛ итак уже является равным - модифицировать не нужно, но все равно каждый раз программа дает распоряжение на модификацию ордера (по той же самой цене).

Конечно же я все пропринтовал. И пытался и так и сяк переписать, добавить доп условия (если они не равны "!=") - и все равно условие проходит.

Что это за такое явление и с чем может быть связано?

Перед сравнением дробных чисел их необходимо нормализовать.
 
SergMich:
Подскажите как реализовать ф-цию по сортировке строкового массива в алфавитном порядке. например string mass[]={"USDJPY","EURUSD",...,"AUDUSD"} привести к типу {"AUDUSD", "EURUSD",..., "USDJPY"}

Функцией StringGetChar вытаскиваете номер первого символа, ну а потом сортируете. потом по второму.
 

Спасибо, конечно за ссылки, но это немного не то. Цена фракатала и так известна, как найти номер бара которому соответствует эта цена на другом таймфрейме?

 
по времени бара
 
FAQ:
по времени бара

А можно небольшой пример кода?