Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

EAX_Mysql - MySQL library - biblioteca para MetaTrader 5

Publicado por:
Michael Schoen
Visualizações:
3044
Avaliação:
(40)
Publicado:
2014.01.15 09:03
Atualizado:
2016.11.22 07:33
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Acidentalmente eu corri para o MQL5 e fui forçado a retirar uma biblioteca MySQL.

Como para toda a biblioteca espero que os exemplos mostrem como ela pode ser usada. Como para qualquer biblioteca realmente as coisas mais importantes são exemplos de como usá-la ;)

Exemplos:

Leitura de dados

#include <EAX\EAX_Mysql.mqh>

EAX_mysql *db = new EAX_Mysql();

db.connect("meuhost.meudominio.com", "meunomeusuario", "minhasenha", "minhabasedados", "minhatabela")

int iResults = db.read_rows("SELECIONE SENHA, Acesso a CONTA(*) pelos usuários no GRUPO ATRAVÉS senha");
for (int i=0; i < iResults; i++) {
   string password = (string) db.get("senha",i);
   int    hits     = (int) db.get("Acesso", i);
}

Dados de Alimentação

#include <EAX\EAX_Mysql.mqh>

// global
EAX_mysql *db = new EAX_Mysql();

void OnInit() {
    db.connect("meuhost.meudominio.com", "meunomeusuario", "minhasenha", "metatrader", "Ticks";
}

void OnTick() {
    MqlTick tick;
    SymbolInfoTick(_Symbol,tick);
    // Adicione uma nova configuração de dados para ticks da tabela
    db.AddNew("Ticks");
    // preenchê-lo com valores..
    db.set("symbol", _Symbol);
    // Você pode enviar dígitos para campos DB de dígitos se o MySQL puder converter
    db.set("ask", tick.ask);
    db.set("bid", tick.bid);
    db.set("last", tick.last);
    db.set("time", TimeToString(tick.time,TIME_DATE) + " " + TimeToString(tick.time,TIME_SECONDS));
    db.set("volume", tick.volume);
    db.write();

}

void OnDeinit() {
   // limpar memória acima
   delete db;
}

Interagindo com dados

EAX_mysql *db = new EAX_Mysql();

db.connect("meuhost.meudominio.com", "meunomeusuario", "minhasenha", "metatrader", "minhatabela")

// Selecionar Tabela AgentsOnline (necessário para identificar a Chave Primária correta)
db.select("AgentsOnline");
// Ler dados configurados com chave primária 5
db.read("5");
// modificar qualquer coluna,
db.set("lastupdate", (string) TimeLocal());
// escrevê-lo de volta
db.write();

Instalando:

  • Identifique o seu diretório de dados MQL5 (MQL5).
  • Baixar Connector/C (libmysql) para o seu ambiente (32 ou 64 bits) e coloque o arquivo libymsql.dll na "MQL5\Libraries".
  • Criar uma pasta EAX para Include.
  • Colocar EAX_Mysql.mqh em "MQL5\Include\EAX".

Questões:

  • Como ele usa internamente uma conexão ponteiro compartilhada da biblioteca não pode lidar com mais de uma conexão DB de cada vez (eu não tinha necessidade de adicionar/migrar um pool de conexão).
  • nenhum erro real (mysql), caindo a conexão db.
  • nenhum erro de manipulação/reconexão com a DB (=> db pooling).
  • não há suporte para múltiplas colunas das chaves primárias.
  • beta - por favor, mande-me um e-mail se você quiser beta/teste.
  • DataTypes não são tratados (internamente apenas strings) devem estar em código/banco de dados.
  • Comunicação do banco de dados é ISO - com preguiça de ajustar a aritmética de ponteiro/string para UTF-8.

Créditos:

  • http://mqlmagazine.com/mql-programming/mql5-connecting-to-mysql/
  • https://www.mql5.com/en/articles/364

Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/855

DaysOfWeekCheck DaysOfWeekCheck

Esta função é usada para determinar os fins de semana de um servidor. Ele será especialmente útil para aqueles que usam a função OnTimer() em seu Expert Advisors para o tratamento de eventos.

OpenBuyPosition OpenBuyPosition

Este script foi desenvolvido para abrir posições de compra com valores fixos de Stop Loss e Take Profit em pontos de acordo com o preço atual.

ExtObjects ExtObjects

Funções dedicadas a ler e escrever as propriedades dos objetos.

Momentum Color Fill Momentum Color Fill

O indicador técnico Momentum mede a variação de preço de um instrumento financeiro em determinado intervalo de tempo.