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
Olá, Alexander,
obrigado por disponibilizar essas bibliotecas. De alguma forma, tentei instalá-las e fazer com que alguns de seus exemplos funcionassem, mas tive o mesmo problema várias vezes. Quando tento executar um dos scripts, recebo a mensagem de erro:
2011.03.11 09:06:22 1 Inserindo um registro (GBPUSD,H1) Não é possível abrir 'C:\Program Files\MetaTrader 5\MQL5\Libraries\AdoSuite.dll' (14001)
O AdoSuite.dll está no diretório correto, o .NET 2.0 framework está instalado, segui todas as suas instruções, mas ainda assim sempre encontro esse erro, mesmo com o script mais simples em que faço apenas uma inclusão da sua biblioteca.
Alguma ideia de onde isso possa ocorrer? (A propósito, o problema não é porque o ADOSuite.dll não está no diretório: se eu remover a dll do diretório, o erro será diferente: "Cannot open AdoSuite.dll'(126)")
Neil.
PS: até mesmo um script simples como o que está abaixo falha com o mesmo erro 14001. Será que sua DLL precisa "ver" outras DLLs?
//+------------------------------------------------------------------+
//| TestADO.mq5 |
//| Copyright 2011, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
#include <Ado\Providers\OleDb.mqh>
void OnStart()
{
Comment("Test");
}
//+------------------------------------------------------------------+
Olá,
É provável que você esteja lidando com um problema relacionado ao diretório de dados do seu terminal. Há três locais usados pelo MT5:
Olá, Alexander,
Copiei todos os arquivos corretamente, mas recebo o erro:
'CAdoRecord::Values' - cannot call protected member function DbDataAdapter.mqh 108 23
Quando eu incluo um destes includes:
#include <Ado\Providers\OleDb.mqh>
#include <Ado\Providers\Odbc.mqh>
#include <Indicators\BsvSqlServer.mqh>
Se eu tornar público o 'CAdoRecord::Values', recebo a falha de inicialização ao executar meu script EA.
Você pode me ajudar?
Obrigado
Ok, resolvi o problema. Copmilação com 64bot e ele inicia sem erros.
Você pode me dizer qual pode ser o problema?
Ao compilar, ele gera um aviso:
differed by const qualifier, function CAdoRecord::Compare overrides CObject::Compare AdoRecord.mqh 61 54
e o erro:
'=' - cannot convert from const pointer to non-const pointer AdoRecord.mqh 80 19
Você pode me dizer qual pode ser o problema?
Ao compilar, ele gera um aviso:
differed by const qualifier, function CAdoRecord::Compare overrides CObject::Compare AdoRecord.mqh 61 54
e o erro:
'=' - cannot convert from const pointer to non-const pointer AdoRecord.mqh 80 19
Nas linhas 62 e 82 do arquivo AdoRecord.mqh, você deve remover "const" da declaração e da implementação do método CAdoRecord::Compare.
Os códigos foram atualizados.Você poderia me dizer como resolver o seguinte problema: AdoSuite.dll' não é uma versão de 64 bits. E não quer funcionar....
Desde já, obrigado!
Você poderia me dizer como resolver o seguinte problema: AdoSuite.dll' não é uma versão de 64 bits. E não quer funcionar....
Desde já, obrigado!
Recompile o projeto para a plataforma de 64 bits. Mas há outros problemas: ao iniciar qualquer exemplo, ele escreve: invalid EX5 file (8)
Caso possa ser útil para alguém, publicarei o link aqui:
Ponte MT4-ODBC
https://github.com/onagano/mt4-odbc-bridge
Essa é uma biblioteca para o popular terminal de negociação MetaTrader4 (MT4), que dá acesso a um banco de dados relacional por meio da interface ODBC. Os principais recursos são os seguintes.
O MT4 tem sua própria linguagem de programação, MQL4, para negociação algorítmica. Embora seja fácil de aprender, sua expressividade é muito limitada. As pessoas que desejam executar um algoritmo mais sofisticado tendem a recorrer a uma linguagem fora do MT4, normalmente usando DLLs. No entanto, a programação nativa de DLLs é restrita à plataforma Windows, que não é familiar aos programadores convencionais do recente movimento de código aberto.
O MT4-ODBC Bridge (MOB, na sigla em inglês) fornece uma área de buffer para um RDBMS, como MySQL, PostgreSQL, SQLite etc. Esse banco de dados é geral o suficiente para a maioria dos movimentos de código aberto. Esse banco de dados é geral o suficiente para a maioria dos programadores de código aberto. Você pode acessar o banco de dados por meio de sua linguagem familiar ou talvez diretamente pelo SQL.
Essa é uma ponte caseira via DLL entre o terminal MT4 e o driver ODBC de qualquer banco de dados. E o banco de dados pode até mesmo estar na memória, como o H2, o que lhe permite trocar dados entre o EA e o indicador, coletar ticks e outros dados ou controlar o EA ou o indicador. E tudo o mais.