Alcuni personaggi hanno un timeout e altri no. Come faccio a sapere l'età massima della spunta che può ancora essere percepita da OrderSend (no [No price])?
Stanislav Korotky: Il flag FILE_SHARE_WRITE sembra funzionare in questa combinazione, ma sorge un'altra domanda: qual è lo scopo di questa particolare scrittura? Logicamente, se abilitiamo la separazione della scrittura, dovrebbe essere aggiunto al flag di scrittura:
Questo è esattamente quello che ho provato, e dà anche un errore.
Ho acceso MetaTrader, ho trovato il mio vecchio esempio, ho aggiunto FILE_SHARE_WRITE (anche se non è necessario) - il risultato non è cambiato... Forse per un'altra ragione non ha funzionato per me
Esempio in cui è impossibile fare un ordine a mercato anche quando Bid/Ask è un multiplo di TickSize
Qui Last price non è un multiplo di TickSize. Non ha niente a che fare con gli ordini a mercato, ma OrderCheck è ancora in errore - non permette di fare un ordine a mercato.
Alcuni personaggi hanno un timeout e altri no. Come faccio a sapere l'età massima della spunta che può ancora essere accettata da OrderSend (no [No price])?
Succede che l'ultimo tick ricevuto 16 secondi fa non è percepito come rilevante per OrderSend. Questo deve essere un bug, dopo tutto.
A100: Ho attivato MetaTrader, trovato il mio vecchio esempio, aggiunto FILE_SHARE_WRITE (anche se non ne avevo bisogno) - il risultato non è cambiato... Forse per un'altra ragione non ha funzionato per me
In alternativa, potete posizionare il file in memoria (MemMap) e lavorare lì tramite semaforo, e poi scaricare i dati nel file tramite semaforo
A proposito, questo metodo vi darà un grande guadagno di velocità
In alternativa, potete posizionare il file in memoria (MemMap) e lavorare lì tramite semaforo, e poi scaricare i dati nel file tramite semaforo
A proposito, questo metodo vi darà un grande vantaggio di velocità
Il fatto è che ho un piccolo file di configurazione e ogni EA deve leggerlo una volta prima di iniziare a lavorare - l'operazione più semplice - vedi l'esempio sui link sopra... e tu dici semafori)
A100: Il fatto è che avevo un piccolo file di configurazione e ogni Expert Advisor doveva leggerlo solo una volta prima di partire - l'operazione più semplice - vedi l'esempio nei link sopra... e tu dici semafori)
Dico che la scrittura su questo problema per diverse pagine, e dato che il problema con la barba e risolvere il problema gli sviluppatori apparentemente non possono o non vogliono perché Te ne ho offerto uno, se non ti piace usa winapi che problema c'è )) ma è meglio che scrivere la stessa cosa senza fare nulla, puoi usare gli stessi semafori per leggere da un file fisico, lo stesso semaforo segnala che è occupato e devi aspettare!
Errore in FileLoad. Se con il flag FILE_COMMON, due agenti locali cercano di leggere i dati tramite FileLoad, uno degli agenti si blocca.
È possibile impostare i flag appropriati in FileOpen, ma non in FileLoad. Pertanto, permettete l'accesso al file tramite FileLoad se l'altro FileLoad lo legge.
Perché non c'è uno zero nell'elenco delle bandiere
Identificatore
Valore
Descrizione
LETTURA DEL FILE
1
Il file è aperto per la lettura. Questo flag è usato quando si apre un file (FileOpen()). FILE_WRITE e/o FILE_READ devono essere impostati quando un file viene aperto.
FILE_WRITE
2
Il file è aperto per la scrittura. Questo flag è usato per aprire un file (FileOpen()). Quando un file viene aperto, i flag FILE_WRITE e/o FILE_READ devono essere impostati.
FILE_BIN
4
Modalità di lettura-scrittura binaria (nessuna conversione da o a stringa). Questo flag è usato per aprire i file (FileOpen())
FILE_CSV
8
File di tipo csv (tutti gli elementi scritti sono convertiti in una stringa del tipo appropriato, unicode o ansi, e separati da un separatore). Questo flag è usato quando si apre un file (FileOpen())
FILE_TXT
16
Semplice file di testo (come il csv, ma senza separatore). Questo flag è usato quando i file vengono aperti (FileOpen())
FILE_ANSI
32
Stringhe ANSI (caratteri a byte singolo). Questo flag è usato quando si aprono i file (FileOpen())
FILE_UNICODE
64
Stringhe UNICODE (caratteri a due byte). Questo flag è usato quando si aprono i file (FileOpen())
FILE_SHARE_READ
128
Accesso in lettura condiviso da più programmi. Questo flag è usato quando si apre un file (FileOpen()), ma non sostituisce la necessità di FILE_WRITE e/o FILE_READ quando si apre un file.
FILE_SHARE_WRITE
256
Questo flag è usato per la condivisione dell'accesso in scrittura da parte di più programmi. Questo flag è usato per aprire i file (FileOpen()), ma non sostituisce FILE_WRITE e/o FILE_READ quando si apre un file.
FILE_REWRITE
512
Il file può essere sovrascritto da FileCopy() e FileMove(). Il file deve esistere o essere scrivibile. Altrimenti, il file non può essere aperto
FILE_COMMON
4096
Posizione del file nella cartella condivisa di tutti i terminali client\Terminal\Common\Files. Questo flag è usato quando si aprono i file (FileOpen()), si copiano i file (FileCopy(), FileMove()) e si controlla se i file esistono (FileIsExist())
E se gli sviluppatori sistemano tutti i loro difetti, a molti non piacerà. Molto più della metà del codice smetterà di funzionare.
Файл открывается для чтения. Флаг используется при открытии файлов (FileOpen()). При открытии файла обязательно должен быть указан флаг FILE_WRITE и/или флаг FILE_READ Файл открывается для записи. Флаг используется при открытии файлов (FileOpen()). При открытии файла обязательно должен быть указан флаг FILE_WRITE и/или флаг FILE_READ Файл...
Alcuni personaggi hanno un timeout e altri no. Come faccio a sapere l'età massima della spunta che può ancora essere percepita da OrderSend (no [No price])?
Chi cazzo lo sa.
Il flag FILE_SHARE_WRITE sembra funzionare in questa combinazione, ma sorge un'altra domanda: qual è lo scopo di questa particolare scrittura? Logicamente, se abilitiamo la separazione della scrittura, dovrebbe essere aggiunto al flag di scrittura:
Questo è esattamente quello che ho provato, e dà anche un errore.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Piattaforma di trading MetaTrader 5 resa disponibile per i clienti di AMP Futures
fxsaber, 2018.07.23 22:34
Esempio in cui è impossibile fare un ordine a mercato anche quando Bid/Ask è un multiplo di TickSize
Qui Last price non è un multiplo di TickSize. Non ha niente a che fare con gli ordini a mercato, ma OrderCheck è ancora in errore - non permette di fare un ordine a mercato.
Alcuni personaggi hanno un timeout e altri no. Come faccio a sapere l'età massima della spunta che può ancora essere accettata da OrderSend (no [No price])?
Succede che l'ultimo tick ricevuto 16 secondi fa non è percepito come rilevante per OrderSend. Questo deve essere un bug, dopo tutto.
Ho attivato MetaTrader, trovato il mio vecchio esempio, aggiunto FILE_SHARE_WRITE (anche se non ne avevo bisogno) - il risultato non è cambiato... Forse per un'altra ragione non ha funzionato per me
In alternativa, potete posizionare il file in memoria (MemMap) e lavorare lì tramite semaforo, e poi scaricare i dati nel file tramite semaforo
A proposito, questo metodo vi darà un grande guadagno di velocità
In alternativa, potete posizionare il file in memoria (MemMap) e lavorare lì tramite semaforo, e poi scaricare i dati nel file tramite semaforo
A proposito, questo metodo vi darà un grande vantaggio di velocità
Il fatto è che avevo un piccolo file di configurazione e ogni Expert Advisor doveva leggerlo solo una volta prima di partire - l'operazione più semplice - vedi l'esempio nei link sopra... e tu dici semafori)
Dico che la scrittura su questo problema per diverse pagine, e dato che il problema con la barba e risolvere il problema gli sviluppatori apparentemente non possono o non vogliono perché Te ne ho offerto uno, se non ti piace usa winapi che problema c'è )) ma è meglio che scrivere la stessa cosa senza fare nulla, puoi usare gli stessi semafori per leggere da un file fisico, lo stesso semaforo segnala che è occupato e devi aspettare!
Su questo semplice script, eseguito prima con scrittura = true e poi su un altro grafico con scrittura = false, ottengo un errore.
L'apertura per la lettura manca del flag FILE_SHARE_WRITE (permettere la scrittura), poiché c'è uno scrittore.
Questa è una limitazione del sistema (WinAPI).
Ecco le bandiere corrette con le quali il vostro codice funzionerà:
Ecco i flag corretti per far funzionare il vostro codice:
Si prega di correggere FileLoad
Forum sul trading, sistemi di trading automatico e test di strategia
Bug, bug, domande
fxsaber, 2018.07.10 19:26
Errore in FileLoad. Se con il flag FILE_COMMON, due agenti locali cercano di leggere i dati tramite FileLoad, uno degli agenti si blocca.
È possibile impostare i flag appropriati in FileOpen, ma non in FileLoad. Pertanto, permettete l'accesso al file tramite FileLoad se l'altro FileLoad lo legge.
Perché? )
Perché non c'è uno zero nell'elenco delle bandiere
Identificatore
Valore
Descrizione
LETTURA DEL FILE
1
Il file è aperto per la lettura. Questo flag è usato quando si apre un file (FileOpen()). FILE_WRITE e/o FILE_READ devono essere impostati quando un file viene aperto.
FILE_WRITE
2
Il file è aperto per la scrittura. Questo flag è usato per aprire un file (FileOpen()). Quando un file viene aperto, i flag FILE_WRITE e/o FILE_READ devono essere impostati.
FILE_BIN
4
Modalità di lettura-scrittura binaria (nessuna conversione da o a stringa). Questo flag è usato per aprire i file (FileOpen())
FILE_CSV
8
File di tipo csv (tutti gli elementi scritti sono convertiti in una stringa del tipo appropriato, unicode o ansi, e separati da un separatore). Questo flag è usato quando si apre un file (FileOpen())
FILE_TXT
16
Semplice file di testo (come il csv, ma senza separatore). Questo flag è usato quando i file vengono aperti (FileOpen())
FILE_ANSI
32
Stringhe ANSI (caratteri a byte singolo). Questo flag è usato quando si aprono i file (FileOpen())
FILE_UNICODE
64
Stringhe UNICODE (caratteri a due byte). Questo flag è usato quando si aprono i file (FileOpen())
FILE_SHARE_READ
128
Accesso in lettura condiviso da più programmi. Questo flag è usato quando si apre un file (FileOpen()), ma non sostituisce la necessità di FILE_WRITE e/o FILE_READ quando si apre un file.
FILE_SHARE_WRITE
256
Questo flag è usato per la condivisione dell'accesso in scrittura da parte di più programmi. Questo flag è usato per aprire i file (FileOpen()), ma non sostituisce FILE_WRITE e/o FILE_READ quando si apre un file.
FILE_REWRITE
512
Il file può essere sovrascritto da FileCopy() e FileMove(). Il file deve esistere o essere scrivibile. Altrimenti, il file non può essere aperto
FILE_COMMON
4096
Posizione del file nella cartella condivisa di tutti i terminali client\Terminal\Common\Files. Questo flag è usato quando si aprono i file (FileOpen()), si copiano i file (FileCopy(), FileMove()) e si controlla se i file esistono (FileIsExist())
E se gli sviluppatori sistemano tutti i loro difetti, a molti non piacerà. Molto più della metà del codice smetterà di funzionare.