Errori, bug, domande - pagina 1882

 
vinnipyx:
Pomeriggio. Ho un bug simile in MT5: non salva le impostazioni nonostante lo controlli. In particolare, ogni volta che lo eseguo, tutte le barre degli strumenti appaiono nascoste e devo riaprirle ogni volta che lo eseguo. All'avvio successivo i pannelli appaiono brevemente, ma poi scompaiono (apparentemente dopo aver stabilito la connessione con il broker). Come si può risolvere questo problema (apertura del broker)?


Hai premuto F11 per caso?

Schermo intero

Schermo intero

Abilita/disabilita la modalità a schermo intero. Questa opzione disattiva le barre degli strumenti, la barra di stato e chiude tutte le finestre di servizio. La barra del titolo di MetaEditor, il menu principale, la finestra di modifica del codice e le schede dei file rimangono sullo schermo.

 
Vladimir Karputov:


Hai premuto F11 per caso?

Schermo intero

Abilita/disabilita la modalità a schermo intero. Abilitando questa opzione si disabilitano le barre degli strumenti, la barra di stato e si chiudono tutte le finestre di servizio. La barra del titolo di MetaEditor, il menu principale, la finestra di modifica del codice e le schede dei file rimangono sullo schermo.

Grazie mille, sono stufo di questa situazione da due settimane. Sì, devo aver premuto accidentalmente f1.
 
fxsaber:

Avete bisogno di ottenere una storia di barre/tick per diverse migliaia di unità recenti in una volta per tutti i simboli nel Market Watch (diverse centinaia). E aggiornarlo in tempo reale.

L'architettura di MT5 è ottimizzata per questi screencast? Il nuovo tipo di programma sarà in grado di risolvere tali compiti senza stampelle?

Di cosa ho bisogno per sollevare tutte le cache dallo stato freddo e renderle effettive?

E come fare in modo che un tester rimanga in vita quando si esegue uno screener?


Se si desidera ottenere uno screener come Finwiz, con indicatori tecnici, si lamentano anche che ogni maniglia mangia un sacco di memoria, che MC promette di combattere con esso. Perciò, se si proietta con una certa periodicità di revisione del mercato, ha bisogno di molta memoria, e per la prima esecuzione molto tempo.
 
kaus_bonus:

Non so perché abbiate bisogno di uno screener nel tester.
È un multivolume in una volta per un centinaio di simboli, dove ogni OnTimer analizza la storia dei tick di tutti i simboli.
 
fxsaber:
Si tratta di un multi-colonna in una volta da un centinaio di simboli, dove ogni OnTimer analizza la storia dei tick di tutti i simboli.


modo normale di suicidarsi))

quando si esegue nel tester tutti i dati dei tick vengono ri-preparati?! 1 mese/ticker è circa 100 MB. se l'intera panoramica del mercato, allora... il disco deve essere di gomma, ma quanto tempo ci vuole?

Se vi ricordate che la cache dell'agente tester viene cancellata dopo 5 minuti di inattività dell'agente, immaginate: avete preparato dati per un'ora o due, siete usciti per 5 minuti e basta, dovete ricominciare da capo.

 
kaus_bonus:

modo normale di suicidarsi))

Da qui le domande. Se ho capito bene, il tester sta andando bene nell'infrastruttura S#. Potrei sbagliarmi.
 

Sembra essere abituato a MT5, in quanto non ricordo affatto in MT4 il logging dall'esecuzione di OrderSend.

Da quale build di MT4 è questa gestione non autorizzata del log? In MT5, solo la stampa e simili azioni speciali dell'utente (+errori di esecuzione e il pulsante di auto-trading) possono fare record lì. O è sempre stato così in MT4?

 
fxsaber:

Hai bisogno di ottenere una storia di barre/tick per diverse migliaia di unità recenti in una volta per tutti i simboli in Market Watch (diverse centinaia). E aggiornarlo in tempo reale.

L'architettura di MT5 è ottimizzata per questi screencast? Il nuovo tipo di programma sarà in grado di risolvere tali compiti senza stampelle?

Di cosa ho bisogno per sollevare tutte le cache dallo stato freddo e renderle attuali?

Riscaldare le cache
#define _CS(A) ((!IsStopped()) && (A))
#define  TOSTRING(A) #A + " = " + (string)(A) + "\n"

void OnStart()
{
  ulong FullCycle = 0;
  MqlTick Ticks[];
  
  while (_CS(true))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = SymbolsTotal(true) - 1; _CS(i >= 0); i--)
      Comment(TOSTRING(SymbolsTotal(true)) + TOSTRING(SymbolName(i, true)) +
              TOSTRING(i) + TOSTRING(CopyTicks(SymbolName(i, true), Ticks)) +
              TOSTRING(MQLInfoInteger(MQL_MEMORY_USED)) + TOSTRING(MQLInfoInteger(MQL_MEMORY_LIMIT)) +
              TOSTRING(FullCycle));
              
    FullCycle = GetMicrosecondCount() - StartTime;              
  }
}

Possiamo vedere chiaramente dal runtime dello script che CopyTicks non è asincrono. MQL_MEMORY_USED sta mentendo.

E soprattutto, qualcosa sta inciampando cache (Metaquotes-Demo).

Si prega di correre con almeno un centinaio di simboli in Market Watch.

Inoltre, si nota il problema delle cache solo su alcuni caratteri. Il resto va bene.

Sembra essere bloccato in CopyTicks su questi personaggi

 
Konstantin:

1. Quando ci sarà una descrizione dell'unione nella documentazione?

2. È un sostituto delle strutture semplici?

3. La conversione del tipo di unione sarà supportata come descritto per le strutture nella documentazione?

1. Unione aggiunta

2. Non proprio - è possibile ottenere una diversa rappresentazione dei dati

3. no

 

MT5 1598

void OnStart()
{
  string Array[];
  
  ArrayInitialize(Array, "");
}

Registro del compilatore

'ArrayInitialize' - no one of the overloads can be applied to the function call Test2.mq5       5       3
could be one of 8 function(s)   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
1 error(s), 0 warning(s)                2       1

Le firme delle funzioni saranno visibili nel log?