[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 409

 
Potete dirmi come dividere tutti gli ordini in due gruppi all'apertura in modo che io possa vedere a quale gruppo appartiene ogni ordine? (MAGIC non funziona)
 

Salve.

Potete dirmi per favore se è possibile creare un array o la sua controparte dalle variabili in qualche modo? La mia variante è riportata qui sotto, ma è, ovviamente, errata.

Grazie in anticipo.

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:

Salve.

Potete dirmi per favore se è possibile creare un array o il suo analogo dalle variabili in qualche modo? La mia variante è riportata qui sotto, ma è, ovviamente, errata.

Grazie in anticipo.

elemento per elemento

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

 
costy_:

elemento per elemento

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

Perfetto! Grazie.
 

Per favore, spiega il principio dell'azione delle bandiere.

Se la condizione1 è soddisfatta, allora Val_max=vero e si passa a controllare la condizione2 (nei tick successivi la condizione1 non viene più controllata finché non si dichiara forzatamente che Val_max=falso). O ad ogni tick Condition1 sarà controllato per assicurarsi che sia vero e se la condizione non è soddisfatta, allora Val_max=falso ?

Se la condizione2 è vera, allora Cl_dn=vero e procediamo a controllare la condizione3 (nei prossimi tick la condizione2 non sarà controllata finché non dichiariamo forzatamente Cl_dn=falso). O ad ogni tick Condition1 e Condition2 saranno controllate per la validità e se non sono soddisfatte, allora Val_max=falso e Cl_dn=falso?

Se la condizione3 è soddisfatta e Cl_dn==vero, allora Val_min=vero e passa a

Come controllare che se la Condizione1 è soddisfatta, allora non controllarla più e ai prossimi tick controllare la Condizione2 e così via?

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("Значение инд. >= V alue_max (исп. 1-е усл.)");
}
if (Условие2)
{
 Cl_dn=true;
 Alert("1 бар закрылся падением (исп. 2-е усл.)");
}
if (Условие3 && Cl_dn==true)
{
 Val_min=true;
 Alert("Значение инд. <= V alue_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_:

elemento per elemento

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

No, provato in entrambi i modi - il compilatore genera errori.
 
nemo811:
No, ho provato in entrambi i modi - il compilatore genera errori.


E così, se NOrd[] non è un indicatore e non si trova in un blocco globale:

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


Li ho solo in rosso (e ce ne sono 6) e dopo ogni test devo colorare il grafico manualmente (sono fatto così...). Non voglio riscriverlo.

Forse c'è un comando standard?

Non giudicare strettamente, sto solo imparando...

cerca #proprietà indicator_color1 Red

 
nemo811:
No, ho provato in entrambi i modi - il compilatore genera errori.

Leggi

prima imposta la dimensione dell'array

buf[2]; .

assegnare

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

Ci vorranno 2 minuti perleggerlo.

 
Mislaid:


Altrimenti, se NOrd[] non è un indicatore:

Grazie. Nessun errore ora.