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
...
É muito bom que você fale sobre o assunto, mas não adianta ninguém reclamar se não estiver disposto a apresentar soluções ou mesmo sugestões sobre como atingir a meta.
...
Na verdade, é bom que a pfx tenha trazido e reclamado sobre isso, e a MetaQuotes deve resolver esse problema, porque eles conhecem o MetaTrader melhor do que todos nós (aliás, Renat Fatkhullin, o autor deste artigo, também é CEO da MetaQuotes). O fato de alguém ter mencionado isso não significa que ele tenha uma solução para o problema.
E eu concordo que não faz sentido dizer"É melhor fazer chamadas pouco frequentes", quando o .dll está sendo chamado a cada tick. E é bom ouvir isso do CEO da MetaQuotes, a honestidade é boa para uma mudança nos dias de hoje.
@ pfx, parece que eles mudaram o parágrafo que você citou ...
5. Chamadas de DLL e perda de velocidade nas chamadas
Como já foi descrito acima, toda chamada de funções de DLL é envolvida em um invólucro especial para garantir a segurança.
Essa vinculação mascara o código básico, substitui a pilha, oferece suporte a acordos stdcall/cdecl e monitora exceções nas funções chamadas.
Esse trabalho inevitavelmente leva ao atraso da função de chamada.
Portanto, não é recomendável executar chamadas de função de DLL muito frequentes (centenas ou milhares de vezes por segundo) para operações pequenas.
É melhor fazer chamadas pouco frequentes.
... a esta ...
5. Envoltório de chamadas de DLL e perda de velocidade nas chamadas
Como já foi descrito acima, toda chamada de funções de DLL é envolvida em um invólucro especial para garantir a segurança. Essa associação mascara o código básico, substitui a pilha, oferece suporte a acordos stdcall/cdecl e monitora exceções dentro das funções chamadas.
Esse volume de trabalho não leva a um atraso significativo na chamada da função.
Espero que eles realmente resolvam esse problema de perda de velocidade de chamada de .dll, e não apenas alterem algum parágrafo do artigo para evitar dúvidas.
Por falar em perguntas, espero que Renat Fatkhullin responda à pergunta do pfx: " Quero dizer, sério, que tipo de declaração é essa ", pois Renat escreveu na última linha do artigo: "Obrigado por seu interesse! Estou pronto para responder a qualquer pergunta", ou pelo menos a mudança de parágrafo.
Também estamos interessados em ouvir sua resposta :).
Escreverei mais sobre isso quando tiver tempo.
Não sei quando Renat escreveu esse artigo, mas a Microsoft não está mais oferecendo o Visual Studio 2005. Eles estão oferecendo o Visual Studio 2010 e 2011 beta e parece que estão prestes a abandonar o 2008.
Clique aqui para o Microsoft Visual Studio 2010 e clique aqui para o 2008. O instalador é um instalador da Web, o que é irritante se você tiver uma conexão lenta com a Internet. Eles oferecem um instalador off-line como imagem ISO, mas que também contém o Visual Studio C# e o Visual Basic. Após a instalação, ambos os Studio exigem algumas atualizações que também são grandes em tamanho de MB.
Para aqueles que não gostam de instalar o Visual Studio, há outras alternativas que podem ser consultadas em https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments. Meus favoritos são o NetBeans e o Code::Block. O NetBeans é suportado pela Oracle e é a base do Oracle Solaris Studio. No entanto, o NetBeans não vem com compilador, portanto, você tem que usar o compilador Cygwin ou MinGW, o que pode ser irritante para um novato. A última versão estável do famoso DevC++ foi lançada há 7 anos, agora seu site está cheio de links mortos, parece que ninguém mais está cuidando dele, portanto, não o recomendo.
No entanto, é melhor usar o Visual Studio, pois há muitas opções com as quais você pode brincar, se souber como.
Por falar em perguntas, espero que Renat Fatkhullin queira responder à pergunta do pfx: " Quero dizer, seriamente, que tipo de declaração é essa ", porque Renat escreveu na última linha do artigo: "Obrigado por seu interesse! Estou pronto para responder a qualquer pergunta", ou pelo menos a mudança de parágrafo.
Muito bom o tutorial!
Preciso criar arquivos de referência?
Preciso modificar o Fann2MQl.dll (documentado em http://fann2mql.wordpress.com) porque ele não está funcionando no MT5. O motivo é que no MT5 não é possível abrir arquivos onde você quiser. Eles precisam ser abertos em dois locais padrão (para o modo avançado e o modo de teste).
Portanto, a pergunta é: qual função invocar em vez de fopen e qual arquivo de cabeçalho incluir? Porque parece que os arquivos precisam ser abertos de dentro do MT5. Qualquer tentativa de abrir um arquivo ignorando o terminal.exe (como acontece ao usar o fopen de uma dll) é automaticamente encaminhada para o diretório de instalação ou para a área de trabalho, de acordo com o modo de inicialização do terminal.exe empregado (clicando no ícone ou na linha de comando com o parâmetro /portable).
Esse encaminhamento é ainda mais bizarro, pois o nome resultante do arquivo está apenas na primeira letra do caminho para ele.
Alguém sabe como criar uma DLL de 64 bits ou permitir que o MQL5 carregue uma DLL de 32 bits? O MQ5 não está carregando meu script de teste porque minha DLL "não é de 64 bits". Obrigado.
Isso pode ser corrigido; veja as instruções aqui: Solution Explorer -> Clique com o botão direito do mouse em Solution -> Configuration Manager -> menu suspenso Active solution platform -> selecione x64 -> clique em Close -> Rebuild Solution
Espero que isso ajude.
Boa sorte.
Olá,
Isso não funciona com a DLL produzida pelo Microsoft Visual Studio 2013 Express edition, veja em anexo.
Parece que ele não encontra a biblioteca MSVCR120D_APP.DLL e também há um problema com KERNEL_32.
Alguém teve um problema semelhante? Como posso contornar esse problema, por favor?
Obrigado, senhor
O mql5 suporta a importação de dll que inclui funções de retorno de chamada?
Por exemplo:
Há uma dll chamada tclient.dll, que inclui a função abaixo:
typedef TCLIENT_API void(*call_back)(Tick* p);
TCLIENT_API int sub_tick(CTX ctx, const char* insId, call_back f);
Então, como devo declarar e chamar o sub_tick no mql5?
#importar "tclient.dll"
//como declarar a função "sub_tick"
#importar
void ontick(Tick &ticks[])
{}
int OnInit()
{
//como chamar a função "sub_tick"?
}