Erros, bugs, perguntas - página 2237
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Algumas personagens têm um timeout, outras não. Como sei a idade máxima do tick que ainda pode ser percebida pela OrderSend (não [Sem preço])?
Foda-se, sabe-se lá.
A bandeira FILE_SHARE_WRITE parece funcionar nesta combinação, mas levanta-se outra questão: qual é o objectivo desta escrita em particular? Logicamente, se permitirmos a separação por escrito, esta deve ser adicionada à bandeira de escrita:
Foi exactamente isso que eu tentei, e também dá um erro.
Fórum sobre comércio, sistemas comerciais automatizados e teste de estratégias comerciais
Plataforma de negociação MetaTrader 5 colocada à disposição dos clientes da AMP Futures
fxsaber, 2018.07.23 22:34
Exemplo onde é impossível fazer uma Ordem de Mercado mesmo quando Bid/Ask é um múltiplo de TickSize
Aqui O último preço não é um múltiplo de TickSize. Não tem nada a ver com Ordens de Mercado, mas a OrderCheck continua a ser um erro - não permite que uma Ordem de Mercado seja feita.
Algumas personagens têm um timeout, outras não. Como posso saber a idade máxima do tick que ainda pode ser aceite pela OrderSend (não [Sem preço])?
Acontece que o último tick recebido há 16 segundos não é considerado como relevante para a OrderSend. Afinal, isto deve ser um insecto.
Activei MetaTrader, encontrei o meu antigo exemplo, acrescentei FILE_SHARE_WRITE (embora não precisasse dele lá) - o resultado não mudou... Talvez por outra razão não tenha funcionado para mim
Alternativamente, pode posicionar o ficheiro na memória (MemMap) e trabalhar lá via semáforo, e depois despejar os dados para o ficheiro via semáforo
A propósito, este método dar-lhe-á um grande ganho de velocidade
Alternativamente, pode posicionar o ficheiro na memória (MemMap) e trabalhar lá via semáforo, e depois despejar os dados para o ficheiro via semáforo
A propósito, este método dar-lhe-á uma grande vantagem de velocidade
A questão é que eu tinha um pequeno ficheiro de configuração e cada EA só tinha de o ler uma vez antes de começar a funcionar - a operação mais simples - ver o exemplo nos links acima... e diz-se semáforos)
Digo que a escrita sobre este problema durante várias páginas, e tendo em conta que o problema com a barba e a sua reparação pelos criadores aparentemente não pode ou não quer porque Ofereci-lhe um deles, se não gosta de usar winapi qual é o problema )) mas é melhor do que escrever a mesma coisa sem fazer nada, pode usar os mesmos semáforos para ler a partir de um ficheiro físico, o mesmo sinal de semáforo que está ocupado e precisa de esperar!
Neste script simples, correr primeiro com escrita = verdadeiro e depois noutro gráfico com escrita = falso, recebo um erro.
A abertura para a leitura carece da bandeira FILE_SHARE_WRITE (permitir a escrita), uma vez que existe um escritor.
Esta é uma limitação do sistema (WinAPI).
Aqui estão as bandeiras correctas com as quais o seu código irá trabalhar:
Aqui estão as bandeiras correctas para fazer o seu código funcionar:
Por favor, conserte FileLoad
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Insectos, insectos, perguntas
fxsaber, 2018.07.10 19:26
Erro em FileLoad. Se com a bandeira FILE_COMMON, dois Agentes locais tentarem ler dados via FileLoad, um dos Agentes faz asneira.
É possível colocar bandeiras apropriadas em FileOpen, mas não em FileLoad. Portanto, por favor permitir o acesso ao ficheiro através do FileLoad se o outro FileLoad o ler.
porquê? )
Porque não há zero na lista de bandeiras
Identificador
Valor
Descrição
FILE_READ
1
O ficheiro está aberto para leitura. Esta bandeira é utilizada ao abrir um ficheiro (FileOpen()). FILE_WRITE e/ou FILE_READ devem ser definidos quando o ficheiro é aberto.
FILE_WRITE
2
O ficheiro é aberto para escrita. Esta bandeira é utilizada para abrir um ficheiro (FileOpen()). Quando um ficheiro é aberto, devem ser colocadas as bandeiras FILE_WRITE e/ou FILE_READ.
FILE_BIN
4
Modo de leitura-escrita binária (sem conversão de ou para string). Esta bandeira é utilizada para abrir ficheiros (FileOpen())
FILE_CSV
8
Ficheiro do tipo csv (todos os artigos escritos são convertidos numa cadeia do tipo apropriado, unicode ou ansi, e separados por um separador). Esta bandeira é utilizada ao abrir um ficheiro (FileOpen())
FILE_TXT
16
Ficheiro de texto simples (o mesmo que csv, mas sem separador). Esta bandeira é utilizada quando os ficheiros são abertos (FileOpen())
FILE_ANSI
32
Cordas ANSI (caracteres de um byte). Esta bandeira é utilizada quando se abrem ficheiros (FileOpen())
FILE_UNICODE
64
Cordas UNICODE (caracteres de dois bytes). Esta bandeira é utilizada quando se abrem ficheiros (FileOpen())
FILE_SHARE_READ
128
Acesso de leitura partilhado por múltiplos programas. Esta bandeira é utilizada ao abrir um ficheiro (FileOpen()), mas não substitui a necessidade de FILE_WRITE e/ou FILE_READ ao abrir um ficheiro.
FILE_SHARE_WRITE
256
Esta bandeira é utilizada para a partilha de acesso de escrita por múltiplos programas. Esta bandeira é utilizada para abrir ficheiros (FileOpen()), mas não substitui FILE_WRITE e/ou FILE_READ quando se abre um ficheiro.
FILE_REWRITE
512
O ficheiro pode ser substituído por FileCopy() e FileMove(). O ficheiro deve existir ou poder ser escrito. Caso contrário, o ficheiro não pode ser aberto
FILE_COMMON
4096
Localização do ficheiro em pasta partilhada de todos os terminais de clientes. Ficheiros comuns. Esta bandeira é utilizada ao abrir ficheiros (FileOpen()), copiar ficheiros (FileCopy(), FileMove()) e verificar se os ficheiros existem (FileIsExist())
E se os criadores corrigem todas as suas falhas, muitas pessoas não vão gostar. Muito mais de metade do código deixará de funcionar.