Auto-aprendizagem da linguagem MQL5 a partir do zero - página 58
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
Eu criei um modelo padrão. Foi aqui que comecei a escrever o código, e aqui comecei a afixar aqueles fragmentos que já foram escritos. Ainda não pensei na estrutura do algoritmo com minhas próprias funções, obrigado pela dica! Obrigado também pela dica sobre a conta netting!
Existe tal técnica de programação de alfabetização - ela permite escrever de forma muito rápida e inteligível.
Em geral, em estilo literário, escreva nos comentários o que você vai fazer (apenas a seqüência direta principal)
// тралим стоп-лосс единственного ордера по сигналу от тиков
// прим.) трал - подтягиваем стоп-лосс следом за ценой,
void TrallOnTick() {
// берём рыночный ордер (для 5-ки позицию)
// смотрим сколько пунктов от текущей цены до стоп-лосс
// если больше чем требуемая дистанция
// переносим стоп-лосс
}
Basicamente, tudo. Além disso, após cada comentário você escreve um código de 3-5 (um pouco em geral) linhas. Toda sua função do início ao fim deve caber na tela que você vê. Se você conseguir mais, isso significa que os fragmentos devem ser separados em funções/métodos separados.
Quando uma coisa tão elementar começa a funcionar no testador, então você pode generalizar, adicionar condições da vida real, mudança de passos, por exemplo, ou de freqüência, levar em conta as condições do mercado, não há limite para a perfeição...
abstrato, existe uma técnica de alfabetização-programação que permite escrever de forma muito rápida e clara.
Em geral, em estilo literário, escreva nos comentários o que você vai fazer (apenas a seqüência direta principal)
// тралим стоп-лосс единственного ордера по сигналу от тиков
// прим.) трал - подтягиваем стоп-лосс следом за ценой,
void TrallOnTick() {
// берём рыночный ордер (для 5-ки позицию)
// смотрим сколько пунктов от текущей цены до стоп-лосс
// если больше чем требуемая дистанция
// переносим стоп-лосс
}
Basicamente, tudo. Além disso, após cada comentário você escreve um código de 3-5 (um pouco em geral) linhas. Toda sua função do início ao fim deve caber na tela que você vê. Se você conseguir mais, isso significa que os fragmentos devem ser separados em funções/métodos separados.
Quando uma coisa tão elementar começa a funcionar no testador, você pode generalizar, adicionar condições da vida real, mudança de passos ou freqüência, por exemplo, levar em conta as condições do mercado, não há limite para a perfeição...
Olá Maxim! Você é muito útil com sua dica! Estou aqui sentado me perguntando como preencher um modelo padrão da EA.
Cumprimentos, Vladimir.
Prezados especialistas em programação!
Por favor, explique duas perguntas:
Talvez eu tenha um entendimento errado sobre a aplicação do Magic Number na programação.
Cumprimentos, Vladimir.
Quando uma ordem é aceita para execução todas as suas características (símbolo, tempo, tipo de ordem, bilhete) são atribuídas pelo terminal (solicitado pelo usuário e atribuído pelo terminal) e não pelo usuário e o mesmo com a posição, a posição armazena informações sobre suas ordens, mas pode haver muitas delas. E o número mágico é um identificador de usuário. Citação:
Quando criamos um novo pedido pendente, precisamos marcá-lo de alguma forma - para que o programa possa saber que este pedido em particular foi colocado pela NAMI neste pedido pendente em particular - ou seja, precisamos identificar e associar de forma única um pedido ou posição com um pedido pendente em particular.
NAMI está faltando em seu significado. E então a Artem coloca a classificação das ordens no número Magik. Por que não, os 2 primeiros dígitos indicam algo, por exemplo, o tipo de pedido, os 4 dígitos seguintes indicam a data do pedido.
Em relação ao algoritmo de alguma coisa. Definir inicialmente as condições iniciais. Há ordens em nosso símbolo e não as levamos em conta ou as levamos em conta. Sem condições iniciais de retrabalho ao criar o algoritmo, e ainda mais para que o código possa ser eterno)
abstrato, existe uma técnica de alfabetização-programação que permite escrever de forma muito rápida e inteligível.
Em geral, estilo de programação de alfabetização, escreva nos comentários o que você vai fazer (apenas a seqüência direta principal) ...
... Basicamente, tudo. Em seguida, após cada comentário você escreve o código 3-5 (não muito em geral) linhas. Toda a função do início ao fim deve caber na tela que você vê. Se você conseguir mais, isso significa que você tem que separar os fragmentos em funções/métodos separados.
Maxim, por favor verifique se entendi bem sua dica ou há algo mais que eu precise acrescentar? Refiro-me à parte do teste, porque eu ainda não escrevi os códigos.
Cumprimentos, Vladimir.
Maxim, por favor, veja se entendi bem sua dica, ou há algo mais que eu precise acrescentar? Refiro-me à parte do teste, além dos códigos.
Atenciosamente, Vladimir.
Condições iniciais. Calculamos que há uma posição em nosso símbolo e a vemos no gráfico.
Se temos uma posição, é apenas uma, ou comprar ou vender. Portanto, começamos por procurar posições em nosso símbolo. Solicitar / obter características. Determinação do tipo de posição - comprar ou vender. E assim por diante através do texto.
Quando uma ordem é aceita para execução todas as suas características (símbolo, hora de emissão, tipo de ordem, bilhete) são atribuídas pelo terminal (solicitado pelo usuário e atribuído pelo terminal), não pelo usuário, e o mesmo acontece com a posição, a posição armazena informações sobre suas ordens, mas pode haver muitas delas. E o número mágico é um identificador de usuário. Citação:
Quando criamos um novo pedido pendente, precisamos marcá-lo de alguma forma - para que o programa possa saber que este pedido em particular foi colocado pela NAMI neste pedido pendente em particular - ou seja, precisamos identificar e associar de forma única um pedido ou posição com um pedido pendente em particular.
NAMI está faltando em seu significado. E então a Artem coloca a classificação das ordens no número Magik. Por que não, os 2 primeiros dígitos indicam algo, por exemplo, o tipo de pedido, os 4 dígitos seguintes indicam a data do pedido.
Em relação ao algoritmo de alguma coisa. Definir inicialmente as condições iniciais. Há ordens em nosso símbolo e não as levamos em conta ou as levamos em conta. Sem as condições iniciais retrabalhar ao criar o algoritmo, e ainda mais, o código pode levar uma eternidade)
Obrigado, Valeriy, pela resposta detalhada. Muitas coisas se tornaram mais claras. Eu sinto o mesmo sobre o algoritmo, mas Vassily já explicou porque não precisamos do Número Mágico neste EA.
Cumprimentos, Vladimir
Obrigado, Valery, pela resposta detalhada. Isso esclareceu muita coisa. Tenho a mesma opinião sobre o algoritmo, mas Vasiliy já explicou porque não precisamos do Número Mágico neste EA.
Atenciosamente, Vladimir.
Abrimos um gráfico e há uma posição no símbolo do gráfico, não sabemos o que é e queremos abri-lo no breakeven e depois arrastá-lo SL para reduzir as perdas caso o preço se inverta.
Com as correções da Valery, o modelo EA com comentários ganhou um novo visual.
Cumprimentos, Vladimir.
Vladimir, você não precisa aproveitá-lo por muito tempo. Vamos entrar na ação. Escrevi um modelo da trilha desejada para você:
Tudo que você precisa fazer é preencher as funções com a lógica correspondente a seus nomes. Como você pode ver, o modelo é elementar. E estruturalmente semelhante aos ToR.
Note que este código compila, ou seja, do ponto de vista do compilador, está correto. Sempre se esforçar por este estado: ou seja, fazer pequenas mudanças durante o desenvolvimento, para que, após fazê-las, o código possa compilar. Também se esforçar para ter o relatório do compilador "0 erro, o avisos". É claro que não se pode executar o programa com erros, mas os avisos do compilador devem ser percebidos como a Oração de nosso Pai: se houver um aviso, ele deve ser corrigido. Este modelo é feito com "0 erro, o avisos" - salve este status até o final do desenvolvimento.
Uma vez entendida a lógica e entendido o compilador, tudo o que precisamos fazer é equipar as funções com a lógica necessária.
O segundo parâmetro, o valor da trilha, será movido para a próxima versão, por enquanto. Isso exigirá cálculos adicionais. É por isso que ela não está presente neste modelo. A rede de arrasto será ajustada a cada tique.
Vladimir, você não precisa aproveitá-lo por muito tempo. Vamos entrar na ação. Escrevi um modelo da trilha desejada para você:
Tudo que você precisa fazer é preencher as funções com a lógica correspondente a seus nomes. Como você pode ver, o modelo é elementar. E estruturalmente semelhante aos ToR.
Note que este código compila, ou seja, do ponto de vista do compilador, está correto. Sempre se esforçar por este estado: ou seja, fazer pequenas mudanças durante o desenvolvimento, para que, após fazê-las, o código possa compilar. Também se esforçar para ter o relatório do compilador "0 erro, o avisos". É claro que não se pode executar o programa com erros, mas os avisos do compilador devem ser percebidos como a Oração de nosso Pai: se houver um aviso, ele deve ser corrigido. Este modelo é feito com "0 erro, o avisos" - salve este status até o final do desenvolvimento.
Uma vez entendida a lógica e entendido o compilador, tudo o que precisamos fazer é equipar as funções com a lógica que precisamos.
O segundo parâmetro, o valor da trilha, será movido para a próxima versão, por enquanto. Isso exigirá cálculos adicionais. É por isso que ela não está presente neste modelo. A rede de arrasto será atualizada a cada tique.
Vasiliy, claro que quero agradecer-lhe por fazer tanto trabalho, mas isso não me ajuda a entender de onde vêm essas funções e operadores e, o mais importante, por que eles estão lá. Teria sido mais correto chegar ao ponto de escrever esse código, o que você me sugeriu. Eu mesmo queria chegar a este ponto e agora quero fazê-lo.
Entendo que vocês, como muitos outros, estão cansados de minha constante soletração de todas as linhas de código e pisoteio no local, mas o problema é que ainda não entendo como tudo é construído, desde o algoritmo até a escrita do código. Devo acrescentar a falta de conhecimento de inglês ao problema, pois tenho que copiar e colar quase todas as mensagens de erro e aviso do compilador, e outras palavras em inglês, no Google Translator. A propósito, se alguém tentou executar esses micro-códigos, mesmo nano-códigos que coloquei neste tópico, todos eles passaram na compilação com "0 erro, 0 avisos".
Agora eu preciso de algum tempo para perceber, ou melhor, para entender por que estas funções e operadores apareceram. Portanto, em resumo, é um horror silencioso. E eu sou um mau aluno quando não entendo as coisas elementares.
Obrigado e a todos os outros programadores por tolerarem a minha lentidão. Embora eu perceba que sua paciência não é ilimitada.
Atenciosamente, Vladimir.