Errori, bug, domande - pagina 2233

 
A100:

E non si può rimuovere - perché è il codice dell'EA o vuoi capire che migliaia di linee di codice di altre persone è irrilevante - che si traduce solo in un ritardo di tempo?

Eseguite il compito che vi ho dato sopra e riferite al pubblico i risultati.

Perché dovrei ripetere il codice errato???? Perché dovrei voler usare un file .ex sconosciuto????

Se c'è un errore nell'apertura del file con i flag FILE_SHARE_READ|FILE_SHARE_WRITE siate gentili e riproducete questi problemi senza errori estranei, creati artificialmente.

 
Alexey Viktorov:

Perché dovrei voler ripetere un codice errato???? Perché dovrei voler concatenare qualche file .eh sconosciuto a????

Se c'è un errore nell'apertura di un file con i flag FILE_SHARE_READ|FILE_SHARE_WRITE, riproduci questi problemi senza errori estranei, creati artificialmente.

Cosa ti fa pensare che il codice sia sbagliato?

Posso usare qualsiasi forma di rapporto di errore, e il file .ex non è per voi, ma per gli sviluppatori. Se volete aiutare con una semplice riproduzione dell'errore potete usare il mio consiglio, se non volete aiutare, non disturbate gli altri con post vuoti e arrabbiati

 
A100:

Cosa ti fa pensare che il codice sia sbagliato?

Il modo in cui posso segnalare l'errore è il modo in cui lo faccio io. Ho messo il file .ex non per voi ma per gli sviluppatori. Se volete aiutare con la semplice riproduzione dell'errore potete usare il mio consiglio, se non volete aiutare, non disturbate gli altri con post vuoti e arrabbiati

I tuoi post sono più che altro maliziosi. La mia richiesta

Forum sul trading, sistemi di trading automatico e tester di strategie

Bug, bug, domande

Alexey Viktorov, 2018.07.23 14:16

Strano che non aiuti. Sono riuscito a ottenere solo 5004 senza il flag FILE_SHARE_WRITE

Il file nel consigliere di scrittura si apre a OnInit e si chiude solo a OnDeinit. Allo stesso tempo, nel read advisor, il file viene letto e stampato senza problemi.

Sarebbe bene chiarire come scrivi il file per replicare più accuratamente le tue azioni.


Non era rivolto a te, ma ti sei attaccato e hai infilato post di due anni fa, ai quali gli sviluppatori non hanno prestato attenzione, secondo me, a causa di un errore creato artificialmente.

E ripeto: perché dovrei riprodurre un errore creato artificialmente???????????

 
Alexey Viktorov:

E ancora una volta: perché dovrei riprodurre un errore creato artificialmente???????????

Spiegare cos'è un errore creato artificialmente? Non capisco questa frase
 
TheXpert:

Provate dopo aver aperto un file per la scrittura (parte 1 del codice) a visualizzarlo con il visualizzatore di Windows. almeno sarà chiaro con quale maniglia è il problema.

Se si apre - il secondo, altrimenti - il primo.

Windows aprirà il primo file. Vedo a livello di sistema che i flag read, write, share_read sono impostati. Ma nel terminale, aprendo lo stesso file in lettura si ottiene 5004. Il primo Expert Advisor scrive sul file, cioè non è solo aperto con qualche bandiera per divertimento.

Quando avrò tempo, cercherò di fare uno script per la dimostrazione. Ma a giudicare dal fatto che questo non è il primo che ho scritto su di esso e non ci sono sviluppi relativi ai file nel codice, la curvatura è presente.

PS. Forse chi ha già scritto in SD? Quali sono le risposte?

 
A100:
In senso stretto, l'errore è causato dalla chiamata simultanea diFileOpen (nome del file) da diversi Expert Advisors (i flag non hanno importanza)
il flag FILE_SHARE_READ significa effettivamente accesso in lettura non esclusivo, almeno nella winapi originale
 
Stanislav Korotky:

Windows apre il primo file.

Il secondo Handle vuole l'accesso esclusivo in lettura o altri accessi non autorizzati, nonostante il flag.
 
A100:
Spiegare cos'è un errore creato artificialmente? Non capisco questa frase.

Non c'è nessun sottotesto in quello che sto dicendo. Dovete capire cos'è la pelle artificiale. Fate riferimento a questa comprensione.

Mostra il codice senza ulteriori manipolazioni con modelli e altri armeggi, che restituisce l'errore ERR_CANNOT_OPEN_FILE con i flag FILE_SHARE_READ|FILE_SHARE_WRITE

Se l'errore non si riproduce senza tamburelli, significa che l'errore è stato causato durante i tamburelli...

Ripeto la sequenza di azioni:

EA 1:

In OnInit viene aperto un file binario per la scrittura.

Ogni minuto scrive l'apertura della barra corrente nel file.

Il file viene chiuso SOLO a OnDeinit.

Expert Advisor 2:

Ogni minuto apre questo file binario.

Legge l'ultima voce e la stampa.

Chiude il file.

E lo ripete ogni minuto.


Non ci sono errori di apertura dei file.

 

Su questo semplice script, eseguito prima con scrittura = true e poi su un altro grafico con scrittura = false, ottengo un errore.

#property script_show_inputs

input bool writing = false;

int OnStart()
{
  int handle = FileOpen("xyz.foo", FILE_READ|FILE_BIN|FILE_SHARE_READ|(writing?FILE_WRITE:0));
  if(handle == INVALID_HANDLE)
  {
    Print("FileOpen failed: ", GetLastError());
    return INIT_FAILED;
  }
  
  if(writing) FileWriteInteger(handle, 0);
  
  Print("handle=", handle);
  
  while(!IsStopped())
  {
    Sleep(1000);
  }

  Print("Closing");
  FileClose(handle);

  return 0;
}
 
Andrey Khatimlianskii:

Per quanto mi ricordo, imposta un time-out dopo il quale il prezzo è considerato irrimediabilmente obsoleto. In altre parole, se non è cambiato per 3 minuti, non puoi aprirlo.

Ho scritto uno script di test per questo caso. NoPrice è stato catturato 64 secondi dopo l'ultimo tick. Forse un timeout di un minuto è davvero utile. Dovrò fare una piccola ricerca...