Erros, bugs, perguntas - página 2404

 
Ilya Malev:

Então deixe-o funcionar, quem o está a impedir? Não funciona da mesma forma que o MT4, por isso cabe-lhe a si alterar este comportamento durante 90% do tempo, ou durante os restantes 10%.

À espera de um exemplo de como utilizar este comportamento?

 
Ilya Malev:

Precisa de um conselheiro para escrever um? Penso que o pode fazer você mesmo, tal como eu.

Menciona frequentemente SELECT_BY_TICKET mas não lhe dá qualquer uso prático.

Eu próprio não utilizo esta construção. Além disso, penso que a sua utilização em MT4 é perigosa.

Ilya Malev:

Em 90% dos casos, não é SELECT_BY_TICKET na história, mas está a trabalhar com encomendas como com entidades indivisíveis. O encerramento ou abertura parcial é uma raridade para a maioria dos corretores forex. Normalmente, ou fecham/abrem completamente a encomenda ou dão um orçamento

MT5 é também uma plataforma de troca onde parcial não é de todo invulgar. Além disso, houve um exemplo acima em que o utilizador fecha parcialmente a sua posição. É uma prática perfeitamente normal quando, por exemplo, o comerciante fecha uma posição em partes a diferentes níveis de preços.
 
fxsaber:

Menciona frequentemente SELECT_BY_TICKET, mas não dá qualquer aplicação prática.

Eu próprio não utilizo esta construção. Além disso, penso que a sua utilização em MT4 é perigosa.

Talvez tenha razão, mas esta é uma parte da funcionalidade que não funciona na sua biblioteca da mesma forma que funciona no MT4. Na verdade, apontei para este facto sem qualquer intenção de o comentar.

 
Ilya Malev:

Pode estar certo, mas esta é uma parte da funcionalidade que funciona de forma diferente na sua biblioteca do que no MT4. Na verdade, salientei este facto sem qualquer intenção de o comentar.

É especificamente mencionado na discussão da biblioteca. São dados exemplos e argumentos relevantes para o facto de que mesmo no MT4 utilizar o SELECT_BY_TICKET é uma má lógica comercial.

 
Ilya Malev:

Se acha que este modo não deve ser usado, então faça-o como se estivesse no MT4 e não recomende a sua utilização.

Este modo pode ser útil em certas situações.

Só por precaução - o comportamento do servidor durante o fecho parcial no MT4 foi diferente para diferentes corretores e não é garantido que seja a forma como o descreveu

Pode tentar procurar um lugar onde, num encerramento parcial em MT4, a posição não irá alterar o bilhete. O código acima foi dado.

 
Ilya Malev:

1. Talvez deva pedir-lhe que dê um exemplo agora (mas não neste fio, já está desordenado)

Vimos uma posição fechada na história do terminal. Precisamos de obter rapidamente os seus dados - escrevemos um bilhete no guião e pronto.

Ou precisamos de ordenar o histórico comercial à nossa própria maneira. Classificar os bilhetes e seleccionar.

2. Na verdade não me interessa, se muda o bilhete no encerramento parcial ou não, porque não tem qualquer efeito na selecção da encomenda dentro do bilhete quando o encerramento parcial não é utilizado. E quando é utilizado, é necessário ou assistir ao comentário (MT4), ou seleccionar negócios por número de posição (MT5).

Tudo é seleccionável por bilhete. É só que o bilhete de posição muda quando se fecha. Esta é a única diferença em relação ao MT4.

 
Ilya Malev:

Assim, deve fazer uma função adicional que permita descobrir o número de bilhete alterado em relação ao número antigo, em vez de insistir que a funcionalidade SELECT_BY_TICKET que existia no MT4 estava "errada". Embora isso seja da sua conta, é claro.

Existe um MT5-funcional que os codificadores podem precisar, mas é difícil de implementar. E há o que é fácil de implementar mas pouco necessário.

Faz sentido fazer algo apenas no primeiro caso. Por exemplo, OrderOpenPriceRequest é uma coisa super, porque é elementar calcular o escorregamento na abertura.

Mas OrderTicketOld é uma coisa muito simples (POSITION_ID) e sobre nada. Aqui está o bilhete de abertura do negócio - a coisa é difícil de implementar, é por isso que é feito.

 
Ilya Malev:

Tem um requisito na parte das bibliotecas que o Expert Advisor deve ser escrito "no estilo MT4". Com base neste requisito, é razoável implementar uma função que se enquadre exactamente neste estilo, permitindo-lhe escrever código tão bem quanto possível no MT4.

Ainda não mostrou uma EA que não funcionasse.

 
Inundação
 
fxsaber:

O encerramento parcial não é necessariamente um preenchimento parcial no lado do servidor.

Então, como seleccionar 0,2 lotes fechados em tal situação no MT5?

Não faço ideia em MT5, mas em MT4 estava à procura de uma oportunidade para fazer um encerramento parcial de uma encomenda e encontrar um novo bilhete mas sem utilizar o campo OrderComment()

tudo funciona em geral como no MT4:

- seleccionar uma ordem na lista de ordens do mercado e obter um bilhete

- pedimos OrderClose() - ficamos verdadeiros

- o antigo bilhete entrou na história das encomendas e apareceu um novo bilhete de mercado; se a encomenda foi fechada completamente (não parcialmente), não aparecerá um novo bilhete

O tema do encerramento parcial no MT4 é suficientemente interessante, perguntei, mas infelizmente, todo o Guru enviou para procurar a felicidade no OrderComment() - não gosto, mas aparentemente as pessoas não o retiram, um tema com discussão de um algoritmo eficaz para o MT4 primeiro, eu teria participado


SZY: Não consigo encontrar o código fonte, não gosto da implementação - guardei bilhetes de ordens de mercado numa matriz e imediatamente após um fecho parcial utilizei o ArrayBsearch() para encontrar uma ordem em falta na matriz, ou seja, um novo bilhete