Errori, bug, domande - pagina 1554
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Dato che non ho ottenuto una risposta nell'altro thread, ripeterò la domanda qui, forse questo aiuterà
"
Potete per favore dirmi qual è il mio errore.
for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES)," PriceOpenSell[%d] = %G",i,PriceOpenSell[i]);
La data dall'array OpenSellTime non viene stampata e non la seconda parte dell'espressione - PriceOpenSell.
E non riesco a trovare i comandiprintf come%G e%d.
"
Anche se qualsiasi tutorial C funzionerebbe anche per te.
Grazie per la risposta, ma il link è confuso... Non riesco a capirlo subito - ho visto questo testo nell'aiuto prima di iniziare a scrivere sul forum.
Se ho capito bene, %d è per ignorare gli zeri, se ce ne sono, mentre %G è per emettere un valore senza tagliare gli zeri? Non sono un idiota, ma non riesco a capire l'aiuto e senza capire non posso capire perché la mia stringa non funziona correttamente...
Grazie per la risposta, ma il link è confuso... Non riesco a capirlo subito - ho visto questo testo nell'aiuto prima di iniziare a scrivere sul forum.
Se ho capito bene, %d è per ignorare gli zeri, se ce ne sono, mentre %G è per emettere il valore senza tagliare gli zeri? Non sono stupido, ma non riesco a capire l'aiuto, e se non lo capisco non posso capire perché la mia stringa non funziona correttamente...
Grazie per la risposta, ma il link è confuso... Non riesco a capirlo subito - ho visto questo testo nell'aiuto prima di iniziare a scrivere sul forum.
Se ho capito bene, %d è per ignorare gli zeri, se ce ne sono, mentre %G è per emettere il valore senza tagliare gli zeri? Non sono stupido, ma non riesco a capire l'aiuto, e se non lo capisco, non riesco a capire perché la mia stringa non funziona correttamente...
Non uso questa funzione nel mio lavoro, ma penso che possiate facilmente eseguire voi stessi dei semplici esperimenti.
Ma lo faccio - l'ho cercato e lo uso, ma non riesco a capire la sintassi esatta, perché non si adatta alla specifica
%[flags][larghezza][.precisione][{h | l | ll | I32 | I64}]tipo
Non è menzionato nel file di aiuto che non tutti i parametri possono essere utilizzati. E, soprattutto, non è chiaro dove ho un errore di sintassi, forse se me lo facessero notare, capirei meglio la questione.
Leggete qui.
Grazie. L'ho letto sommariamente, cercando le informazioni giuste - si scopre che la prima parte è un modello e ho sbagliato... giusto?
Tipo, dovete specificare i posti dove saranno le variabili, nel mio caso è un indice dell'array, tempo e numero di tipo doppio, e poi le variabili stesse. Dalla logica dell'articolo, dovrebbe essere così
for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G, PriceOpenSell[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES),i,PriceOpenSell[i]);
O è di nuovo sbagliato?
Grazie. L'ho letto sommariamente, cercando le informazioni giuste - si scopre che la prima parte è un modello e l'ho inventato male... giusto?
Tipo, dovete specificare i posti dove saranno le variabili, nel mio caso è un indice dell'array, tempo e numero di tipo doppio, e poi le variabili stesse. Dalla logica dell'articolo, dovrebbe essere così
for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G, PriceOpenSell[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES),i,PriceOpenSell[i]);
O è di nuovo sbagliato?
Beh, è scritto molto chiaramente lì sul template - i posti dove le variabili sono inserite sono segnati con un segno % nel template. L'intero modello è racchiuso tra virgolette. Poi, dopo il modello stesso, sono elencate le variabili separate da virgola che sono specificate nel modello. In ordine da sinistra a destra nell'ordine in cui sono scritti nel modello.
Ci sono anche tutte le specifiche per i diversi tipi di variabili e la loro formattazione. Basta non dare un'occhiata, a partire dal titolo"Formattazione delle stringhe sul modello".
Beh, è molto chiaro sul template - i posti dove le variabili sono inserite sono indicati da un segno % nel template. L'intero modello è racchiuso tra virgolette. Poi, dopo il modello stesso, sono elencate le variabili nel modello, separate da virgole. In ordine da sinistra a destra nell'ordine in cui sono scritti nel modello.
Ci sono anche tutte le specifiche per i diversi tipi di variabili e la loro formattazione. Basta leggere senza guardare, a partire dal titolo"Formattazione delle stringhe per modello".
È così che ho scritto - tra virgolette il template e poi le variabili in ordine, cosa c'è di sbagliato?
"OpenSellTime[%index deve essere inserito qui] = %time, PriceOpenSell[%index] = %price" - è questo il modello?
Se è così, dovrebbe essere così:
"OpenSellTime[%i] = %I64u, PriceOpenSell[%i] = %.5f"
I valori stessi dovrebbero essere elencati dopo, separati da virgole:
totale:
... bene ... se non ho tralasciato nulla...
MQL4, DoubleToStr() e DoubleToString(). In DoubleToStr() per il 2° argomento aggiungere "Default 8".
Codice:
Nei log, il risultato per loro sarà = 0,12345679, cioè la funzione arrotonda il valore; non è scritto nell'aiuto. Penso che valga la pena scrivere di più su questo, o almeno mettere esempi del tipo:
, dove l'arrotondamento sarà visibile.