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

 
Igor Makanu:

em alternativa, abrirhttps://www.mql5.com/ru/code/16006

e veja a implementação de@fxsaber

ou simplesmente ligar a biblioteca acima e transferir o código de MT4 para MT5, em 99% dos casos não terá de afinar nada, tudo funcionará da mesma forma que em MT4

E não desperdice o conhecimento...
 
Artyom Trishkin:
E que os conhecimentos não se somem...

conhecimento? isso não é conhecimento de que se precise para desenvolver um TS ou um comerciante!

Não escreve um driver para si próprio para controlar o seu disco rígido --> API --> o seu programa, pois não? Basta utilizar as capacidades da plataforma e linguagem de programação e nada mais - em 2 cliques (um par de linhas) obtém

É um facto que a MQL5 tem uma forma muito enfadonha e aborrecida de lidar com as encomendas,

não tenho ideia de como abrir uma ordem, como verificar o seu estado, como saber o preço e o tempo de fecho (sei sobre o CTrade, abri parcialmente o código fonte) - são coisas elementares que uma plataforma de negociação deve fazer em 2 cliques e não deve causar quaisquer problemas.

SZZY: passaram 5 anos desde que a MQL5 adicionou iTime(), IClose() .... que é o seguimento, uma plataforma de negociação que não pode aceder ao histórico do instrumento nem colocar ordens em 2 cliques, no primeiro ano toda a kodobase foi inundada com "implementações milagrosas" de como ler o histórico de um instrumento de negociação em 2 cliques.... OK, é um tópico hackneyed.

 
Igor Makanu:

conhecimento? não é conhecimento necessário para desenvolver um TS ou para um comerciante!

Exactamente correcto. Não precisa deste conhecimento para desenvolver uma estratégia ou como comerciante. Da mesma forma, o conhecimento do mql4 não é necessário.

É disso que o programador precisa. E apenas se quiser compreender o que está a fazer e puder verificar o resultado obtido em relação ao esperado.

Não há muito tempo tive de editar a EA de outra pessoa: de acordo com os TDR, uma posição deveria ser fechada no Breakeven num determinado momento. De facto, o Conselheiro Especialista abriu uma posição, fechou-a imediatamente e estabeleceu uma nova, que fechou de acordo com as regras.

Depois de ter assistido a esta confusão durante algumas horas, sugeri que escrevesse o meu Conselheiro Especialista a partir do zero. Não foi o seu Conselheiro Especialista?

 
Alexey Viktorov:

Depois de observar esta confusão durante algumas horas, sugeri que escrevesse o meu Conselheiro Especialista a partir do zero. Não era o seu Conselheiro Especialista?

Definitivamente meu! ))))) - Mantenho os meus códigos durante pelo menos um mês, mas normalmente tudo funciona bem na primeira vez, embora possa haver algumas discrepâncias nos ToR, mas isto não é uma submissão, é um trabalho em progresso. Edito frequentemente o código de outras pessoas, mas essa é uma história à parte, consome muito tempo e o resultado é desconhecido - basta avisar-me sobre isto

Se a programação de baixo nível fascina, por assim dizer "para cavar intestino delgado" - vá em frente, existe uma biblioteca padrão CTrade dos programadores, ela deve fazer o mínimo necessário para o utilizador

 
Igor Makanu:

Definitivamente meu! ))))) - Mantenho os meus códigos durante pelo menos um mês, mas normalmente tudo funciona bem na primeira vez, embora possa haver algumas discrepâncias nos ToR, mas isto não é uma submissão, é um trabalho em progresso. Edito frequentemente o código de outras pessoas, mas essa é uma história à parte, consome muito tempo e o resultado é desconhecido - basta avisar-me sobre isto

Se a programação de baixo nível fascina, por assim dizer "para cavar intestino delgado" - vá em frente, existe uma biblioteca padrão CTrade dos programadores, ela deve fazer o mínimo necessário para o utilizador

O proprietário deste código milagroso, bem como o seu autor, não sabiam da subtileza de que a posição é aberta e depois fechada. É por isso que não há reclamações.

Em geral, estou de acordo consigo. Alguns criadores não apanham de todo os ratos. Depois criam deliberadamente insectos, de acordo com declarações de um personagem, ele é torturado para apanhar estes insectos. Agora não vão fazer um único comando como "cortar o dinheiro". Não é necessário conhecer nenhuma programação. "Não é assunto do rei mexer com ***. Vou encomendar e ***" é o que parece.

 
Alexey Viktorov: O proprietário deste código milagroso, bem como o seu autor, não estavam cientes da subtileza de que a posição é aberta e depois fechada. Estou de acordo consigo. Eles não apanham ratos de todo. Eles criarão bugs deliberadamente, mas estão cansados de os apanhar como uma personagem o colocou. Agora não vão fazer um único comando como "cortar o dinheiro". Não é necessário conhecer nenhuma programação. "Não é assunto do rei mexer com ***. Vou encomendar e ***" é o que parece.

Tanto quanto sei, estamos a falar de algum código na MQL5 ? - Não escrevi nenhum código público nessa língua, apenas utilizo soluções prontas.

Bem, sobre o seu desempenho - todas as línguas são sempre "actualizadas" com bibliotecas, os programadores das bibliotecas são frequentemente simples programadores-utilizadores, mas isto não impede que estas bibliotecas sejam populares e feitas com uma qualidade muito elevada, se conseguir sair da caixa de areia MQL - tenha um passeio no GitHub, sempre encontrei bibliotecas prontas para o C# que poupam tempo para o desenvolvimento

 
Vladimir Karputov:

Não há analogia directa. Uma posição consiste em ofícios. Se quiser dados precisos da posição, deve primeiro construir a posição de volta a partir do histórico comercial.

Por conseguinte, é melhor trabalhar com o conceito de "acordo".

Geralmente, a implementação depende muito da resposta à pergunta: "Porquê?". Ou seja, descreva primeiro exactamente o que pretende e porquê.

Para obter o lucro do negócio em pips. Em MT4 foi feito desta forma:

( OrderClosePrice() - OrderOpenPrice() )/Point;
 
secret:

Obter o lucro do comércio em pips. Em MT4 foi feito desta forma:

Não se pode ter lucro com uma troca. Uma troca pode ser:

ENUM_DEAL_TYPE-Tipo de comércio

ENUM_DEAL_TYPE

Identificador

Descrição

DEAL_TYPE_BUY

Comprar

DEAL_TYPE_SELLVenda

***


É necessário obter informações sobre uma posição fechada (uma posição completa consiste em pelo menos duas transacções: entrada e saída). Para o fazer:

  • montar a posição a partir do histórico comercial e verificar a sua integridade (lembro que a posição pode ser montada a partir dos ofícios) - utilizar a propriedade DEAL_POSITION_ID dos ofícios.
A palavra de controlo aqui é "Recolher posição do histórico comercial e verificar a sua integralidade".
 
Vladimir Karputov:

Estou a ver. Obrigado) Terminologia muito estranha em MT5.

Pergunto-me porque é que os criadores não fizeram propriedades de posição prontas na história. Fizeram-no em MT4.

 
secret:

Estou a ver. Obrigado) Terminologia muito estranha em MT5.

Pergunto-me porque é que os criadores não fizeram propriedades de posição prontas na história. Fizeram-no em MT4.

É muito bom que o tenham feito. Há acesso a toda a história de qualquer mudança de posição. Em 4 tudo é empilhado numa ordem. E um mandado é apenas uma ordem de execução. Em cinco, por outro lado, é uma posição de ordem.
Razão: