Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Publicado por:
- Michael Schoen
- Visualizações:
- 3237
- Avaliação:
- 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

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.

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.

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

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