Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1040

 
Buongiorno, la seguente domanda non riesco a capire, quando compilo l'indicatore ottengo sempre valori diversi. C'è un controllo per vedere se la chiamata all'indicatore iCustom funziona? Ho il sospetto che alcuni indicatori non abbiano il tempo di caricarsi, ecco perché i loro segnali rimbalzano. C'è un modo per controllare se iCustom è stato caricato correttamente?
 
LRA:

Ekburg!!! Tutte le avvertenze dovrebbero essere eliminate. Il primo avvertimento significa che la dichiarazione non ha effetto - scartata dal compilatore - questo è male. L'ultimo avvertimento significa che la dimensione di una variabile locale (array) supera i 512kB e quindi non ha effetto - peccato. Il resto degli avvertimenti - potrebbe essere usata una variabile non inizializzata. È come quando ci si dimentica di mettere i soldi sulla carta e si cerca di spenderli. Dobbiamo controllare tutti i rami del programma. A volte il compilatore è troppo assicurato. In questo caso dovreste dichiararlo in questo modo: int x=0; string y=""; bool z=falso;

primo e ultimo avvertimento eliminato.

ok, capito, proverò)

 
LRA:

Ekburg!!! Tutte le avvertenze dovrebbero essere eliminate. Il primo avvertimento significa che l'operatore non ha effetto - scartato dal compilatore - questo è male. L'ultimo avvertimento è che la dimensione della variabile locale (array) supera i 512kB e quindi non ha effetto - peccato. Il resto degli avvertimenti - potrebbe essere usata una variabile non inizializzata. È come quando ci si dimentica di mettere i soldi sulla carta e si cerca di spenderli. Dobbiamo controllare tutti i rami del programma. A volte il compilatore è troppo assicurato. In questo caso dovreste dichiararlo in questo modo: int x=0; string y=""; bool z=falso;

Ho assegnato degli zeri alle variabili durante l'inizializzazione, gli avvisi sono scomparsi, ma per quanto riguarda gli array?

E non è nel luogo della sua dichiarazione, ma dove viene usato alla fine, dove si trova l'uscita dell'array tramite la funzione print.

 
Ekburg:

Ho assegnato degli zeri alle variabili durante l'inizializzazione, gli avvisi sono scomparsi, ma per quanto riguarda gli array?

E non è dove è dichiarato, è dove è usato alla fine, dove l'output dell'array è tramite la funzione print.

Stampa non da uno ma da due o tre stampatori... o meglio in un ciclo, la variabile si forma molto grande...
 
Tecuciztecatl:
produrre due o tre stampe invece di una sola... o meglio in un ciclo, la variabile si forma molto grande...

Lo faccio già con il looping...(

for(int z=0;z<6;z++)
      {
      Print("О!!!   ",z,"   Кол-во  = ",Info[z][0],"; Кол-во B = ",Info[z][1],"; Кол-во S = ",Info[z][2],"; Максимальное отклонение = ",Info[z][3],"; Среднее отклонение = ",Info[z][4]);
      Print("B!!!   ",z,"   Кол-во + = ",BI[z][0],"; Кол-во - = ",BI[z][1],"; Общий объём = ",BI[z][2],"; Средний объём = ",BI[z][3],"; Мах просадка = ",BI[z][4],"; Средняя просадка = ",BI[z][5]);
      Print("S!!!   ",z,"   Кол-во + = ",SI[z][0],"; Кол-во - = ",SI[z][1],"; Общий объём = ",SI[z][2],"; Средний объём = ",SI[z][3],"; Мах просадка = ",SI[z][4],"; Средняя просадка = ",SI[z][5]);
      }

Ho evidenziato in rosso dove il compilatore fa riferimento.

 

dividere ogni stampa in 2-3 stampe... anche se è strano... quali sono i tipi di dati nell'array?

provato in questo modo, funziona:

double Info[6][6],BI[6][6],SI[6][6];

for(int z=0;z<6;z++)
      {
      Print("О!!!   ",z,"   Кол-во  = ",Info[z][0],"; Кол-во B = ",Info[z][1],"; Кол-во S = ",Info[z][2],"; Максимальное отклонение = ",Info[z][3],"; Среднее отклонение = ",Info[z][4]);
      Print("B!!!   ",z,"   Кол-во + = ",BI[z][0],"; Кол-во - = ",BI[z][1],"; Общий объём = ",BI[z][2],"; Средний объём = ",BI[z][3],"; Мах просадка = ",BI[z][4],"; Средняя просадка = ",BI[z][5]);
      Print("S!!!   ",z,"   Кол-во + = ",SI[z][0],"; Кол-во - = ",SI[z][1],"; Общий объём = ",SI[z][2],"; Средний объём = ",SI[z][3],"; Мах просадка = ",SI[z][4],"; Средняя просадка = ",SI[z][5]);
      }
 
Ekburg: mettendo in loop l'uscita...
Mostra la dichiarazione dell'array e spiega perché è così. Perché bidimensionale, perché questa dimensione, quanti elementi sono effettivamente utilizzati, qual è il margine e per cosa.
 
LRA:
Per favore, mostra la dichiarazione dell'array e spiega perché è così. Perché bidimensionale, perché questa dimensione, quanti elementi sono effettivamente utilizzati, qual è il margine e per cosa.

   double Info[6][5];
   double BI[6][7];
   double SI[6][7];

Sono dichiarati all'inizio dello script, poi riempiti gradualmente con l'esecuzione del codice.

Forse il problema è che alcuni calcoli producono valori con molti zeri? Forse hanno bisogno di essere normalizzati?

 

Ragazzi, ecco un consiglio. L'indicatore chiama altri indicatori. Come rendere l'esecuzione delle funzioni dell'indicatore principale solo dopo che tutti i valori sono stati caricati da altri indicatori. L'indicatore di scorrimento non funziona, cosa fare???? Come controllare che i dati di altri indicatori siano caricati e si possa iniziare il calcolo????

Perché quando si compila durante l'apparizione della prossima barra sta saltando, alcuni dati sono presi per una vecchia barra, alcuni per una nuova, tenendo conto che uso diversi simboli, risulta che alcuni del simbolo non è aggiornato, e i dati viene per la barra precedente. Come sincronizzare che tutti i simboli abbiano una nuova barra e possano fare calcoli?

 
Ciao professionisti, purtroppo nessuno mi ha risposto, Quali modifiche devono essere apportate al codice per produrre gli stessi risultati, ma due barre prima? O è impossibile?