[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 262

 
dzhini:
Potete dirmi come determinare la coordinata del prezzo di un oggetto grafico di tipo OBJ_LABEL?

Usare ObjectGet con i parametri OBJPROP_XDISTANCE, OBJPROP_YDISTANCE
 

1 domanda.Se c'è un numero 10 tra parentesi per il nome di una matrice, significa che ci sono 11 elementi in quella matrice

Domanda 2. Dovrei assicurarmi che non ci siano zeri dopo l'end_set dell'array, ma tutti i prezzi dall 'Allow_set all'end_set dovrebbero esserci . Sto facendo correttamente l'ArrayResize?

//globale
price[10];
int i =-1;
//-------------------
int start()
{
if(!TF_F_NewBar())return(0);
if(Allow_setting == true)
{
i++;
ArrayResize(price, i);//Capisco che l'array price[10] rimarrà price[0] (è permesso ?),
//cioè un posto nell'array dove si scrive zero
. Quindi ad ogni passo (barra)

//aumentare la dimensione dell'array
prezzo[i] = Close[1] ; // scrivo Close[1] invece di zero in questo array a un posto. Se questo è permesso,
// allora potete specificare il prezzo minimo dell'array[0]
;
}
if(end_set== true)
{
Elaborazione dati dell'array ;

i = -1; //dopo l'elaborazione, ritorna alla posizione originale
}
}

Mi scuso per aver messo il codice nel modo sbagliato, come dovrebbe essere.

 
gince:

1 domanda.Se c'è un numero 10 tra parentesi per il nome di una matrice, significa che ci sono 11 elementi in quella matrice


Tale matrice contiene 10 celle con indici da 0 a 9. Significa che il primo elemento sarà nella cella 1 con indice 0, ecco perché l'istruzione for inizia con 0.

Domanda 2. Dovrei assicurarmi che non ci siano zeri dopo l'end_set dell'array, ma tutti i prezzi dall 'Allow_set all'end_set dovrebbero esserci . Sto facendo correttamente l'ArrayResize?

Vuoi ottenere 10 prezzi di chiusura delle ultime 10 barre nell'array?

Scusa, non ho messo il codice nel modo giusto.

Puoi sempre modificare ciò che hai scritto, basta cliccare su "Modifica".


 
paladin80:

Volete allineare gli ultimi 10 prezzi vicino alle ultime 10 barre?

Puoi sempre modificare ciò che hai scritto, basta cliccare su "Modifica".


No, non 10, ma Allow_select to end_set. Può essere 40 o 65. Dovete assicurarvi che non ci siano zeri nell'array dopo end_set.
 
gince:
No, non 10, ma Allow_select prima di end_select. Questo può essere 40 o 65. Non deve avere zeri dopo end_set nell'array


Va bene, basta impostare l'array come dinamico all'inizio:

double цена[];

...

int init ()

{

…

ArrayResize (цена,0);

…

}

int start ()

{

…

}

 
gince:
No, non 10, ma Allow_select prima di end_select. Questo può essere 40 o 65. Non deve avere zeri dopo end_set nell'array

double цена[]; // динамический массив
int    начало=2; // 0 (ноль) это текущий, ещё не закрытый бар
int    конец=45;
int    количество;
//---
int init()
  {
   количество=конец-начало; // =43
   ArrayResize(цена, количество); // устанавливается размер массива - 43 ячейки
   return(0);
  }

//---
int start()
  {
    if(!TF_F_NewBar()) return(0);    
    if(Разрешить_набор == true)
    {
      for (int i=0; i<=количество-1; i++) // заполнить 43 ячейки с индексом от 0 до 42.
                                          // в ячейке 0 будет цена close для бара 2 и т.д.
      цена[i]=Close[i+начало];   
    }
   return(0);
  }
//---
 
paladin80:

Non so quanti elementi dovrebbe avere un array. Potrebbe essere 40 o 65. In una parola, abbiamo bisogno di un array dinamico

double цена[]; // динамический массив

int i = -1;
//---
int init()
  {
   ArrayResize(цена, 0); // устанавливается размер массива минимальным - 1 ячейка
   return(0);
  }

//---
int start()
  {
    if(!TF_F_NewBar()) return(0);    
    if(Разрешить_набор == true)                // это сигнал по индюку
    {
      //Пришел новый бар и резрешение есть 
      i++.                                     //увеличиваем индех            
      ArrayResize(цена, i)
      цена[i]=Close[i];   
   }
   if(конец_набора== true)   // это сигнал по индюку
   {
      //----
      //работа с массивом
      //----
      Pазрешить_набор == false; 
      i= -1;
//А тут
надо что нибуть делать с бывшим массивом (уменшить, очистить или еще что то)      
   }
   return(0);
 }
//---
 
gince:

Non so quanti elementi dovrebbe avere un array. Potrebbe essere 40 o 65. In una parola, abbiamo bisogno di un array dinamico

Lasciate che ve lo chieda dall'altro lato. Perché avete bisogno di riempire l'array con i prezzi di chiusura? double close[] stesso è già un array di prezzi di chiusura.
 
paladin80:
Te lo chiedo dall'altro lato. Perché avete bisogno di riempire un array con i prezzi di chiusura? double close[] stesso è già un array di prezzi di chiusura.
Non m'importa se è chiuso o aperto. La cosa più importante è che sono da ora a ora. Poi li filtro. Il filtraggio dovrebbe essere fatto in questo periodo da ora ad ora. Quando ho filtrato un array, ne rifaccio un altro con dati diversi. E disegno usando l'ultimo array. Quindi, questa matrice di cui hai chiesto è solo una intermedia.
 
In questo momento, per ogni barra, mette un cloze nell'array. E se non lo faccio, allora dovrò calcolare da quale barra raccogliere i dati, ciclare, filtrare. E questo lascia solo il secondo.