Crie sua própria extensão MetaTrader (dll) - página 7

 

Você quer dizer, ao calcular um Indicador?

Então sim, por exemplo, eu escrevi minha própria função ATR em uma dll e o que acontece é que minha DLL ATR usa suavização wilder's enquanto MT4 apenas usa uma média simples... O mesmo acontece com qualquer um dos indicadores escritos por wilders e outros indicadores que parecem ter múltiplas versões ...

Primeiramente eu me certificaria de que seus indicadores dêem os mesmos resultados que a plataforma MT4 a partir da DLL ...

Patrick

 

DLLs e Indicadores

Alguém tem algum tipo ou melhores práticas gerais para usar uma dll em um indicador (como obter a faixa de preços para a dll, etc.)? Eu quero que uma dll calcule os valores em vez de usar funções no MetaTrader.

Obrigado!

 

Página não encontrada!

mistigriFX.com não pode mais ser encontrado. qual poderia ser a razão?

 

Como fazê-los funcionar?

Mistigri:
Olá Tim,

Ao usar dev-c++ o arquivo def é gerado automaticamente para você, o problema é que você acaba com nomes de funções que se parecem com isto :

EXPORTS

_Z11GetSMAArrayP8RateInfoiiPd@16 @ 1

_Z12GetHighValueP8RateInfoii = _Z12GetHighValueP8RateInfoii@12 @ 2

_Z12GetHighValueP8RateInfoii@12 @ 3

_Z13GetCloseValueP8RateInfoii = _Z13GetCloseValueP8RateInfoii@12 @ 4

_Z13GetCloseValueP8RateInfoii@12 @ 5

_Z11GetSMAArrayP8RateInfoiiPd = _Z11GetSMAArrayP8RateInfoiiPd@16 @ 6[/PHP]

Now you need to make sure you add the following check around your code

[PHP]

#ifdef __cplusplus

extern "C" {

#endif

#ifdef __cplusplus

}

#endif

Em anexo estão os arquivos de exemplo que fiz para o VS2008, mas desta vez usando o dev-c++ ...

Espero que isso ajude

... como testar esses arquivos?? o que devemos fazer? Tanto quanto sei, as aplicações host para Dev C+++ são apenas exe. Como podemos usar o ex4?

 
xarlotie:
como testar esses arquivos?? o que devemos fazer? Tanto quanto sei, as aplicações host para Dev C++ são apenas exe. Como podemos usar o ex4?

oh! que pergunta muito estúpida! desculpe por isso...eu percebi a resposta...apenas ignore este post...obrigado!

 
codersguru:
Qualquer pessoa interessada em criar sua própria extensão MetaTrader (dll) pode ir até:

Criar sua própria extensão MetaTrader (dll) - Parte 1

Crie sua própria extensão MetaTrader (dll) - Parte 2

Haverá outra parte (ou 2) que eu estou escrevendo!

Espero que goste deles!

Muito obrigado por

o artigo.

 
codersguru:
Qualquer pessoa interessada em criar sua própria extensão MetaTrader (dll) pode ir até:

Criar sua própria extensão MetaTrader (dll) - Parte 1

Crie sua própria extensão MetaTrader (dll) - Parte 2

Haverá outra parte (ou 2) que eu estou escrevendo!

Espero que goste deles!

Eu tentei seguir os passos:

Figura 2 - Diálogo do novo projeto

3- A partir deste diálogo, escolha "MFC AppWizard (dll)" e escreva um nome para o projeto no campo "Project Name" (Figura 3) e clique em "OK".

Entretanto, não há tal escolha "MFC AppWizard (dll)".

Estou usando o C++ 2008 expresso da MS

O que estou fazendo de errado.

 

Olá, sem ajuda corporal?

Qualquer corpo pode fazer um tutorial para C++2008, por favor?

sub00:
Eu tentei seguir os passos:

Figura 2 - Diálogo de novo projeto

3- A partir deste diálogo, escolha "MFC AppWizard (dll)" e escreva um nome para o projeto no campo "Project Name" (Figura 3) e clique em "OK".

Entretanto, não há tal escolha "MFC AppWizard (dll)".

Estou usando o C++ 2008 expresso da MS

O que estou fazendo de errado.
 
Mistigri:
Acabei de terminar um vídeo sobre como escrever uma DLL para o MT4 ... Tentei fazer um exemplo que retorna um array, pois era realmente o que eu pensava estar faltando quando comecei a olhar a amostra fornecida pela MetaQuotes.

Assista ao vídeo

Se você estiver interessado apenas no código e no projeto VS, estes podem ser baixados aqui.

Espero que você goste

Patrick

Vídeo fantástico, exatamente o que eu estava procurando!

Muito respeito.

 

Eu baixei e compilei o projeto do mistigri com o VS++2008

As duas primeiras funções funcionam bem, mas a segunda faz com que o terminal caia como neste artigo:

Como usar Crashlogs para depurar suas próprias DLLs - Artigos MQL4

Eu recebo uma exceção C0000005 lançada ...

Exception : C0000005

Address : 77C36FA3

Access Type : read

Até agora, ainda não descobri o que está errado. Algo que tem a ver com a forma como a matriz OutPut[] é passada para a dll. Qualquer entrada seria apreciada!