Características da linguagem mql5, subtilezas e técnicas - página 167
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
pensou que não teria problemas em ler o código curto, depois leia a ajudahttps://www.mql5.com/ru/docs/trading/ordercalcmargin
Obrigado, já o descobrimos )
Comecei agora a aprender MQL5. Devo ter colocado a minha pergunta num lugar errado
ArrayCopy Cross-platform difference.
Obviamente, para não fazer diferença, é necessário escrever
ou
ou todos os incumprimentos neste contexto
Obviamente, para não fazer diferença, é necessário escrever
ou
ou todos os incumprimentos neste contexto
Aqui está o problema.
Se a função retorna zero, então a MQL4 e a MQL5 terão resultados diferentes.
Aqui está o problema.
Se a função retorna zero, MQL4 e MQL5 terão resultados diferentes.
Assim, GetAmountToCopy() resolve este problema no caso da função dever regressar a zero.
Por exemplo:
Aqui está o problema.
Se a função retorna zero, MQL4 e MQL5 terão resultados diferentes.
Não é muito claro o que se está a calcular aí. Pode haver várias variantes de retorno de GetAmountToCopy().
Se 0 é para copiar nada (esta é a condição que causa o problema como eu o vejo) e -1 é para copiar toda a matriz, deve obviamente especificar valores de retorno diferentes de 0 e -1 no caso de não querer copiar nada. Por exemplo, devolver EMPTY_VALUE_VALUE. Neste caso, devemos provavelmente sobrecarregar a função ArrayCopy() que verificará primeiro o que lhe é passado de GetAmountToCopy(). Se for VAZIO_VALOR, então saia da função. Quanto ao resto, se for utilizada a constante WHOLE_ARRAY, o tamanho dos dados a copiar tanto na MQL5 como na MQL4 será seleccionado correctamente.
Não é muito claro o que se está a calcular aí.
Não está bem claro para mim porque está a escrever sobre possíveis implementações de diferenças MQL4/5. Acabei de notar estas diferenças para aqueles que escrevem código multiplataforma.
As diferenças já se acumularam para um artigo. Alguém deveria escrevê-lo.
Não sei bem porque está a escrever sobre as possíveis soluções para as diferenças MQL4/5. Acabei de notar estas diferenças para aqueles que escrevem código multiplataforma.
As diferenças já se acumularam para um artigo. Alguém deveria escrevê-lo.
Pensei que era uma pergunta. Bom. Posso apagar as minhas mensagens.
Apenas suspeito antes, agora confirmado. É fácil obter fugas de memória quando se trabalha com recursos.
Exemplo.
Um guião via SB imprime um gráfico de uma matriz numérica para um gráfico. Poderá então apagar manualmente este gráfico (objecto), mas o recurso atribuído a este gráfico permanecerá para sempre pendurado na memória em modo apenas de leitura. Não pode ser apagado, porque apenas o guião do proprietário o pode apagar (ver a linha realçada).
Não há nenhuma funcionalidade no MQL que liberte uma memória tão ocupada. Tenha especial cuidado com isto no VPS.
Apenas suspeito antes, agora confirmado. É fácil obter fugas de memória quando se trabalha com recursos.
Exemplo.
Um guião via SB imprime um gráfico de uma matriz numérica para um gráfico. Poderá então apagar manualmente este gráfico (objecto), mas o recurso atribuído a este gráfico permanecerá para sempre pendurado na memória em modo apenas de leitura. Não pode ser apagado, porque apenas o guião do proprietário o pode apagar (ver a linha realçada).
Não há nenhuma funcionalidade no MQL que liberte uma memória tão ocupada. Tenha especial cuidado com o VPS.
Quando se recebe uma mensagem sobre uma fuga de memória, isso significa que não houve nenhum comando explícito para libertar essa memória.
Quando um programa termina (que é quando se recebe estas mensagens), liberta toda a memória, incluindo a memória vazada, em qualquer caso.