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

 
AlexeyVik:
А выделенную строку можешь перевести на наш человеческий язык? Что должно быть и что получается при выполнении этой строки...

// если количество  ордеров Buy увеличилось на 1 то...

{ 

функция например открывает, или закрывает другие ордеры... 

} 

Она не обязательно должна быть такой..if (Mas_Tip[0]+1)   можно сделать if (Mas_Tip[0] > Mas_Tip[1]) // если ордеров Buy больше чем Cell. То открыть отложенный например...

Дело в том что на следующем тике эти данные снова истина.  

 

 
Leonid123456:

// если количество  ордеров Buy увеличилось на 1 то...

{ 

функция например открывает, или закрывает другие ордеры... 

} 

if (Mas_Tip[0]+1) 

в скобках у if должна быть bool, то есть true или false.

А здесь, очевидно, int. То есть целое число.

Конечно, true это 1, а false это 0 (если не путаю). Но все равно не правильно. Что возвращает Mas_Tip[0]?

 
ikatsko:

if (Mas_Tip[0]+1) 

в скобках у if должна быть bool, то есть true или false.

А здесь, очевидно, int. То есть целое число.

Конечно, true это 1, а false это 0 (если не путаю). Но все равно не правильно. Что возвращает Mas_Tip[0]?

кол-во открытых ордеров Buy.

 
Leonid123456:

// если количество  ордеров Buy увеличилось на 1 то...

{ 

функция например открывает, или закрывает другие ордеры... 

} 

Нет, это ты так хочешь. А на самом деле это не так. В массиве Mas_Tip[0] имеется какое-то значение и если оно больше нуля то условие if(Mas_Tip[0]) уже будет истина. А если к этому значению ещё прибавить 1 то истина будет всегда потому, что количество открытых ордеров не может быть равно -1

 
AlexeyVik:

Нет, это ты так хочешь. А на самом деле это не так. В массиве Mas_Tip[0] имеется какое-то значение и если оно больше нуля то условие if(Mas_Tip[0]) уже будет истина. А если к этому значению ещё прибавить 1 то истина будет всегда потому, что количество открытых ордеров не может быть равно -1


пробовал сделать так

   bool  Fact_1 = false;                    // Глобальная перемен.
       bool  Fact_2 = false;                    // Глобальная перемен.
//--------------------------------------------------------------------
int start()                                     // Спец. функция start
  {
                          // Локальная перемен.
   if (Fact_2==true)                            //Если сообщение уже..
      return;                                   //..было, то выходим
 
   if (Mas_Tip[0]+1)
      Fact_1 = true;                            // Произошло событие 1
 
   
 
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------
                               // Пользовательс. ф-ия
  {
             // Сообщение
   Fact_2 = true;                               // Произошло событие 2
   return;                                      // Выход из польз.ф-ии

} 

Получается одноразово. 

 
ikatsko:

if (Mas_Tip[0]+1) 

в скобках у if должна быть bool, то есть true или false.

А здесь, очевидно, int. То есть целое число.

Конечно, true это 1, а false это 0 (если не путаю). Но все равно не правильно. Что возвращает Mas_Tip[0]?

false это 0 а если не 0 то true

Попробуй такую строку

bool b;
b = 7.40;
if(b) Print("b = ", b);
Компилятор может предупредить о возможной потере точности но сработает.
 

можно отбросить Mas_Tip[0]

Как получить событие.  Открылся Buy.

 
Leonid123456:

можно отбросить Mas_Tip[0]

Как получить событие.  Открылся Buy.

запоминать в какой-то переменной старое кол-во Бай и сравнивать с текущим значением, возвращаемым функцией подсчёта баев, как ещё?
 
evillive:
запоминать старое кол-во Бай и сравнивать с текущим, как ещё?
Именно это и не получается
 
Leonid123456:
Именно это и не получается
создать целочисленную переменную, присвоить ей количество покупок, а потом ещё раз когда надо подсчитать покупки и сравнить с значением той переменной не получается?