Errori, bug, domande - pagina 3039

 
Nikolai Semko:
Un piccolo suggerimento - potete chiudere tutti i grafici tranne quelli richiesti, poi il consumo sarà circa lo stesso come se la vostra stampella fosse stata implementata.
 
Andrei Trukhanovich:
un piccolo suggerimento - puoi chiudere tutti i grafici tranne quello che ti serve, allora il consumo sarà circa lo stesso come se la tua stampella fosse stata implementata.

logica della vecchia scuola

Ce l'hosu VPS, ma mi dispiace. Non voglio essere limitato da nulla.
 
Igor Makanu:

Se ora stiamo parlando di consumo di memoria, ricordo che un paio di mesi fa@fxsaber aveva lo stesso problema, ma quando caricava i tick - dopo aver rilasciato gli array con i tick, il terminale non libera la memoria, ma memorizza (per 10 secondi?) questi tick come cache

È molto probabile che la vostra richiesta avrà lo stesso problema - il consumo di memoria non diminuirà ma al contrario aumenterà (in picche)

Non capisco perché.
So come usare la funzione ArrayFree.
Soprattutto userò la funzione che sto chiedendo solo una volta. Ma allo stesso tempo non ho bisogno di accendere Unlimited.
L'intera storia per uno strumento si aggira intorno agli 80-100 MB (sia in RAM che su disco). Ora sono circa 500 Mb sul disco.
Accendo il terminale e carico l'array di strutture dal file nella memoria e lavoro in pace. Nessun picco.
Io userei una struttura di dati regolare. Al diavolo l'avere molto spazio. Ma ho bisogno di tempo per Alti e Bassi.
Uso già i tick al massimo per modellare la mia struttura di dati, ma non hanno tutta la profondità della storia e tendono ad avere delle discordanze con le barre dei minuti. Ho delle zecche e non ho barre, oppure ho delle barre e non ho zecche.


 
Nikolai Semko:

bene darsi la zappa sui piedi - ci sono innumerevoli opzioni così com'è.
Solo impostando max_bars =Unlimited, il consumo di memoria aumenta drammaticamente.
Ecco un esempio del terminale con max_bars = 5000

Ora cambiate max_bars = Unlimited e ricaricate il terminale.

Con le stesse finestre aperte, il consumo di memoria è aumentato di più di GB. Nel mio caso 11 volte più grande !!!!
Questo è un normale ))
Puoi controllare tu stesso.
max_bars = Unlimited è un lusso molto difficile.
Se

la mia richiesta fosse accolta, non potreste mai usaremax_bars = Unlimited.
E oltre a risparmiare memoria nella RAM, ridurrebbe anche notevolmente questa cartella, che ora ho circa 31GB. Credo circa 5 volte tanto. E sarebbe 6GB invece di 30GB.

Quindi stai suggerendo di rendere tutti illimitati!

Se un programma ha accesso a tutte le barre, allora tutti le hanno.

Perché i grafici dovrebbero mostrare mille barre se l'indicatore ha accesso a un milione?


Un altro problema è l'accesso al formato hcc e alla cartella con i file della storia. Ma anche lì non è tutto semplice - cache, reset economico, controllo di correttezza, qualcos'altro...

 

2940

C'era un codice indicatore: tutto funzionava bene sul grafico e nel tester.

Ho creato una nuova versione dell'indicatore con le modifiche apportate: funziona bene nel grafico, ma non nel tester (non disegna nulla, anche se la finestra dei dati mostra i buffer e sono vuoti).

Ho passato qualche ora a capirlo, ho rollbackato la versione precedente del codice, niente è servito. Solo l'aggiornamento nel navigatore del terminale ha aiutato e il nuovo codice funziona anche nel tester, non solo sul grafico.

Penso che qualcosa sia rotto nell'aggiornamento automatico dei compilatori che il tester vede, non vedo altre ragioni.

 
Nikolai Semko:

Io userei la struttura dati regolare. Fanculo, c'è un sacco di spazio. Ma ho bisogno di tempo per Alti e Bassi.
Uso già i tick al massimo per modellare la mia struttura di dati, ma non hanno tutta la profondità della storia e tendono ad essere fuori sincrono con le barre dei minuti. Ho delle zecche e nessuna barra, e poi ho delle barre e nessuna zecca.

Se ci fossero zecche per 20 anni, le useresti? Posso non chiedere perché? )

Beh, ok, puoi impostare una strategia di auto-adattamento super intelligente, e per interesse eseguirla una volta su una storia di tick di 20 anni. Per interesse. Una volta.

Ma non per lavoro, non come caratteristica regolare.


E se i tempi sono sbagliati, perché credete alle barre? Questa è una sciocchezza.

 
Andrey Khatimlianskii:

Quindi stai suggerendo che tutti dovrebbero essere resi illimitati!

Se un programma ha accesso a tutti i bar, allora tutti lo hanno.

Perché i grafici dovrebbero mostrare mille barre se l'indicatore ha accesso a un milione?


Un'altra domanda è quella di abilitare l'accesso al formato hcc e alla cartella con i file della storia. Ma non tutto è semplice lì - cache, reset economico, controllo di correttezza, qualcos'altro...

Non è necessario accedere al formato hcc e alla cartella con i file della cronologia. In primo luogo MQ non lo farà mai, in secondo luogo non è necessario. Sarà sufficiente ottenere l'array M1 da questi file.

Questo è il punto, voglio essere in grado di non abilitare maiUnlimited. Perché tale inclusione inizia a pompare dati per tutti gli strumenti. Ma non ho bisogno di tutti, solo di uno in ogni momento. Perché dovrei voler sovraccaricare il sistema scaricando altre centinaia di Mb di dati storici senza alcun controllo.

 
Andrey Khatimlianskii:

Ci sarebbero stati i tic tra 20 anni, li avreste usati? Posso non chiedermi - perché? )

Beh, ok, si potrebbe impostare una strategia di auto-adattamento super intelligente, e per interesse eseguirla una volta su una storia di tick di 20 anni. Per interesse. Una volta.

Ma non per lavoro, non come caratteristica regolare.


E se i tempi sono sbagliati, perché credete alle barre? Non ha affatto senso.

Non si tratta di una strategia, ma della corretta visualizzazione di un timeframe dinamico, che è molto più intuitivo e conveniente dell'arcaico sistema di timeframe esistente.
Anche per la possibilità di test interni "al volo".
Anche se può anche influire su una certa precisione nelle strategie in senso positivo.

Bene, ecco almeno un piccolo esempio:
Come costruire uno ZigZag regolare, quando non si sa quale evento si è verificato prima, Alto o Basso?




o



se stai cercando di capirlo per le barre giornaliere, non c'è garanzia che con max_bars = 50.000, puoi caricare timeframes inferiori per un dato tempo di barra, e anche ticks.

 
Errore durante l'esecuzione:
void OnStart()
{
    uchar  array[];
    const string text = "All Files\0*.*\0\0";
    const int start = 0, count = StringLen( text );
    Print( StringToCharArray( text, array, start, count ), ":", count );
}

Risultato: 10:15

Atteso 15:15

Volevo usare il risultato nella funzione WinAPI GetSaveFileNameA, ma non posso a causa di un bug


 
A100:

Questo è stato il caso per molto tempo. Le stringhe mql non amano molto i caratteri nulli all'interno di una stringa e nei letterali, anche nelle funzioni.

L'unico modo normale è quello di tradurre tre stringhe con un nullo finale in un array.

Cioè, tale comportamento come è ora è stato fatto intenzionalmente alcuni anni fa. Non so perché.