Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 606

 
pako:
Ci sono quattro cinque settimane in un mese, è la quarta settimana del mese.
Sì, sì, quali sono le opzioni?
 
new-rena:
Capisco. Quindi vuole contabilizzare le settimane di questo tipo il 29 del mese precedente (lunedì, per esempio) e fino al 31 del mese corrente (anche lunedì, per esempio). Sarebbe più di un mese. Non è logico contare tali settimane.
No, ho bisogno di sapere che settimana è dall'inizio del mese corrente.
 
-Aleks-:
No, ho bisogno di sapere che settimana è dall'inizio del mese corrente.

Bene, come altra opzione - prendete le barre dal grafico sul periodo W1, contate il numero di barre del mese richiesto + l'anno richiesto e sarete felici.

Sì, sì, è esattamente questo. Ma non so come farlo su 5p.

 
new-rena:

Bene, come altra opzione - prendete le barre dal grafico sul periodo W1, contate il numero di barre del mese richiesto e sarete felici.

Sì, sì, è esattamente questo. Ma non so come farlo su 5p.

E senza barre? Puramente programmatico
 
pako:
E senza barre? In modo puramente programmatico.
Beh, è possibile, naturalmente, ho scritto la versione più semplice.
 
pako:
Come?

Un po' più complicato... E probabilmente devi sottrarre il numero di giorni della settimana dal numero inferiore, moltiplicato per 7, e poi confrontarlo con il numero del mese se il risultato è maggiore di 0 o 4. È più facile prenderlo da un grafico.

int НомерНеделиВмесяце=NormalizeDouble(НомерДНЯвМесяце/7,0)+1;
 
pako:
Non c'è nessun grafico.
SoloTimeLocal()?
 
pako:

poi quello che hai rovesciato, ho aggiunto lì - moltiplicare il numero della settimana per 7, analizzare e dovrebbe funzionare.

Questo è per la prima settimana quando ==1. Per l'ultimo devi sottrarre i giorni extra e fare la stessa analisi.

È ancora un casino, credo. Funzionerà, ma è goffo)))

 
pako:
non l'ha capito.
Meglio da un grafico, molto più facile. Sta facendo una serie temporale, vero?
 
pako:

non c'è un orario

C'è solo il tempo.

Nessun problema. Ho lanciato l'algoritmo. L'inizio solo senza un calendario, cioè:

int НомерДНЯвМесяце=TimeDay(TimeLocal());
Motivazione: