Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 124
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
Olá !
Você pode me dizer como repintar as barras sem usar modelos em mt4 !??
Ou como aplicar um esquema de cores !?
Vou simplificar um pouco a resposta para evitar confusão. O sinal (&) indica que o argumento da função pode mudar seu valor no momento da execução e voltará para de onde a função foi chamada com um valor diferente. No caso em questão, a função SaveOrder pode alterar o conteúdo das variáveis g_arrstBuyOrderInfo e g_arrstSellOrderInfo, assim como as variáveis g_nBuyOrdersCnt e g_nSellOrdersCnt.
Obrigado. Torna-se um pouco mais claro. Só não está claro como tudo isso pode ser descoberto sem se referir ao fórum. Eu não encontrei tais explicações nos tutoriais.
Por favor, me dê mais alguns conselhos:
1) O compilador escreve - 'g_nBuyOrdersCnt' - declaração sem tipo ; 'g_nSellOrdersCnt' - declaração sem tipo. Estou correto ao assumir que o g_nBuyOrdersCnt e o g_nSellOrdersCnt devem ser declarados globalmente para evitar um erro do compilador?
2) Compilador:'para' - não são permitidas expressões em um escopo global. Não está claro aqui.
3) Na funçãoSaveOrderInfo(OrderInfo &arrstOrderInfo[], int &nOrdersCnt) vazia, o compilador escreve: a declaração de 'arrstOrderInfo' esconde a declaração global. ver declaração anterior de 'arrstOrderInfo'. Também não está muito claro.
4) 'nOrderCnt' é um identificador não declarado. Por que não é declarado em nenhum lugar?
Olá !
Você pode me dizer como repintar as barras sem usar modelos em mt4 !??
Ou como aplicar um esquema de cores !???
Se programática, veja as funções ChartSetInteger() e ChartGetInteger().
Obrigado. Está começando a fazer um pouco mais de sentido. Só não está claro como você pode descobrir tudo isso sem se referir a um fórum. Eu não consegui encontrar tais explicações nos livros didáticos.
Por favor, me dê mais alguns conselhos:
1) O compilador escreve - 'g_nBuyOrdersCnt' - declaração sem tipo ; 'g_nSellOrdersCnt' - declaração sem tipo. Estou correto ao assumir que o g_nBuyOrdersCnt e o g_nSellOrdersCnt devem ser declarados globalmente para evitar um erro do compilador?
2) Compilador:'para' - não são permitidas expressões em um escopo global. Não está claro aqui.
3) Na funçãoSaveOrderInfo(OrderInfo &arrstOrderInfo[], int &nOrdersCnt) vazia, o compilador escreve: a declaração de 'arrstOrderInfo' esconde a declaração global. ver declaração anterior de 'arrstOrderInfo'. Também não está muito claro.
4) 'nOrderCnt' é um identificador não declarado. Por que não é declarado em nenhum lugar?
Veja como tudo deve estar no código se você olhar para o código como um todo:
Uma última coisa: eu ainda não entendo de onde vêm.n e.f e o que são.
O operador "ponto" indica o acesso a um membro de uma estrutura ou classe. Neste caso, trata-se de uma estrutura.
As letras n e f são uma forma de especificar o tipo de dados armazenados em uma variável. Afinal, com um grande número de variáveis, é impossível lembrar o tipo de cada uma delas. E se em um nome de uma variável houver uma indicação de seu tipo, a necessidade de lembrar desaparece por si só. n é um sinal de um número inteiro (de Numérico), f é um número real (de float - número de ponto flutuante). Esta forma de escrever nomes de variáveis é chamada de notação húngara.
O operador de ponto indica o acesso a um membro de uma estrutura ou classe. Neste caso, uma estrutura.
As letras n e f são uma forma de especificar o tipo de dados que são armazenados em uma variável. Afinal, com um grande número de variáveis, é impossível lembrar o tipo de cada uma delas. E se em um nome de uma variável houver uma indicação de seu tipo, a necessidade de lembrar desaparece por si só. n é um sinal de um número inteiro (de Numérico), f é um número real (de float - número de ponto flutuante). Esta forma de notação de nomes variáveis é chamada de notação húngara.
Aí está!!! Afinal,g_ eg_n não são apenas uma abreviação, mas prefixos que dizem que são variáveis inteiras globais e globais!!! Ugh... E não consegui perceber porque estes traços em designações variáveis. Como é possível para um iniciante, que não está familiarizado com tais sutilezas, escrever código usando arrays, estruturas, etc.? Pensei que minha estratégia simples poderia ser escrita em linguagem simples, sem mergulhar na selva.
Você poderia me dar um link para um tutorial detalhado (estendido) sobre o mcl4 para estudar junto com seus conselhos?
E você poderia escrever o código acima sem usar a notação húngara para comparação? Você tem certeza de que a plataforma MT4 o entende claramente?
E uma pergunta sobre o código: para que é acontinuação; para que?
Se uma ordem não for selecionada na primeira iteração, então ela não será selecionada nas iterações subseqüentes e o ciclo continuará indefinidamente? Porque o número de pedidos não muda. Não seria mais corretoromper com uma mensagem de erro?Contextos gráficos do menu, propriedades, cores - você já tentou isso?
Obrigado, eu já encontrei!!!
Se programática, veja as funções ChartSetInteger() e ChartGetInteger().
Obrigado por encontrá-lo já com sua ajuda!!!
Aí está!!! Afinal,g_ eg_n não são apenas uma abreviação, mas prefixos que dizem que são variáveis globais e inteiras globais!!! Ugh... E não consegui perceber porque estes traços em designações variáveis. Como é possível para um iniciante, que não está familiarizado com tais sutilezas, escrever código usando arrays, estruturas, etc.? Pensei que minha estratégia simples poderia ser escrita em linguagem simples, sem mergulhar na selva.
Para fazer algo, temos que mergulhar nas sutilezas. Não há outra maneira.
Você poderia me dar um link para um tutorial detalhado (estendido) sobre o mcl4 para estudar junto com seus conselhos?
Conheço apenas um livro sobre MQL4 - o de Sergey Kovalev.
E você poderia escrever o código acima sem usar a notação húngara para comparação? Você tem certeza de que a plataforma MT4 o entende claramente?
Acostume-se a uma formatação de código apropriada de uma só vez )) A notação húngara foi inventada por programadores bastante experientes.
E uma pergunta sobre o código: para que é acontinuação; para que?
Então, se uma ordem não for selecionada na primeira iteração, ela não será selecionada nas próximas e o laço irá para o infinito? Porque o número de pedidos não muda. Não seria mais corretoromper com uma mensagem de erro?Se não selecionamos uma ordem, isso não significa que não poderemos selecionar a próxima ordem. Portanto, é razoável continuar o ciclo.
A não seleção de uma ordem não significa que a próxima ordem não possa ser selecionada. Portanto, é razoável continuar o ciclo.
E não há necessidade de exibir uma mensagem de erro? Seria provavelmente útil saber por que uma ordem não é encontrada e como evitá-la?