Discussão sobre "Como escrever uma DLL para MQL5 e trocar dados em 10 minutos". - página 4
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
MT5 construir 240. É permitido chamar a dll.
Qual é esta mensagem que estou a receber "2010.01.24 22:41:09 MQL5DLL_Test (GBPJPY,H4) Violação de acesso escreva para 0x00000000 em 'D:\Soft\Forex\MetaTrader 5\MQL5\Libraries\MQL5DLLSamples.dll'?
MT5 construir 240. A ligação dll está activada.
4. Apanhamento de excepções em funções DLL
Para evitar o colapso do próprio terminal, cada chamada de função DLL é automaticamente protegida por um invólucro de Excepção sem Solavanco. Este mecanismo evita a maioria dos erros padrão (invocação de memória inacessível, divisão por zero, etc.).
Para verificar a operacionalidade deste mecanismo, vamos criar o seguinte código:
e chamá-lo a partir do terminal:
Como resultado, haverá uma tentativa de escrever em endereço zero, sendo gerada uma excepção. O terminal interceptá-lo-á, fará um relatório no diário de bordo e continuará o seu trabalho:
Do artigo, um exemplo de demonstração:
Obrigado. Por isso, não estava muito atento quando li o artigo. :)
PS Eu poderia ter dito algo do género: "Ouve, camarada! Vá reler o artigo de novo" e teria razão. Respeito e respeito, como se costuma dizer.
Caro pisara,
Sejamos claros - estamos a ter uma discussão entre um teórico e um praticante.
Sem se tornar pessoal, até ao ponto. Um bom teórico conta com a experiência prática, um bom praticante mede sete vezes.
É claro que ninguém o proíbe de lutar pela "paz mundial", mas tenha em conta mais factores do que "porque não melhorar?
Foi o que eu escrevi - não o usarão, porque não querem fazer trabalho de rotina. Terá de receber tudo numa bandeja de prata - todos os indicadores, todo o ambiente do mercado, toda a história em diferentes períodos, etc. E precisa de fazer gráficos, porque não vai manipular todos os indicadores na sua mente.
Por isso, é realmente necessário um terminal completo. E nós damos-lhe: MetaTrader 5 + MQL5 + DLL. Chame-lhe uma estrutura ou simplesmente diga - dê-nos o terminal em código fonte/componentes (porque é isto que está a exigir).
Aqui não se trata de fazer a paz, mas é preciso concordar que facilitar a vida ao programador e melhorar a qualidade do sistema comercial + as suas capacidades de integração ainda não prejudicou ninguém. Não muito longe de exemplos: Borland Delphi, MS .net tem uma estrutura totalmente aberta / base de componentes / diagramas de classes e mesmo uma parte significativa do código fonte (Delphi) para os utilizadores da plataforma.
Os programadores consideram erradamente "poderoso" ser capaz de escrever scripts para sistemas comerciais em línguas nativas desprotegidas, e depois ficam surpreendidos por ninguém ir sequer usar as suas criações. É por isso que morrem antes de nascerem. Aqueles que desenvolveram e criaram uma comunidade de utilizadores pensam muito mais profundamente (porque já tinham batido antes) e não cometem tais erros.
Sejamos realistas. Se quiser lançar um software e vendê-lo, em seis meses ou um ano lançar uma actualização paga, então a protecção do código é muito importante para si. Se você, como eu o entendo, estiver aqui a longo prazo e melhorar continuamente a plataforma com uma cadeia de construções e apoio, então nenhum concorrente o apanhará. Mas os utilizadores serão capazes de escrever códigos muito melhores. E não só o código, mas também a estrutura TC, que não é menos importante! Posso até trazer uma analogia com os antivírus - o hacking do cliente AV ainda não dá acesso à actualização da base de dados de vírus (aqui - quotas).
Chamada de DLL controlada (desactivada por defeito) é aceitável, mas descarregar DLLs feitas por alguém para o seu terminal comercial é um buraco pior do que um Internet Explorer 6 não corrigido.
Portanto, este buraco é apenas uma permissão do utilizador! Como pode um mau utilizador garantir 100% de ausência de DLL nocivas, mesmo que seja assinada pela empresa X? Afinal, se o proibisse em dúvida, nunca saberia se lhe seria útil ou não. Por isso, aqui temos alguma psicologia.
Para sua informação, estatísticas do Google Trends sobre terminais comerciais com automatização:
Será que a escala de ordenados é logarítmica?
A propósito, os dados russos são interessantes e podemos ver que o Metastock vermelho é líder:
Utilize as funções regulares "Responder", por favor. É muito desconfortável de ler.
Para quebrar um bloco citado, coloque o cursor onde desejar e seleccione o estilo "Texto simples" ou prima Ctrl+1.
Em geral, recomendo que se pare com este tipo de conselho - é fundamentalmente mortal, baseado em pressupostos errados e não adequado para a linguagem aplicada.
Como uma piada, há uma velha piada:
Сидят двое нищих. Перед каждым из них шляпа и надпись. У одного: «Подайте бедному еврею», у второго: «Подайте бедному арабу». Шляпа первого пуста, а в шляпе второго куча денег.
Um transeunte aproxima-se de um judeu, atira um rublo e diz:
- Ouça, mude o sinal, senão ficará com fome.
Quando o transeunte saiu, o judeu virou-se para o seu vizinho e disse:
- Compreendes, Izya? Este homem vai ensinar-nos sobre comércio!
Utilize as funções regulares "Responder", por favor. É muito desconfortável de ler.
Para quebrar um bloco citado, coloque o cursor no lugar certo e seleccione o estilo "Texto simples" ou prima Ctrl+1.
Geralmente, recomendo que se pare com este tipo de conselho - é fundamentalmente assassino, baseado em pressupostos errados e não adequado para uma linguagem aplicada.
Como uma piada, há uma velha piada:
OK, se não quiser dar as verdadeiras razões pelas quais a premissa é assassina e porque é que o quadro .net está apertado para si, a discussão acabou. Em relação à piada, medida para si, o mosteiro é seu.
Continua a desejar boa sorte a todos para não olharem para trás depois da actualização para 5.
Renat, muito obrigado pelo artigo! É muito interessante e informativo. Infelizmente, não consegui utilizar o script MQL5DLL Test.mq5. Fiz tudo como descrito no artigo. Contudo, quando corri o guião, o MT5 acabou de cair. Não sei qual é o problema. Poderá ser a questão dos eixos? Estou a executar o MS Vista x64. Por favor, aconselhe como consertá-lo :-)
Leia novamente o artigo na íntegra, por favor.
Há apenas um lugar sobre a geração de erros (escrita em endereços zero) dentro de DLL, e mais erros apanhados pelo terminal sem colisão. É necessário comentar o apelo do método fnCrashTest.
Hoje irei verificar este código no Vista x64 - talvez seja erro nosso.
Leia novamente o artigo na íntegra, por favor.
Há apenas um lugar sobre a geração de erros (escrever em endereços zero) dentro de DLL e apanhar mais este erro por terminal, sem colisão. Deve comentar a chamada do método fnCrashTest.
Hoje irei verificar este código no Vista x64 - talvez seja erro nosso.
Sim, li tudo cuidadosamente e mais do que uma vez :-))
Esqueci-me de vos dizer que comentei a função fnCrashTest(int arr) no script MQL5DLL Test.mq5. Continuo a ter um acidente. :-(
É este o seu aspecto. Ou tenho de comentar a função fnCrashTest(int arr) no código dll?
1) que versão do terminal é 32 ou 64 bit?
2) que versão da dll é 32 ou 64 bit?