Barre di conteggio compresi i fine settimana - pagina 2

 
forex2030:

Non capisco a cosa mi servirà questo?

Forse una specie di enumerazione da giorno a punto e se nel periodo giorno = 6 o 0 allora giorno++;

Non c'è nessun punto. Tutti i grafici sul mercato (di qualsiasi tipo) sono fatti sulla base del fatto che non ci sono semplicemente giorni di riposo.

 
Алексей Тарабанов:

Non c'è nessun punto. Tutti i grafici sul mercato (qualsiasi mercato) sono fatti sulla base del fatto che non ci sono semplicemente giorni di riposo.

È possibile ciclare i giorni, per esempio se l'ultima data è 15 e poi si conosce la data 18, allora ricorderemo +2 (cioè 16 e 17 giorni di riposo).

 
forex2030:

È possibile scorrere i giorni, per esempio se l'ultima data è il 15 e poi si conosce la data 18, allora ricorda +2 (cioè i fine settimana 16 e 17)

Puoi farlo se lo vuoi davvero. Non c'è nessun punto.

La tendenza continuerà il 18. Da 15 a 18 è una barra.

 
Алексей Тарабанов:

Puoi farlo se lo vuoi davvero. Non c'è nessun punto.

Come può essere inutile?
Aggiungerò questo valore alle mie barre e otterrò 12+4=16 barre e la linea starà alla fine sulla data giusta

 
forex2030:

Cosa vuol dire che non ha senso?
Aggiungerò questo valore alle mie barre e otterrò 12+4=16 barre e la linea starà sulla data desiderata alla fine

La linea è sospesa nell'aria.

 
Алексей Тарабанов:

La linea rimarrà sospesa nell'aria.

Se aggiungo 16 battute al primo punto invece di 12 battute, perché rimarrà sospeso in aria?

 
forex2030:

Se aggiungo 16 battute al primo punto invece di 12 battute, perché rimarrebbe sospeso in aria?

Buona notte.

 

Ho bisogno di qualcosa del genere, ma incorniciato correttamente, è solo un pensiero

int NumData(datetime data1,datetime data2){
    int num=0;
    for (int d=data1; d>=data2; d--)
    if(TimeDayOfWeek(d)==6 || TimeDayOfWeek(d)==0) num++;
return(num);}
 
Perché non prendere questo problema e risolverlo? Le date di inizio e fine sono note, possiamo contare il numero totale di giorni tra di esse. Poi conta il numero totale di settimane intere. Ogni settimana ha cinque giorni lavorativi e due giorni di riposo - è facile. I problemi con il resto (assumeremo che sia all'inizio), a seconda del primo giorno della settimana e della sua durata, il resto può prendere o meno il fine settimana. Dovremmo scrivere un interruttore per sette opzioni per ogni giorno della settimana ed eseguire sette calcoli a seconda del giorno della settimana dell'inizio e della durata del resto. Poi guarda questo interruttore e forse puoi vedere come questi calcoli possono essere generalizzati e semplificati. Il punto è che bisogna fare qualcosa.
 
Dmitry Fedoseev:
E perché non risolvere questo problema? Le date di inizio e fine sono note, possiamo calcolare il numero totale di giorni tra di esse. Poi conta il numero totale di settimane intere. Ogni settimana ha cinque giorni lavorativi e due giorni di riposo - è facile. I problemi con il resto (assumeremo che sia all'inizio), a seconda del primo giorno della settimana e della sua durata, il resto può prendere o meno il fine settimana. Dovremmo scrivere un interruttore per sette opzioni per ogni giorno della settimana ed eseguire sette calcoli a seconda del giorno della settimana dell'inizio e della durata del resto. Poi guarda questo interruttore e forse puoi vedere come questi calcoli possono essere generalizzati e semplificati. Il punto è che bisogna fare qualcosa.

complicato, c'è un tempo tra le date in secondi (datetime) - questo è sufficiente per calcolare il numero di giorni interi in cui 24 ore, 60 minuti in ogni ora e 60 secondi in un minuto.... google per aiutare

Se parliamo di un modo contorto di contare, si può fare così:

input datetime d_start = D'2020.01.01';
input datetime d_stop  = D'2020.02.01';
//+------------------------------------------------------------------+
void OnStart()
{
   MqlDateTime dts[2];
   TimeToStruct(d_start,dts[0]);
   TimeToStruct(d_stop,dts[1]);
   printf("Между датами %i дней",dts[1].day_of_year - dts[0].day_of_year);
}
//+------------------------------------------------------------------+

si può, come suggerisci, contare ogni barra e scoprire se c'è stato un fine settimana tra la barra attuale e quella precedente.... in generale qui solo la possibilità di complicare il compito è limitata dal desiderio )))

Motivazione: