Pesquisar

Desenvolvimento de Expert Advisor em MQL5 e sistema em Python

18/05/2025 às 18:13

Descrição do Projeto:

Objetivo:
Preciso que o sistema MT5_wrapper, atualmente implementado em Python, consiga estabelecer uma comunicação de baixa latência (idealmente <1ms) com um Expert Advisor (EA) no MetaTrader 5, para trocar informações de tick e enviar ordens de compra/venda de forma segura e eficiente.

Requisitos:

A comunicação deve ocorrer via memória compartilhada.

A troca de dados deve incluir:

• Leitura de ticks (bid, ask, timestamp) do EA.
• Envio de ordens (type, volume, price, sl, tp, magic, isNew) para o EA.

A estrutura de memória já está definida em um código Python de exemplo (mmap + ctypes) com as structs TickData e OrderRequest.

No futuro, a parte Python que manipula memória será substituída por um módulo em C++ embutido no sistema principal.

Escopo do projeto:

1. DLL em C++ (Windows, x64)
Criar uma DLL chamada mt5_bridge.dll.

Exportar 3 funções via __declspec(dllexport):

• GetTickSharedMemory() – retorna ponteiro para buffer de ticks.
• GetOrderSharedMemory() – retorna ponteiro para buffer de ordens.
• ReleaseSharedMemory(ptr) – libera a memória mapeada.

Detalhes técnicos:
Usar CreateFileMappingW e MapViewOfFile com nomes:

• "Global\\MT5_Ticks" (para leitura e escrita de ticks).
• "Global\\MT5_Orders" (para leitura e escrita de ordens).

As funções devem retornar ponteiros como uint64_t para compatibilidade com MQL5 (ulong).

A DLL deve ser compilada em modo Release, arquitetura x64.

2. Expert Advisor em MQL5
Desenvolver um EA chamado EA_MemoryBridge.mq5.

Importar a DLL e utilizar #import com funções:

3. Python (OK)
O cliente já possui o código Python com mmap que interage com as mesmas estruturas.

O Python será responsável por:

• Escrever os ticks no buffer "Global\\MT5_Ticks".
• Ler ou escrever ordens no buffer "Global\\MT5_Orders".

O freelancer não precisa alterar esse código, mas deve garantir compatibilidade.

Habilidades desejadas:

Metatrader Programação C++ Python

Arquivos anexados:

Entre ou Cadastre-se para ver os arquivos anexados.

Atividades do cliente nesse projeto:

Última visualização: 20/05/2025 às 14:10

Informações adicionais

Categoria: Web, Mobile & Software
Subcategoria: Outra - Web, Mobile & Software
Orçamento: Aberto
Nível de experiência: Intermediário
Visibilidade: Público
Propostas: 3
Interessados: 6
Tempo restante:
Valor Mínimo: R$ 50,00

Cliente

Propostas (3)
  • Freelancer Pro Patrick S.
    Top Freelancer Plus
    Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Ajustes em bot de repasse de mensagens no Telegram - Tenho um bot em Python que faz repasse de mensagens no Telegram. Preciso de ajustes pontuais no código para melhorar o funcionamento e corrigir pequenos bugs. É necessário ter...

Criação de e-mails com domínio no Registro.br - Olá! Preciso criar alguns e-mails utilizando meus domínios que estão no Registro.br. São dois domínios e preciso de 4 e-mails em cada, como: contato@, suporte@, e...

Ajustar fluxo no n8n - Tenho um fluxo pronto, mas os nós não estão mais funcionando perfeitamente. Basicamente, preciso que ajuste o nó para consultar, editar e lançar dados no Supabase...

Implementar botão de atualização em dashboard Power BI - Procuro um(a) profissional com experiência sólida em Power BI, com foco em atualização de dados em dashboards fora do ambiente do Power BI Service. O objetivo principal ...

Finalizar site para empresa offshore - Preciso finalizar um site. Ele já está construído, porém preciso concluir e fazer a entrega para um cliente!

Carregando...

Carregando...

Pesquisar

FREELANCERS
PROJETOS
Ocorreu um erro inesperado. Caso o erro persista, entre em contato conosco através do e-mail suporte@99freelas.com.br.