Ho un problema di tempo nel mio codice

 

Publi

Ho un problema di tempo nel mio codice

 

Publi

Risultati da 1 a 7 di 7

Discussione: Ho un problema di tempo nel mio codice

  1. #1
    Ho questo codice e funziona bene, disegnando una linea verticale alle 10:00 e un'altra linea verticale alle 20:00, ma se ho impostato il tempo ad es. 7:00 e 20:00 disegna solo la linea delle 20:00.

    Qualcuno può dirmi cosa c'è che non va?

    Codice inserito extern int iHour1 = 10; extern int iHour2 = 20;
    Codice inserito se (TimeHour (Tempo # 91; i # 93;) == iHour1 TimeMinute (Tempo # 91; i # 93;) == 0) {x ; ObjectCreate (Tempo x, OBJ_VLINE, 0, Ora # 91; i # 93;, Alto # 91; i # 93;); ObjectSet (Tempo x, OBJPROP_COLOR, Rosso);/Valore del colore per impostareottenere il colore dell'oggetto. ObjectSet (Time x, OBJPROP_STYLE, STYLE_DOT);/Il valore è una delle costanti STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT per impostareottenere lo stile della linea dell'oggetto. ObjectSet (Time x, OBJPROP_WIDTH, 1);/Valore intero per impostareottenere larghezza linea dell'oggetto. Può essere compreso tra 1 e 5. ObjectSet (Time x, OBJPROP_BACK, true);/Valore booleano per impostareottenere il flag di disegno di sfondo per l'oggetto. (ad esempio true nasconde il valore nella parte inferiore del grafico.)} else {if (TimeHour (Time # 91; i # 93;) == iHour2 TimeMinute (Time # 91; i # 93;) == 0) {x ; ObjectCreate (Tempo x, OBJ_VLINE, 0, Ora # 91; i # 93;, Alto # 91; i # 93;); ObjectSet (Tempo x, OBJPROP_COLOR, Giallo);/Valore del colore per impostareottenere il colore dell'oggetto. ObjectSet (Time x, OBJPROP_STYLE, STYLE_DOT);/Il valore è una delle costanti STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT per impostareottenere lo stile della linea dell'oggetto. ObjectSet (Time x, OBJPROP_WIDTH, 1);/Valore intero per impostareottenere larghezza linea dell'oggetto. Può essere compreso tra 1 e 5. ObjectSet (Time x, OBJPROP_BACK, true);/Valore booleano per impostareottenere il flag di disegno di sfondo per l'oggetto. (ad esempio true nasconde il valore nella parte inferiore del grafico.)}}

  2. #2
    Probabilmente ti manca la finestra di un minuto per disegnare la linea in qualche modo ... Forse non c'erano ticks durante quella finestra o un altro motivo ... Il tuo codice non dovrebbe mai essere così assoluto perché potresti sperimentare bug. Invece il tuo algo dovrebbe essere qualcosa sulla falsariga di: se la linea non esiste e il tempo è gt; = draw_time quindi traccia la linea. Inoltre, non utilizzare extern a meno che non sia assolutamente necessario modificare il parametro di input nel codice (che non dovrebbe mai essere), utilizzare invece la parola chiave di input perché si desidera che il compilatore si lamenti se si tenta accidentalmente di modificare l'input a livello di codice.

  3. #3

    Citazione Originariamente Scritto da ;
    Probabilmente ti manca la finestra di un minuto per disegnare la linea in qualche modo ... Forse non c'erano ticks durante quella finestra o un altro motivo ... Il tuo codice non dovrebbe mai essere così assoluto perché potresti sperimentare bug. Invece il tuo algo dovrebbe essere qualcosa sulla falsariga di: se la linea non esiste e il tempo è gt; = draw_time quindi traccia la linea. Inoltre, non usare extern a meno che tu non abbia assolutamente bisogno di cambiare il parametro di input nel codice (che dovrebbe mai essere), usa invece la parola chiave di input perché vuoi che il compilatore si lamenti se accidentalmente ...
    Hai dimentio di dire che sto testando questo nel tester di egia, quindi di cosa si tratta in questo minuto? Se ho impostato iHour1 su 7 non funziona, ma se ho impostato iHour1 su 10 funziona. Strano non è vero?

  4. #4

    Citazione Originariamente Scritto da ;
    {quote} Hai dimentio di dire che sto testando questo nel tester di egia, quindi di cosa si tratta in questo minuto? Se ho impostato iHour1 su 7 non funziona, ma se ho impostato iHour1 su 10 funziona. Strano non è vero?
    Come ho detto ... non puoi usare assoluti. Il tuo codice dice di farlo SOLO se l'ora esatta è 7 ore e 00 minuti.

  5. #5

    Citazione Originariamente Scritto da ;
    {quote} Come ho detto ... non puoi usare assoluti. Il tuo codice dice di farlo SOLO se l'ora esatta è 7 ore e 00 minuti.
    Ok, ho provato a cambiare il codice. Sembra ora, ma traccia solo la linea delle 20:00. Inserimento codice inserito int iHour1 = 7; input int iHour2 = 20; Codice inserito se (TimeHour (Tempo # 91; i # 93 == iHour1 TimeMinute (Tempo # 91; i # 93 gt; = 0) {x ; ObjectCreate (Tempo x, OBJ_VLINE, 0, Ora # 91; i # 93;, Alto # 91; i # 93; ObjectSet (Tempo x, OBJPROP_COLOR, Rosso);/Valore del colore per impostareottenere il colore dell'oggetto. ObjectSet (Time x, OBJPROP_STYLE, STYLE_DOT);/Il valore è una delle costanti STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT per impostareottenere lo stile della linea dell'oggetto. ObjectSet (Time x, OBJPROP_WIDTH, 1);/Valore intero per impostareottenere larghezza linea dell'oggetto. Può essere compreso tra 1 e 5. ObjectSet (Time x, OBJPROP_BACK, true);/Valore booleano per impostareottenere il flag di disegno di sfondo per l'oggetto. (ad esempio true nasconde il valore nella parte inferiore del grafico.)} else {if (TimeHour (Time # 91; i # 93 == iHour2 TimeMinute (Time # 91; i # 93 gt; = 0 ) {x ; ObjectCreate (Tempo x, OBJ_VLINE, 0, Ora # 91; i # 93;, Alto # 91; i # 93; ObjectSet (Tempo x, OBJPROP_COLOR, Giallo);/Valore del colore per impostareottenere il colore dell'oggetto. ObjectSet (Time x, OBJPROP_STYLE, STYLE_DOT);/Il valore è una delle costanti STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT per impostareottenere lo stile della linea dell'oggetto. ObjectSet (Time x, OBJPROP_WIDTH, 1);/Valore intero per impostareottenere larghezza linea dell'oggetto. Può essere compreso tra 1 e 5. ObjectSet (Time x, OBJPROP_BACK, true);/Valore booleano per impostareottenere il flag di disegno di sfondo per l'oggetto. (ad esempio true nasconde il valore nella parte inferiore del grafico.)}}

  6. #6
    1 allegati (s) Come si inizializza x? Globale o locale? Se locale viene eseguito come int x = 0 prima del ciclo? Quindi ogni volta che otterrai x = 0, ogni nuovo verticale cancellerà il precedente. E assicurati di essere passato a 1 ora e non 4 ore perché 4 ore non mostrerà la tua linea alle 7:00.
    https://www.forexmad.com/attachments...2122877888.mq4

  7. #7

    Citazione Originariamente Scritto da ;
    Come si inizializza x? Globale o locale? Se locale viene eseguito come int x = 0 prima del ciclo? Quindi ogni volta che otterrai x = 0, ogni nuovo verticale cancellerà il precedente. E assicurati di essere passato a 1 ora e non 4 ore perché 4 ore non mostrerà la tua linea alle 7:00. {file}
    x è globale Sono solo sui grafici M15

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Il sito di forexmad utilizza cookie
Il sito di forexmad utilizza cookie, alcuni dei quali già installati. Per avere maggiori informazioni sui nostri cookie ti preghiamo di cliccare qui. Ti preghiamo di cliccare sul bottone a destra per accettare i nostri cookie. Se continui a navigare sul sito di forexmad assumeremo che sei d'accordo ad utilizzarli.