Sunday 12 November 2017

Forex Sql Banco De Dados


MetaTrader 5 - Integração Como acessar o banco de dados MySQL a partir do MQL5 (MQL4) Introdução O problema de interação do MQL com bancos de dados não é novo, porém ainda é relevante. O uso de bancos de dados pode aumentar consideravelmente as possibilidades do MetaTrader: armazenamento e análise do histórico de preços, transações de cópia de uma plataforma de negociação para outra, fornecendo quotestrades em tempo real, cálculos analíticos pesados ​​no lado do servidor e ou usando um cronograma, monitoramento e controle remoto De contas usando tecnologias web. De qualquer forma, houve muitas tentativas de se beneficiar da combinação de MQL e MySQL, algumas soluções estão disponíveis no CodeBase. Por exemplo MySQL wrapper - biblioteca para MetaTrader 4 é o projeto, a partir do qual muitos programadores iniciar seus próprios desenvolvimentos com adições adicionais. Na minha opinião, uma das desvantagens desta solução é a alocação de arrays especiais para a leitura de dados do banco de dados. Outro projeto MySQL logger 1 - EA para MetaTrader 4 é altamente especializado, ele não usa wrapper para acessar a biblioteca padrão libmysql. dll. Portanto, não funciona no MetaTrader4 Build 600, uma vez que os tipos de caracteres char foram substituídos por wchart. E o uso do tipo int em vez do ponteiro de estrutura TMYSQL provoca vazamentos de memória no projeto (a memória alocada não pode ser controlfreed). Um outro projeto interessante é EAXMysql - biblioteca de MySQL - biblioteca para MetaTrader 5. Sua bastante uma boa execução. A lista de desvantagens indicada pelo autor impõe algumas restrições à sua utilização. Qualquer pessoa que precise usar bancos de dados em seus projetos MQL tem duas opções: ou para desenvolver sua própria solução e conhecer cada parte dela, ou useadapt qualquer solução de terceiros, aprender a usá-lo e detectar todos os seus defeitos que podem dificultar Seu projeto. Enfrentei tal necessidade e as duas opções ao desenvolver um robô de negociação bastante complexo. Tendo pesquisado através de projetos existentes e estudado um grande número de soluções, percebi que não das implementações encontradas poderia ajudar a trazer meu robô comercial para o nível profissional. Além disso, também havia soluções absurdas, por exemplo: operações DMLDDL (insertupdatedelete dados, createdrop objetos no banco de dados) foram realizadas usando o padrão libmysql. dll, e os dados de seleção (SELECT) foi realmente implementado como uma solicitação HTTP (usando inet. dll) Para um script PHP localizado no servidor web no lado do servidor MySQL. As consultas SQL foram escritas no script PHP. Em outras palavras, para executar o projeto, é necessário manter os seguintes componentes disponíveis, configurados e executados: servidor MySQL, servidor web ApacheIIS, scripts PHPASP no lado do servidor. Uma combinação de um grande número de tecnologias. Claro, em algumas circunstâncias isso pode ser aceitável, mas quando a única tarefa é selecionar dados do banco de dados - isso é um disparate. Além disso, suportar uma solução tão pesada é demorado. A maioria das soluções não teve problemas inserindo dados, criando objetos e similares. O problema foi a seleção de dados, pois os dados devem ser retornados para o ambiente de chamada. Eu pensei que usando arrays para este propósito era impraticável e inconveniente, simplesmente porque no curso de developmentdebuggingsupport do projeto principal, selecione consultas para o banco de dados pode ser alterado, enquanto você também deve controlar alocação de memória correta para os arrays. Bem, isso pode e deve ser evitado. A discussão a seguir, MQL lt-gt MySql interface é baseada em uma abordagem típica usada em Oracle PLSQL, SQL SQL T-SQL, AdoDB - uso de cursores. Esta interface foi desenvolvida visando a facilidade de programação e manutenção, além de um mínimo de componentes. Ele é implementado como um wrapper DLL para a biblioteca padrão libmysql. dll e um conjunto de funções de interface como um arquivo. mqh. 1. MQL lt-gt Interface MySQL A interação entre o terminal MetaTrader (através de programas MQL) pode ser implementada com a ajuda dos seguintes componentes: 1. A biblioteca de interface MQLMySQL. mqh. Ele é adicionado ao projeto usando o diretório include e pode ser modificado a seu gosto. Ele contém as diretrizes para importar funções da biblioteca dinâmica MQLMySQL. dll, bem como funções para chamá-los e manipulação de erros. 2. A biblioteca dinâmica MQLMySQL. dll. É um wrapper para acessar a funcionalidade da biblioteca padrão libmysql. dll. Além disso, a biblioteca MQLMySQL. dll processa os resultados das operações e o acesso compartilhado às conexões e cursores do banco de dados. Isso significa que você pode criar e usar várias conexões de cada vez (de um ou mais programas MQL), manter alguns cursores abertos, com consultas a um ou mais bancos de dados. Mutexes são usados ​​para separar o acesso aos recursos compartilhados. 3. A biblioteca dinâmica padrão libmysql. dll é um driver de acesso nativo. Você pode copiá-lo de qualquer distribuição de banco de dados MySql em C: WindowsSytem32 ou ltTerminalgtMQL5Libraries (para MetaTrader 4 em ltTerminalgtMQL4Libraries). Na verdade, ele é responsável por enviar consultas para o banco de dados e recuperar os resultados. Vamos falar sobre os pontos principais, tais como: openingclosing a conexão, executar consultas DMLDDL e seleção de dados. 1.1. Abrindo e fechando a conexão A função MySqlConnect foi implementada para abrir a conexão com o banco de dados MySQL: Esta função implementa a conexão com o banco de dados e retorna um identificador de conexão. Esse ID será necessário para consultar o banco de dados. No caso de uma falha de conexão, o valor de retorno é -1. Para obter detalhes sobre o erro, verifique as variáveis ​​MySQLErrorNumber e MySqlErrorDescription. Normalmente, essa função é chamada ao manipular o evento OnInit () no programa MQL. O nome DNS ou o endereço IP do servidor MySQL Usuário do banco de dados (por exemplo, raiz) A senha do usuário do banco de dados O nome do banco de dados A porta TCPIP do banco de dados (geralmente 3306) O soquete Unix (para sistemas baseados em Unix) Combinação de sinalizadores especiais (normalmente 0) A função de interface MySqlDisconnect foi implementada para fechar a conexão: Esta função fecha a conexão com o banco de dados MySQL. Normalmente, essa função é chamada ao manipular o evento OnDeinit () no programa MQL. Deve-se notar que o banco de dados MySQL pode fechar a conexão por conta própria em caso de falha de hardware, congestionamento de rede ou tempo limite (quando nenhuma consulta é enviada para o banco de dados por um longo tempo). Muitas vezes, os desenvolvedores usam o evento OnTick () para gravar dados no banco de dados. No entanto, quando o fim de semana chega eo mercado está fechado, a conexão ainda está pendurada. Neste caso, o MySQL fechará seu timeout (o padrão é 8 horas). E na segunda-feira, quando o mercado está aberto, erros são encontrados no projeto. Portanto, é altamente recomendável verificar a conexão e / ou reconectar-se ao banco de dados após um intervalo de tempo menor que o tempo limite especificado nas configurações do servidor MySQL. 1.2. Execução de Consultas DMLDDL As operações DML são usadas para manipulação de dados (Linguagem de Anulação de Dáta M anulação). As manipulações de dados incluem o seguinte conjunto de instruções: INSERT, UPDATE e DELETE. As operações de DDL são usadas para a definição de dados (D definição de definição de Língua). Isso inclui a criação (CREATE) de objetos de banco de dados (tabelas, visualizações, procedimentos armazenados, acionadores, etc.) e sua modificação (ALTER) e exclusão (DROP). Suas instruções não são todas DMLDDL, além disso, DCL (D ata Control L anguage) é usado para separar o acesso a dados, mas não vamos aprofundar os recursos do SQL. Qualquer um desses comandos pode ser executado usando a função de interface MySqlExecute: Como uma consulta SQL, você também pode usar o comando USE para selecionar o banco de dados. Eu gostaria de mencionar o uso de consultas de instruções múltiplas. É um conjunto de comandos SQL separados pelo caractere. Para ativar o modo de instruções múltiplas, a conexão com o banco de dados deve ser aberta com o sinalizador CLIENTMULTISTATEMENTS: Neste fragmento, 3 entradas serão inseridas na tabela EURUSD com uma única chamada para o banco de dados. Cada uma das consultas armazenadas na variável SQL é separada por. Esta abordagem pode ser usada para insertupdatedelete freqüente um conjunto de comandos necessários é combinado em um pacote, aliviando assim o tráfego de rede e melhorar o desempenho do banco de dados. A sintaxe INSERT no MySQL está bastante desenvolvida em termos de tratamento de exceções. Por exemplo, se a tarefa for mover o histórico de preços, deve ser criada uma tabela para os pares de moeda com a chave primária do tipo de data e hora, uma vez que a data ea hora de uma barra são exclusivas. Além disso, deve ser verificado se os dados em qualquer barra particular existem no banco de dados (para melhorar a estabilidade da migração de dados). Com o MySQL esta verificação não é necessária, uma vez que a instrução INSERT suporta ON DUPLICATE KEY. Em palavras mais simples, se for feita uma tentativa de inserir dados ea tabela já tiver uma entrada com a mesma data e hora, a instrução INSERT pode ser ignorada ou substituída por UPDATE para essa linha (veja. Dev. mysqldocrefman5.0eninsert - On-duplicate. html). 1.3. Seleção de dados A instrução SQL SELECT é usada para recuperar dados do banco de dados. A seqüência de ações abaixo é usada para selecionar dados e recuperar o resultado da seleção: Preparando a instrução SELECT. Abrindo o cursor. Obtendo o número de linhas retornadas pela consulta. Fazendo o loop e recuperando cada linha da consulta. Buscando dados para as variáveis ​​MQL dentro do loop. Fechar o cursor. Claro, este é um esquema geral, portanto, nem todas as operações são necessárias para cada caso. Por exemplo, se você quiser ter certeza de que uma linha existe na tabela (por qualquer critério), será suficiente para preparar uma consulta, abrir um cursor, obter o número de linhas e fechar o cursor. Na verdade, as partes obrigatórias são - preparar a instrução SELECT, abrindo e fechando o cursor. O que é um cursor Esta é uma referência à área de memória de contexto, na verdade - o conjunto de valores resultante. Quando você envia a consulta SELECT, o banco de dados aloca memória para o resultado e cria um ponteiro para uma linha que você pode mover de uma linha para outra. Assim, é possível acessar todas as linhas na ordem de uma fila definida pela consulta (cláusula ORDER BY da instrução SELECT). As seguintes funções de interface são usadas para a seleção de dados: Abrindo o cursor: O identificador de cursor retornado por MySqlCursorOpen Fechar um cursor é uma operação crítica. Não se esqueça de fechar cursores. Imagine que você abra o cursor e esqueça de fechá-lo. Suponha que os dados sejam recuperados para o cursor com cada tick ao manipular o evento OnTick (), e sempre que um novo cursor é aberto, a memória é alocada para ele (tanto do lado do cliente como do lado do servidor). Em algum ponto, o servidor irá recusar o serviço porque o limite de cursores abertos é atingido, e isso poderia causar buffer overflow. Claro, seu exagerado, tal resultado é possível ao trabalhar com libmysql. dll diretamente. No entanto, a biblioteca dinâmica MQLMySQL. DLL distribui memória para cursores e irá recusar abrir um cursor que ultrapassa o limite permitido. Ao implementar tarefas reais, basta manter 2-3 cursores abertos. Cada cursor pode manipular uma medida cartesiana de dados usando dois-três cursores simultaneamente (aninhado, por exemplo, quando um parametricamente depende de outro cursor) abrange duas ou três dimensões. Isso é perfeitamente bem para a maioria das tarefas. Além disso, para a implementação de seleção de dados complexos, você sempre pode usar esses objetos para representar o banco de dados (VIEW), criá-los no lado do servidor e enviar consultas a eles a partir do código MQL como tabelas. 1.4. Informações Adicionais Podem ser mencionados como características adicionais: 1.4.1. Leitura de dados de um arquivo. INI Muitas vezes, armazenar informações sobre conexões com o banco de dados (endereço IP do servidor, porta, nome de usuário, senha etc.) diretamente no código MQL (ou parâmetros do Expert Advisor, indicador de script) não é Racional, porque o servidor pode ser movido, seu endereço pode mudar dinamicamente, etc Você precisará modificar o código MQL neste caso. Assim, todos esses dados devem ser melhor armazenados no arquivo. ini padrão, enquanto apenas seu nome deve ser escrito no programa MQL. Em seguida, use a função ReadINI para ler os parâmetros de conexão e usá-los. Por exemplo, o arquivo INI contém as seguintes informações: Para obter o endereço IP do servidor, execute o seguinte: O arquivo INI está localizado em C: MetaTrader5MQL5Experts e é chamado MyConnection. ini, você acessa a chave Server da seção MYSQL. Em um arquivo INI você pode armazenar configurações para vários servidores usados ​​em seu projeto. 1.4.2. Rastreando as Áreas de Problema Na biblioteca de interface fornece o modo de rastreamento, que pode ser habilitado para depuração de consultas SQL em qualquer lugar em um programa MQL. Especifique o seguinte na área de problema: Se você habilitar rastreamento no início do programa MQL e não desativá-lo, todas as chamadas para o banco de dados serão registradas. O log é mantido no console do terminal (usando o comando Imprimir). 2. Exemplos Esta seção fornece alguns exemplos de conexão e uso das bibliotecas desenvolvidas. Veja-os e avalie a usabilidade da solução de software. O exemplo MySQL-003.mq5 mostra o seguinte: conexão a um banco de dados (os parâmetros de conexão são armazenados no arquivo. ini), criando uma tabela, inserindo dados (também usando multi-statements) e desconectando-se do banco de dados. Exemplo MySQL-004.mq5 mostra a seleção de dados de uma tabela criada pelo script MySQL-003.mq5. Os exemplos acima contêm o tratamento de erro típico usado em projetos reais. De fato, cada consulta usada em um programa MQL deve ser depurada em qualquer cliente MySQL (PHPMyAdmin, DB Ninja, console MySQL). Eu pessoalmente uso e recomendo software profissional para o desenvolvimento de banco de dados Quest TOAD para MySQL. Conclusão Este artigo não descreve os detalhes da implementação do MQLMySQL. DLL desenvolvido no ambiente Microsoft Visual Studio 2010 (CC). Esta solução de software é projetada para uso prático e tem mais de 100 implementações bem sucedidas em várias áreas de desenvolvimento de software MQL (desde a criação de sistemas complexos de negociação para publicação na web). As versões das bibliotecas para MQL4 e MQL5 estão anexadas abaixo. Os anexos também incluem um arquivo zip com o código-fonte do MQLMySQL. DLL A documentação está incluída nos arquivos Para usar os exemplos, não esqueça de especificar os parâmetros de conexão ao seu banco de dados no arquivo ScriptsMyConnection. ini. need advice re: Forex Feed de dados para o SQL Server Alguém tem experiência de alimentação de dados Forex em tempo real no SQL Server Estou tentando aprender mais sobre isso para que eu possa fazer algumas análises em SQL. Parece que muitos provedores suportam algo chamado DDE, que é uma conexão com o MSFT Excel ou fornecem uma API para acessar os dados para criar um aplicativo em C ou algo similar. Se você souber de um serviço que faz a transição em tabelas em um SQL Server que seria ideal. Uma vez que o meu forte é o SQL Server, Id não vai para a rota C, mais não está claro como vou analisar os dados, eu preciso fazer uma chamada para cada transação para as últimas horas e, em seguida, programaticamente colocar isso em tabelas SQL Então eu posso analisar Parece um monte de sobrecarga, também o DDE não soa muito melhor, parece uma abordagem dumbed para baixo e preferia apenas lidar com os dados brutos visíveis de uma só vez w pouco sobrecarga UI. Isso quase soa como um terreno de jogo de corretor de serviço. Suportei uma vez o Google Messaging com arquitetura baseada em broker de serviços. Tudo depende de conversas com o webservice. Você precisa descobrir qual é o protocolo de comunicação que você espera cumprir. Se o formato de dados é proprietário (o que eu espero que seja, já que é um sistema de negociação), você pode ter que aprender alguns C para conversar com a biblioteca decryptor através de funções CLR antes de carregar os dados nas tabelas. Como o meu forte é o SQL Server, a Id não vai para a rota C Se você quiser manter o SQL como seu quotfortequot, é melhor começar a cavar em C e em PowerShell quotOs dados em um registro dependem da Chave para o registro, , E nada, mas a chave, então me ajudar Codd. quotExecute SQL do Metatrader Ive visto um par de segredos sobre o uso de bancos de dados no Metatrader, mas eu não vi nada específico sobre a conexão com um Microsoft SQL Server. Então, eu pensei que a Id montar um tutorial rápido de como fazer isso no caso de alguém quer fazer algo semelhante. Este processo deve funcionar para qualquer fonte de dados que pode ser acessada via ADOODBCOLE DB (SQL, Access, Excel, etc.) Os seguintes fragmentos de código são um pouco técnicos e exigirão algum conhecimento básico de codificação. Para esta tarefa, eu comecei com o projeto ExpertSample amostra C em sua pasta Metatrader expertssamplesDLLSample. Eu não queria começar do zero descobrir o tipo certo de biblioteca COM para construir, então eu simplesmente usei este projeto de amostra. Uma vez que você abriu o projeto (você precisa do Visual Studio), você está pronto para usar o SQL em 4 etapas fáceis 1) Adicione uma referência às dlls do ADO do appopriate na parte superior de sua página ExpertSample. cpp, assim: import C: Program FilesCommon FilesSystemADOmsado15.dll nonamepace renomear (EOF, EndOfFile) 2) Então você está pronto para adicionar o método ExecuteScalar ao seu código. Essa função retornará apenas um valor do SQL. (Metatrader só pode receber tipos de dados básicos). MT4EXPFUNC char stdcall ExecutarScalar (char strSQL) HRESULT hr SOK Definir variáveis ​​de seqüência de caracteres. Bstrt strCnn (MYCONNECTIONSTRING) connectionstrings para obter mais informações RecordsetPtr pRstAuthors NULL Chamada Criar instância para instanciar o conjunto de registros retornar ERRO: Falha ao criar instância de conjunto de registros Abrir o conjunto de registros para obter registros da tabela Author pRstAuthors-Open (strSQL, strCnn, adOpenStatic, adLockReadOnly, AdCmdText) catch (comerror ce1) return ERROR: Não é possível abrir o SQL Server MQL e bancos de dados Alguém sabe de uma maneira de se conectar a um banco de dados do MT4 Eu imagino que precisaria ser uma DLL externa como ele não parece que há um dados Acesso laryer construído em MQL, mas não deveria ser tão difícil de montar. Mas antes de eu fazê-lo, eu me perguntei que aqui é um lá fora, já em algum lugar. O que eu tinha em mente era um tipo de conexão genérica ODBC ou OLEDB de modo que ele poderia ser usado com vários DBMSs. MQL amp Databases Sim, você precisará de uma DLL externa para fazer este trabalho para você. Se você não tem experiência com C, dê uma olhada no Powerbasic. Powerbasic pode criar arquivos DLL que podem ser usados ​​em MT4 e sua sintaxe é fácil de entender. Oi, Estou tentando seguir este tutorial sobre como se conectar ao servidor sql. No seguinte diretório - C: Arquivos de programasCommon FilesSystemADO - Eu tenho arquivos. dll serveral. Eu tenho o seguinte: Existem poucos outros, mas todos eles têm ado no título. Alguém pode me dizer qual eu devo usar Além disso, alguém pode dar um exemplo de adicionado a seqüência de conexão. E também, este exemplo é extremamente básico - na verdade, parece ser algo como um exemplo de Northwinds. Alguém tem exemplos de como obter carrapatos de MT e armazená-los em MS SQL Server Além disso, tem alguém - ou é alguém - usando com êxito MS SQL server com Metatrader Se sim, você pode rever o tutorial acima e talvez fornecer algumas adições ou melhorias . Eu vi um par de tópicos sobre o uso de bancos de dados no Metatrader, mas eu não vi nada específico sobre como se conectar a um Microsoft SQL Server. Então, eu pensei que a Id montar um tutorial rápido de como fazer isso no caso de alguém quer fazer algo semelhante. Este processo deve funcionar para qualquer fonte de dados que pode ser acessada via ADOODBCOLE DB (SQL, Access, Excel, etc.) Os seguintes fragmentos de código são um pouco técnicos e exigirão algum conhecimento básico de codificação. Para esta tarefa, eu comecei com o projeto ExpertSample amostra C em sua pasta Metatrader expertssamplesDLLSample. Eu não queria começar do zero descobrir o tipo certo de biblioteca COM para construir, então eu simplesmente usei este projeto de amostra. Uma vez que você abriu o projeto (você precisa do Visual Studio), você está pronto para usar o SQL em 4 etapas fáceis 1) Adicione uma referência às dlls do ADO do appopriate na parte superior de sua página ExpertSample. cpp, assim: import C: Program FilesCommon FilesSystemADOmsado15.dll nonamepace renomear (EOF, EndOfFile) 2) Então você está pronto para adicionar o método ExecuteScalar ao seu código. Essa função retornará apenas um valor do SQL. (Metatrader só pode receber tipos de dados básicos). MT4EXPFUNC char stdcall ExecutarScalar (char strSQL) HRESULT hr SOK Definir variáveis ​​de seqüência de caracteres. Bstrt strCnn (MYCONNECTIONSTRING) connectionstrings para obter mais informações RecordsetPtr pRstAuthors NULL Chamada Criar instância para instanciar o conjunto de registros retornar ERRO: Falha ao criar instância de conjunto de registros Abrir o conjunto de registros para obter registros da tabela Author pRstAuthors-Open (strSQL, strCnn, adOpenStatic, adLockReadOnly, 4) Depois de adicionar a DLL compilada à pasta expertslibraries, você pode chamar seu método DLL adicionando o seguinte ao topo de seu arquivo MQ4: string ExecuteScalar (seqüência de caracteres) StrSQL) That's you Você está pronto para começar a fazer chamadas de banco de dados diretamente do Metatrader. Estou usando isso agora para brincar com algumas instruções SELECTINSERT no meu SQL Server, tentando brincar com alguma lógica de ordenação avançada. Meu próximo objetivo: usar Sockets do Metatrader para se comunicar com um aplicativo externo, de preferência escrito em C. Consegui seguir seus passos usando o visual studio 2008, mas ao compilar o código eu tenho o seguinte erro: 1 ------ Build started : Projeto: ExpertSample, Configuração: Debug Win32 ------ 1d: studioexpertsampleexpertsampleexpertsamplesrc. cpp (221). Warning C4996: strcat: Esta função ou variável pode ser inseguro. Considere usar strcats em vez disso. Para desativar deprecação, use CRTSECURENOWARNINGS. Consulte a ajuda on-line para obter detalhes. 1 c: programa filesmicrosoft visual studio 9.0vcincludestring. h (79). Ver declaração de strcat 1d: studioexpertsampleexpertsampleexpertsamplesrc. cpp (235). Erro C2065: MYCONNECTIONSTRING. Identificador não declarado 1d: studioexpertsampleexpertsampleexpertsamplesrc. cpp (287). Aviso C4172: retornando o endereço da variável local ou temporário 1Build log foi salvo no arquivo: d: StudioExpertSampleExpertSampleDebugBuildLog. htm 1ExpertSample - 1 erro (s), 2 aviso (s) Build: 0 sucedido, 1 falhou, 0 atualizado, 0 ignorado Parece que ele não reconhece o MYCONNECTIONSTRING. Eu compilei o ExpertSample. cpp original antes de adicionar suas atualizações e funcionou muito bem gerando a DLL. Você pode por favor ajudar. Obrigado antecipadamente, Como criar Forex tick banco de dados histórico em MYSQL livre para Windows, Linux ou Apple Mac OSX Como criar Forex tick banco de dados histórico em MYSQL livre para Windows, Linux ou Apple Mac OSX Tenho construído com êxito um histórico tick base de dados Para forex. Ele contém cerca de 300 milhões de registros de milissegundos. Eu fiz tudo isso está usando MYSQL, uma vez que pode ser facilmente portado para Linux a partir do Windows se eu precisar. Oracle é muito caro como MYSQL é livre. Além disso, o Microsoft SQL Server é bastante rápido, mas é baseado apenas no Windows. Eu no entanto ver algum atraso usando o Windows, então eu tenho que lembrar este problema para a implementação futura, possivelmente. Este banco de dados também inclui 14 principais pares de moedas, bem como para o histórico de carrapatos também. O período de dados de carrapatos forex é da primavera de 2009 até o outono de 2011. Eu também carreguei meus dados de forex de arquivos de valores separados por vírgulas (CSV). Eu criei um programa C para carregar o banco de dados em MYSQL. Por fim, eu criei um arquivo SQL de MYSQLDUMP que permite que você crie seu banco de dados e tabela e, em seguida, preencher a tabela com dados de carrapato forex. Eu estarei postando todos esses recursos em breve em uma área de download Membership que você será obrigado a participar se você quiser acesso a esses recursos. Junte-se aqui quando eu anunciar os recursos estão prontos para download. OBSERVAÇÃO Agora postei meus ALERTOS DE NEGOCIAÇÃO em minha CONTA FACEBOOK pessoal e TWITTER. Não se preocupe como eu não publicar vídeos de gato estúpido ou o que eu comer Compartilhar este:

No comments:

Post a Comment