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
DLL não atualizando com novos carrapatos
Como continuação do meu anterior posto DLL (#81), tenho agora um problema adicional; quando a DLL é chamada assim:
int start()
{
taxas duplas[][6];
int MaximumRecords = ArrayCopyRates( Tarifas, Símbolo(), 0 );
for( int zz = MaximumRecords; zz >= 0; zz-- ) { OutPut[zz] = VAZIO; }
GetSMAArray( Tarifas, Registros Máximos, Períodos, OutPut );
return(0);
}
funciona bem no sentido de que ele faz os gráficos como esperado no gráfico, mas infelizmente não é atualizado com novos tiquetaques recebidos - ele apenas faz os gráficos em sua chamada inicial. Que código adicional posso acrescentar para fazer a atualização da DLL com os tiquetaques recebidos? Quase todas as minhas buscas têm apresentado variações sobre o uso de
ExtCountedBars = IndicatorCounted();
para forçar um loop de tempo para calcular, mas todos estes se aplicam aos cálculos contidos no próprio arquivo .mq4. Eu quero forçar a DLL a recalcular. Em segundo lugar, gostaria que este recálculo ocorresse somente na conclusão de uma barra e não na chegada de todos e de cada tick.
Para loop deve ser
for(int zz=MaximumRecords-1;.................
10 Registros ocupam as posições 0 a 9 em uma matriz
Para loop deve ser
for(int zz=MaximumRecords-1;.................
10 Os registros ocupam as posições 0 a 9 em uma matrizReceio que isto não tenha ajudado, a DLL ainda não é atualizada com novos tiquetaques.
O vídeo de amostra de Mistigri não está disponível
Olá a todos,
Alguém poderia disponibilizar o vídeo de amostra da Mistigri na Internet?
Olá a todos, alguém poderia disponibilizar o vídeo de amostra da Mistigri na Internet?
Mistigri o disponibilizou novamente em:
Projetos | PsNouvion
Um caminho para os desenvolvedores C#: MT4/5 -> C# DLL
Aqueles desenvolvedores C# que gostariam de escrever uma DLL em C# para Metatrader ao invés de em C++ agora têm um caminho para esse fim. Há um artigo muito interessante intitulado "Expondo o código C# para MQL5 usando exportações não gerenciadas" que acabei de ler.
Leia/escreva o artigo e leia a seção 2.5 em diante.
Expondo o código C# à MQL5 usando exportações não-gerenciadas - Artigos MQL5
Leia as instruções, depois baixe o Template para C# "Unmanaged Export Library" e coloque o arquivo zip no diretório correto (seguindo as instruções naquela página):
C# Modelo de Projeto para Exportações Não Gerenciadas
Carregar VS e selecionar o modelo "Unmanaged Export Library" (Biblioteca de exportação não administrada). Siga as amostras de código. Espero que isto ajude alguém!
erro crítico, mas sem travamento e esta é a forma de escrever dll
Finalmente posso escrever minha dll usando o MistigriFX Sample Debug (MFX_SD para abreviar) no Visual Studio 2008 Express.
No entanto, estou tendo um problema engraçado:
Não há problema ao rodar três MFX_SD no gráfico com entrada de período diferente. Entretanto, ao anexar outros três ao segundo gráfico com entrada de período diferente, estou tendo duas mensagens de erro (função 'GetSMAArray' chamada da dll 'Mistigri FX Sample 1.dll' erro crítico') e o especialista deixa de funcionar.
Então eu vejo dois gráficos, em um gráfico todos os três MFX_SD rodando bem a cada tick, em outro vejo apenas um MFX_SD rodando cada tick e os outros dois não estão.
algum conselho, pessoal?
Em anexo é como eu escrevo a dll no visual studio 2008. Escrevo isto em documento de texto para que você possa lê-la de seu Visual Studio.
Se você tiver algum erro, por favor amaldiçoe a si mesmo por seguir os conselhos de um programador novato como eu .
Muito obrigado de antemão.
erro crítico resolvido
Depois de tentar várias vezes, finalmente resolvi as mensagens de 'erro crítico' (leia meu post anterior).
Não tem nada a ver com a forma como eu fiz o .dll, mas tem a ver com a lógica miss na função GetSMAArray em códigos MFX_SD.
Aqui estão os códigos MFX_SD que eu destaco a lógica miss.
para ( int i = 0; i < MaximumRecords; i++)
{
soma dupla = 0,0;
para ( int k = 0; k < Período; k++ )
{
Soma += Tarifas[MaximumRecords-i-1-k].fechar;
}
Resultado[MaximumRecords-i-1] = Soma / Período ;
}
Por exemplo, supõe-se que temos Period = 2, MaximumRecord = 75, e i = 74. Isso comete erro ao calcular :
Soma += Tarifas[MaximumRecords-i-1-k].fechar;
porque o resultado do MaximumRecord - i - 1 - k é igual a -1. O único valor para Tarifas [-1] é zero, o que torna o valor da soma igual a zero também. E como calculamos SMA, temos que dividir a soma com Período, que é zero dividido por 2, E há o 'erro crítico' e o especialista pára.
Se você não acredita nisso, anexe vários MFX_SD a um gráfico de 1 minuto com período de entrada diferente, mas um de MFX_SD deve ter período de entrada = 1. Olhe a janela do Terminal MT e clique na aba expert. Você verá uma mensagem de erro crítico e o especialista pára de funcionar. Entretanto, se você olhar apenas para o gráfico MFX_SD com período = 1 ainda está funcionando.
Eu acho que o que MistigriFX tentou mostrar em seu vídeo foi como fazer dll e passar arrays para dll. Se ele tivesse que corrigir em sua lógica SMA, seria um vídeo que dói muito de cabeça para assistir. É por isso que ele nos mostra com não-correto, mas um exemplo simples de MA simples.
Feliz fazer dll.
Extensão MT4 - seu curso
Olá codersguru,
poderia por favor me dar alguns links para seu curso?
ou manual em pdf.
Eu precisaria de qualquer literatura para aprender mais sobre isso.
Muito obrigado.
Com os melhores cumprimentos
Ivan
...
Nas amostras de especialistas\\DLLSample pasta de metatrader (cada metatrader o instala lá) você tem um exemplo (fonte mql e C++, com projeto e arquivo def) que é tudo que você precisa saber sobre as chamadas dll (todos os tipos de parâmetros possíveis suportados pelo metatrader para dll e de volta "comunicação" são cobertos lá) O resto é até o seu conhecimento de C/C++.
Olá codersguru,
Por favor, me dê alguns links para o seu curso,
ou manual em pdf.
Eu precisaria de qualquer literatura para aprender mais sobre isso.
Muito obrigado.
Com os melhores cumprimentos
Ivan