Discussão do artigo "Conselhos de um programador profissional (Parte II): armazenamento e troca de parâmetros entre um EA, scripts e programas externos" - página 2
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
...
Como você sabe, o manipulador OnInit de um Expert Advisor é acionado não apenas quando ele é iniciado, mas também quando o período de tempo é alterado. De fato, cada vez que o período de tempo é alterado, as variáveis são redefinidas e inicializadas novamente, exceto os parâmetros do Expert Advisor.
...
Incorreto. Isso é o que acontece no indicador. Quando os parâmetros são alterados e o símbolo/timeframe do gráfico é alterado, o Expert Advisor não é reinicializado.
Agora, com relação à transferência de informações entre os Expert Advisors/indicadores/serviços etc., o que acontece é que os parâmetros são alterados.
Isso deixa apenas o EventChartCustom(...), com todas as suas desvantagens.
Portanto, marque a caixa de seleção para permitir a importação de dll e comece a fazer a coisa certa, ou, melhor ainda, de jeito nenhum.
1) O artigo está mal desenvolvido.
1) Fui elogiado pelo moderador.
2) para não executar a análise de barra repetidamente
3) o tempo de vida do arquivo é maior do que o da variável global
4) Mostrei uma das formas de empacotamento
5) Eu não os utilizo
...
a) Incorreto. Isso é o que acontece no indicador. Quando os parâmetros são alterados e o símbolo/timeframe do gráfico é alterado, o Expert Advisor não é reinicializado.
Agora, quanto à transferência de informações entre Expert Advisors/indicadores/serviços etc., não há como fazer isso.
b) Portanto, marque a caixa para permitir a importação de dll e comece a fazer isso corretamente ou, melhor ainda, não faça nada.
a) Concordo que a reinicialização das variáveis do Expert Advisor não é feita
1-2) estamos falando de troca entre o EA e os scripts. Se quiser, você pode criptografar as informações ;-)
3) o DC pode adicionar algo ao final no MT4. Não existe tal coisa no MT5, pelo menos para mim ;-)
4) Bem, eu geralmente uso o sinalizador FILE_SHARE_READ
b) Se você faz isso para si mesmo, então, como se diz, "flag in your hands....".
Se você fizer isso para o mercado, as DLLs não passam por lá.
(a) Concorda que não há reinicialização das variáveis do EA
1-2) estamos falando sobre a troca entre o Expert Advisor e os scripts. Você pode criptografar as informações ;-)
3) para adicionar algo ao final no MT4. Não existe tal coisa no MT5, pelo menos para mim.
4) Bem, eu geralmente uso o sinalizador FILE_SHARE_READ
b) se você fizer isso para si mesmo, então, como dizem, "sinalize em suas mãos....".
Se estiver fazendo isso para o mercado, as DLLs não passam por lá.
1-2) Portanto, criptografe ou não criptografe, mas você ainda pode alterá-lo/excluí-lo)))))
3) Se não estiver explicitamente declarado que você não pode, então... Pessoalmente, não tenho certeza de que poderei fazer isso.
4) Não estou falando disso, estou falando da situação de "corridas" de dados ao compartilhar um recurso de diferentes threads. Execute os dois scripts anexados em gráficos diferentes. Execute a gravação primeiro. Essa é a resposta à minha pergunta de longa data sobre metaquotes. E, novamente, no contexto do resultado do teste, ao qual finalmente cheguei (graças ao TC) e à pergunta feita a eles: onde estão as primitivas de sincronização nativas?
Essa também é a resposta para o fato de que, de certa forma, é ruim para um profissional fazer uma coisa dessas no mercado sem avisar os clientes por meio de cartas enormes.
....
Todos os exemplos de meus artigos funcionam bem para mim (em meu EA e em meus scripts)
Todos os exemplos de meus artigos estão funcionando bem para mim (em meu EA e em meus scripts)
Minha postagem não é sobre o que não funciona, mas sobre o fato de que a segurança e a integridade dos dados não são garantidas. Ao usar todos os métodos de transferência de dados acima, a confiabilidade do mecanismo não é garantida. Além disso, ela não está relacionada a possíveis bugs de sistemas de terceiros (Terminal, SO, bugs de hardware), mas ao próprio método: colisão de nomes ou ações do usuário no caso de variáveis globais do terminal, as mesmas funções + exclusão para objetos gráficos, falta de sincronização para operações de leitura e gravação em um arquivo de diferentes threads.
Sim, a probabilidade disso pode ser reduzida a valores muito baixos, mas não a 0. É isso que você deve ter em mente)
Minha postagem não é sobre o que não funciona, é sobre não garantir a segurança e a integridade dos dados. Ao usar todos os métodos de transferência de dados acima, a confiabilidade do mecanismo não é garantida. Além disso, isso não está relacionado a possíveis erros de sistemas de terceiros (terminal, sistema operacional, erros de hardware), mas ao próprio método: colisão de nomes ou ações do usuário no caso de variáveis globais do terminal, as mesmas funções + exclusão de objetos gráficos, falta de sincronização para operações de leitura e gravação em um arquivo de diferentes threads.
Sim, a probabilidade disso pode ser reduzida a valores muito baixos, mas não a 0. É isso que você deve ter em mente)
O armazenamento de parâmetros em arquivos oferece 100% de confiabilidade. Todas as suas "colisões" são resolvidas por prefixos de nomes de objetos, inclusive variáveis globais.
Por exemplo, os parâmetros de nível são armazenados em Files\Cayman\Params\128968168864101576\exp_05_Lev607A160E_H4.txt. Onde 128968168864101576 é o ChartID. Ninguém sabe sobre esse arquivo, exceto o analisador desse nível específico. Pegue qualquer trecho de código do artigo e tente "quebrá-lo" ;-) Se você conseguir, eu lhe mostrarei onde cometeu um erro ;-)
Com um script como esse em qualquer EA/indicador/script/serviço executado por um usuário curioso, você terá semanas divertidas de busca por um bug irreproduzível que não existe)))))