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

 
Скажите, пожалуйста, как разделить все ордера на две группы еще при открытии каждого так, чтобы в дальнейшей работе видеть, к той или иной группе относится каждый ордер? (MAGIC не подойдет)
 

Здравствуйте.

Подскажите, пожалуйста, можно ли каким-то образом из переменных создать массив или его аналог? Мой вариант приведён ниже, но он, естественно, ошибочный.

Заранее благодарю.

extern int F1=0;
extern int F2=0; 
extern int F3=0; 
extern int F4=0; 
extern int F5=0; 
extern int F6=0; 

*************************************

int NOrd[]={F1,F2,F3,F4,F5,F6};
 
nemo811:

Здравствуйте.

Подскажите, пожалуйста, можно ли каким-то образом из переменных создать массив или его аналог? Мой вариант приведён ниже, но он, естественно, ошибочный.

Заранее благодарю.

поэлементно

NOrd[0]=F1; NOrd[1]=F2;....

 
costy_:

поэлементно

NOrd[0]=F1; NOrd[1]=F2;....

Отлично! Спасибо.
 

Объясните, пожалуйста, принцып действия флагов.

Если Условие1 выполнено, то Val_max=true и переходим к проверке Условия2 (при последующих тиках Условие1 уже не проверяем до тех пор, пока принудительно не объявим, что Val_max=false). Или при каждом тике будет проверять Условие1 на правдивость и если условие не выполнено, то Val_max=false ?

Если Условие2 выполнено, то Cl_dn=true и переходим к проверке Условия3 (при последующих тиках Условие2 уже не проверяем до тех пор, пока принудительно не объявим, что Cl_dn=false). Или при каждом тике будет проверять Условие1 и Условие2 на правдивость и если условия не выполнены, то Val_max=false и Cl_dn=false ?

Если Условие3 выполнено и Cl_dn==true, то Val_min=true и переходим дальше

Как сделать чтобы если Условие1 выполнилось, то больше его не проверять, а при следующих тиках проверять Условие2 и далее?

static bool Val_max, Cl_dn, Val_min; //static or global
                                        |
//+------------------------------------------------------------------+
int start()
  {
   int j;
   double bid;                                         
   bid=Bid;                                    // Текущая цена продажи
   string
   Symb=Symbol();                               // Название фин.инстр.
double Value_max=1.0000;
double Value_min=0.9980;
double Open_1=Open[1];
double Close_1=Close[1];
//----

//--------------------------------------------------------------- 4 --

double Val=iCustom(NULL, 0, "Название Польз. Индикатора",0,0);   // Присваиваем пер. Val значение польз. индикатора
if (Условие1)
{
 Val_max=true;                  // 
 Alert("Значение инд. >= Value_max (исп. 1-е усл.)");
}
if (Условие2)
{
 Cl_dn=true;
 Alert("1 бар закрылся падением (исп. 2-е усл.)");
}
if (Условие3 && Cl_dn==true)
{
 Val_min=true;
 Alert("Значение инд. <= Value_min (исп. 3-е усл.)");
}
if (Val_max==true && Cl_dn==true && Val_min==true)
  {
   for (j = 0; j < OrdersTotal(); j++)
    {
     OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == Symbol())
      {
      if (OrderType() == OP_SELL) return(0);
      }
    }
   
   OrderSend(Symbol(),OP_SELL,0.1,NormalizeDouble(Bid,Digits),2,Bid+400*Point,Bid-400*Point,"",3,Red);  // Открытие SELL
   Val_max=false; Cl_dn=false; Val_min=false;
  }

//----
   return(0);
  }
 
costy_:

поэлементно

NOrd[0]=F1; NOrd[1]=F2;....

Нет, попробовал и так и сяк - компилятор выдаёт ошибки.
 
nemo811:
Нет, попробовал и так и сяк - компилятор выдаёт ошибки.


А так, если NOrd[] не индикатор и не расположен в глобальном блоке:

int NOrd[6];
NOrd[0]=F1; NOrd[1]=F2;....
 
DOCTORS:


У меня просто они по факту красные (а их 6 штук) и после каждого теста приходится график в ручную раскрашивать (да я вот такой я...). Не хочется переписывать заново.

Может есть стандартная команда?

Не судите строго, я только учусь...

ищите #property indicator_color1 Red

 
nemo811:
Нет, попробовал и так и сяк - компилятор выдаёт ошибки.

Почитайте

сначала задаем размер массива

buf[2]; .

присваиваем

buf[0]=x1; buf[1]=x2;

Почитайте займет 2 мин.

 
Mislaid:


А так, если NOrd[] не индикатор:

Спасибо. Теперь без ошибок.