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

 
Figar0 >> :
Esempio di passaggio di un parametro per riferimento, in questo caso non è una variabile che viene passata, ma un riferimento all'area di memoria dove è memorizzata.

Se non mi sbaglio, il problema principale non era nel passaggio di parametri, ma nella restituzione di SETTE valori dalla funzione (vedi domanda 1)

E la variante dell'autore:

return(taim_open,flag10);

Non si possono restituire più valori da una funzione tramite return.

 
locol91 >> :

Sì, porridge! Direi anche pilaf :-) . Ma dobbiamo ancora risolvere tutto.

Leggete le sezioni del libro di testo - è ben descritto lì, con esempi.

 
goldtrader >> :

Se non mi sbaglio, il problema principale non era nel passaggio di parametri, ma nel restituire SETTE valori dalla funzione (vedi domanda 1)

E la variante dell'autore:

Non si possono restituire valori multipli da una funzione.

Ho capito. All'interno della funzione void, a seconda del risultato, viene assegnato un nuovo valore alla variabile globale. E questo nuovo valore (come si è scoperto) non dovrebbe essere restituito.

 
locol91 >> :

Ho capito. All'interno della funzione void, a seconda del risultato, viene assegnato un nuovo valore alla variabile globale. E questo nuovo valore (come si è scoperto) non deve essere restituito.

Esattamente.

 
goldtrader писал(а) >>

Se non mi sbaglio, il problema principale non riguardava il passaggio di parametri, ma la restituzione di SETTE valori dalla funzione (vedi domanda 1)

Esatto, siamo arrivati al punto in cui dobbiamo modificare le variabili globali perché non si possono restituire valori multipli, mentre un modo più corretto di questa modifica è passarle nella funzione per riferimento. Se si tratta di un semplice trasferimento, nessun riferimento alle variabili è semplicemente non necessario) Nel tentativo di aiutare l'uomo, ha cominciato a confondersi:) :beer:

 

Iniziato a fare un indicatore di variazione percentuale del prezzo sul Mamba e qualche cosa di strano dopo NW Telecom è andato tutti gli stessi valori e colori non sono ntak colorato come concepito, il codice di questo tipo ovunque lo stesso

............................................

double CH16 = (( (iClose("RTKM",PERIOD_D1,0) * 100 ) / iClose("RTKM", PERIOD_D1, 1) - 100 ) );
color lColor16 = DimGray;
if ( CH16 > 0 )
lColor16 = DarkOliveGreen;
if ( CH16 < 0 )
lColor16 = Maroon;

double CH17 = (( (iClose("URSI",PERIOD_D1,0) * 100 ) / iClose("URSI", PERIOD_D1, 1) - 100 ) );
color lColor17 = DimGray;
if ( CH17 > 0 )
lColor17 = DarkOliveGreen;
if ( CH17 < 0 )
lColor17 = Maroon;

double CH18 = (( (iClose("SPTL",PERIOD_D1,0) * 100 ) / iClose("SPTL", PERIOD_D1, 1) - 100 ) );
color lColor18 = DimGray;
if ( CH18 > 0 )
lColor18 = DarkOliveGreen;
if ( CH18 < 0 )
lColor18 = Maroon;

................................

Chissà cosa ho incasinato ancora?)))


 
Ah, ecco, ho sbagliato di nuovo le parentesi e le virgole
 

Non capisco:

Print(StrToTime("forexforidiots"));


Tempo: 1243405200

La domanda è: che tipo di tempo è questo? Il parametro è sbagliato ma il tempo è lì. La documentazione non descrive il valore da restituire, quindi come posso catturare un errore di conversione?

 
Roger >> :

O rendere il biglietto statico o togliere la definizione dall'inizio.

Sì sì, rendere il biglietto statico e tutto va bene, grazie per la scienza. Può spiegare il fenomeno? Mi piacerebbe saperlo, e che cosa ora lo mantiene statico per tutto il tempo?

 
Dimoncheg >> :
Oh, ho capito, ho fatto di nuovo casino con le parentesi e le virgole.

E come si fa a versarlo in MetaTrader? Da Quickquick?

Motivazione: