Ajuda para iniciante nessa linguagem

 

Olá,

Ainda não estou familiarizado com a linguagem. Então queria pedir a cooperação de vocês para alguma dúvidas básicas que ainda não encontrei solução pela documentação do próprio site.

 

Vamos lá.

1. Quais são as funções que uso para disparo da compra/venda do papel no valor atual?

No meu caso é compra/venda de contratos por se tratar de mercado futuro.

 

2. Como declarar o valor de uma variável como sendo a máxima ou a mínima de um candle?

 Nessa situação o candle é escolhido pelo período do próprio gráfico em função do tempo. Ex.: Primeiro Candle [9:00] no período de 5 min.

 

3. É correto declarar a abertura do candle atual como sendo open[]?

 

Acredito serem dúvidas básicas mas como comentei, estou iniciando nessa linguagem.

Agradeço quem puder ajudar.

 
yurifontoura:

Olá,

Ainda não estou familiarizado com a linguagem. Então queria pedir a cooperação de vocês para alguma dúvidas básicas que ainda não encontrei solução pela documentação do próprio site.

 

Vamos lá.

1. Quais são as funções que uso para disparo da compra/venda do papel no valor atual?

No meu caso é compra/venda de contratos por se tratar de mercado futuro.

 

2. Como declarar o valor de uma variável como sendo a máxima ou a mínima de um candle?

 Nessa situação o candle é escolhido pelo período do próprio gráfico em função do tempo. Ex.: Primeiro Candle [9:00] no período de 5 min.

 

3. É correto declarar a abertura do candle atual como sendo open[]?

 

Acredito serem dúvidas básicas mas como comentei, estou iniciando nessa linguagem.

Agradeço quem puder ajudar.

Boa noite!

Você já deu uma "olhada" na classe CTrade. Ela simplifica bastante os procedimentos para lidar com os vários tipos de ordens. Segue o link para consulta: https://www.mql5.com/pt/docs/standardlibrary/tradeclasses/ctrade

Para utilizar essa classe, no topo do seu programa, loga abaixo das diretivas #property, você deve incluir o comando #include <Trade\Trade.mqh>. Depois é declarar uma variável para ser utilizada com a classe CTrade. Por exemplo, na seção de variáveis globais do seu programa, você deve declarar Ctrade mytrade.

Feito isso, na parte do código onde você deseja enviar uma ordem, você deve usar o comando mytrade.Buy(volume, _Symbol, price, sl, tp, comment) ou mytrade.Sell(volume, price, sl,tp, comment), sendo que os argumentos dessas funções são:

Volume -> volume que deseja negociar;

_Symbol -> para utilizar o símbolo do gráfico corrente (gráfico no qual o EA está inserido);

price -> preço de compra, se deixar igual a zero será o utilizado o último preço Ask/Bid (compra/venda a preço de mercado);

sl -> perda máxima (Stop Loss) (se deixar igual a zero desabilita o stop loss);

tp -> ganho desejado (Take Profit) (se deixar igual a zero desabilita o Take profit).

Para pegar a máxima/mínima de um determinado candle, você pode utilizar o seguinte função:

CopyRates(_Symbol,_Period,start_position,count,myrates_array), em que os argumentos da função são:

_Symbol -> para utilizar o símbolo do gráfico corrente;

_Period -> para para utilizar o tempo (timeframe) do gráfico corrente;

start_position -> variável inteira para a posição em que você deseja copiar as cotações do ativo;

count -> variável inteira para a quantidade de cotações que você deseja copiar;

myrates_array -> vetor do tipo MqlRates onde serão armazenadas as cotações do ativo.

Depois, você deve usar a função ArraySetAsSeries(myrates_array,true), para deixar a variável myrates_array na forma de uma série temporal (timeseries).

Finalmente, você poderá ter acesso aos valores dos candles da seguinte forma:

myrates_array[i.open -> preço de abertura ;

myrates_array[i].close -> preço de fechamento ;

myrates_array[i].high -> preço máximo;

myrates_array[i].low -> preço mínimo.

Se, por exemplo desejar obter os valores do candle atual, utilizar i = 0. Para o último candle i = 1. Para o penúltimo i = 2 e assim sucessivamente.

Espero ter ajudado.

Documentação sobre MQL5: Biblioteca Padrão / Classes de negociação / CTrade
Documentação sobre MQL5: Biblioteca Padrão / Classes de negociação / CTrade
  • www.mql5.com
Biblioteca Padrão / Classes de negociação / CTrade - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 
yurifontoura:

Olá,

Ainda não estou familiarizado com a linguagem. Então queria pedir a cooperação de vocês para alguma dúvidas básicas que ainda não encontrei solução pela documentação do próprio site.

Acredito serem dúvidas básicas mas como comentei, estou iniciando nessa linguagem.

Agradeço quem puder ajudar.

Olá yurifontoura ,

Recomendo que você dê uma olhada nesse artigo básico: https://www.mql5.com/pt/articles/116

Abraços,

Malacarne 

Escrevendo um Expert Advisor utilizando a abordagem de programação orientada a objeto do MQL5
Escrevendo um Expert Advisor utilizando a abordagem de programação orientada a objeto do MQL5
  • 2014.01.24
  • Samuel Olowoyo
  • www.mql5.com
Este artigo foca na abordagem orientada a objeto para fazer o que fizemos no artigo "Guia passo a passo para escrever um Expert Advisor no MQL5 para iniciantes" - criando um simples Expert Advisor. A maior parte das pessoas acha que isso é difícil, mas quero assegurá-lo que quando você terminar de ler esse artigo, você será capaz de escrever o seu próprio consultor especialista que é baseado em orientação a objeto.