Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1188

 
odyn:

Explique, por favor.

A funçãoOnTradeTransaction.

Tem de ser no Consultor Especialista?

Se não, em que casos deve ser incluído no código? E porquê?

Apenas OnInit() e OnTick() são obrigatórios, o resto fica ao critério do autor do código. A razão para tal está claramente descrita na documentação da língua.

O motor do fórum colocou um link para o nome da função, clique sobre ele e leia-o.
 
Alexey Viktorov:

Apenas OnInit() e OnTick() são obrigatórios, o resto fica ao critério do autor do código. Porque é que está claramente descrito na documentação da língua.

O motor do fórum colocou um link para o nome da função, para que o possamos ler.

Só faço uma pergunta quando não consigo compreender a explicação na documentação, artigos e fórum.

Se fosse "claramente descrito", eu não perguntaria.

A função é concebida para lidar com os resultados de um pedido comercial. Esta função não devolve nada.

A função não é necessária para o efeito.

Então, a função é necessária quando o Expert Advisor recebe os resultados do processamento dos pedidos do servidor? Mas será que nenhum consultor especializado os envia? Então, a função deve ser sempre inserida no Expert Advisor?

 

Olá! Pergunta para utilizadores experientes!

A MQL5 tem OBJ_CHART.

Aconselhar como utilizar indicadores, em particular MA, em OBJ_CHART, e se é possível?

 
odyn:

Só faço uma pergunta quando não consigo compreender a explicação na documentação, nos artigos e no fórum.

Se fosse "claramente descrito", eu não perguntaria.

A função é concebida para processar os resultados de um pedido comercial. Esta função não devolve nada.

A função não é necessária para o efeito.

Então, a função é necessária quando o Expert Advisor recebe os resultados do processamento dos pedidos do servidor? Mas será que nenhum consultor especializado os envia? Então, a função deve ser sempre inserida no Expert Advisor?

Alguns programadores estão presos a esses exemplos que dominaram em mql4 e não conseguem fugir deles. A OnTradeTransaction() é como a cauda de um cão para tais programadores. Mas se quiser, por exemplo, detectar facilmente um evento quando uma ordem pendente é activada, não pode ser feito mais facilmente do que na OnTradeTransaction(). Se precisar de tomar alguma decisão e executar algumas acções no momento do encerramento da posição, vai achar tão fácil como a OnTradeTransaction(). E se for necessário realizar algumas acções ao fechar por TP, e outras acções ao fechar por SL, não pode ser mais fácil do que na OnTradeTransaction().

Mas¡¡¡¡ agora, aqueles de quem mencionei virão e começarão a especular sobre quantos milissegundos há aqui e ali... No fim de contas, é o amador que decide. Se estiver interessado, execute-o e veja o que pode obter na OnTradeTransaction() e pense como pode utilizá-lo por si próprio.

 

Diga-me, se eu precisar de abrir dois negócios ao mesmo tempo, mas verifique se existe um erro ao abrir um deles, como é que eu apanho o erro?

Existe alguma função que devolva a capacidade de abrir uma transacção sobre um activo?

 
Alexey Viktorov:


Obrigado pela resposta!

 

Não consigo abrir o ficheiro no testador. Recebo erro 5004.

int               m_file_handle;
short             m_delimiter;

m_delimiter='\t';
m_file_handle=FileOpen(m_filename,FILE_READ|FILE_CSV,m_delimiter);
if(m_file_handle==INVALID_HANDLE)
  {
   Print(__FUNCTION__+": file open failed. Error: ",GetLastError());
   return false;
  }

É um ficheiro csv normal com tabulação como separador. Coloquei-o na pasta MQL5\Files do agente. Depois de tentar abrir o ficheiro, este desaparece.

 
leonerd:

Não consigo abrir o ficheiro no testador. Recebo erro 5004.

É um ficheiro csv normal com tabulação como separador. Coloquei-o na pasta MQL5\Files do agente. O ficheiro desaparece depois de tentar abri-lo.

ok, sem o # ficheiro do testador de propriedade_ aparentemente não funciona.

 
Roman Sharanov:

Diga-me, se eu precisar de abrir dois negócios ao mesmo tempo, mas verifique se existe um erro ao abrir um deles, como é que eu apanho o erro?

Existe alguma função que devolva a possibilidade de abrir um negócio sobre um activo?

Use OnTradeTransaction().

 

Sugerir um análogo da função MQL4 MarketInfo(asymbol, MODE_MARGIN_REQUIRED) em MQL5.

Preciso de obtera quantidade de fundos grátis necessária para abrir 1 lote para comprar.

Experimentei diferentes variantes da função SymbolInfoDouble(símbolo, ...) na MQL5, não consigo encontrar a variante certa, ela retorna 0 em todo o lado.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out...