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
Criei o meu Conselheiro Especialista em Feiticeiro. Não conheço muito bem o mql. Poderia explicar-me o que fazer com o exemplo dos envelopes?
A classe CSignalEnvelopes não tem tal modelo de mercado.
Conclusão: Precisamos de melhorar a turma (ou escrever a nossa própria turma).
2011.10.06 23:00:34 Solaris executor EURUSDm,M1: não pode chamar a função 'InfoOfTrading' da dll 'Solaris.dll' (erro 127)
Qual é a diferença entre chamar funções do dll em MT4 e MT5? Compilo um dll, funciona bem em MT5, mas em MT4 gera um erro:
2011.10.06 23:00:34 Solaris executor EURUSDm,M1: não pode chamar a função 'InfoOfTrading' da dll 'Solaris.dll' (erro 127)
Dê-me uma descrição do protótipo de função, por favor. Muito provavelmente utilizou o design _stdcall para MT5.
MT5 tem um mecanismo mais flexível para ligar nomes de funções DLL - suporta automaticamente tanto _stdcall (mais avançado com decoração de nomes) como _cdecl (método clássico antigo). O MetaTrader 4 apenas suporta chamadas _cdecl.
Já leu o artigo"Como escrever uma DLL para MQL5 e partilhar dados em 10 minutos?"Explica em detalhe como chamar funções DLL.
Forneça uma descrição do protótipo de função, por favor. Muito provavelmente para MT5 utilizou o design _stdcall.
MT5 tem um mecanismo mais flexível para ligar nomes de funções DLL - suporta automaticamente tanto _stdcall (mais avançado com decoração de nomes) como _cdecl (método clássico antigo). O MetaTrader 4 apenas suporta chamadas _cdecl.
Leia o artigo"Como escrever uma DLL para MQL5 e trocar dados em 10 minutos?" - há uma descrição detalhada das chamadas de funções DLL.
Tentou declará-lo dessa forma:
E assim:
em vez do antigo:
Mas agora um erro diferente:
2011.10.07 01:35:05 Solaris executor EURUSDm,M1: função 'InfoOfTrading' chamada da dll 'Solaris.dll' erro críticoEu li o artigo.
Nas definições do projecto especificou explicitamente a forma de chamada:
E em MT5 ainda funciona sem erros.
Em geral, os sinais são descritos na Ajuda exactamente da forma como precisa deles. Pode vê-lo aqui. A imagem mostra as definições do indicador CCI. Portanto, muito provavelmente, o seu Conselheiro Especialista não se baseará apenas nos sinais do indicador Envelopes. Existe também a CCI.
Certo, peço desculpa por isso. Afixei a fotografia errada. Mas isso não muda a questão. Aqui está uma fotografia da EA apenas em envelopes.
O que é que faço? Como é que o arranjo?
A propósito, no exemplo surs da entrega padrão MT4 a chamada é feita via __stdcall:
e funciona bem.
A propósito, no exemplo surs da entrega padrão MT4 a chamada via __stdcall:
e funciona bem.
No exemplo do MT4:
MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)
и имена экспортируемых функций явно описываются через *.def файл:
LIBRARY ExpertSample
EXPORTS GetIntValue
GetDoubleValue
GetStringValue
GetArrayItemValue
SetArrayItemValue
GetRatesItemValue
SortStringArray
ProcessStringArray
stdcall parece ser apoiada. Não tenho a certeza se é correcto descrever parâmetros que passam via & para quatro.
O exemplo do MT4:
MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)
и имена экспортируемых функций явно описываются через *.def файл:
LIBRARY ExpertSample
EXPORTS GetIntValue
GetDoubleValue
GetStringValue
GetArrayItemValue
SetArrayItemValue
GetRatesItemValue
SortStringArray
ProcessStringArray
stdcall acaba por ser apoiada. Não tenho a certeza se é correcto descrever o parâmetro que passa por & para os quatro.
Estou completamente desaprendido em dois anos com 4. :)
1. verifica-se que uma variável passada por referência não pode ser escrita numa dll. Para tal, é necessário utilizar uma matriz.
2. e é obrigatório o uso do ficheiro *.def.
Na verdade, aqui estão 2 diferenças de trabalho com as dlls de 4 e 5 que descobri, pode haver mais.