Discussão do artigo "Biblioteca para o desenvolvimento fácil e rápido de programas para a MetaTrader (parte IV): eventos de negociação" - página 2

 
BmC:

Artem, antes de mais nada. Antes de mais nada. Gostaria de dizer muito obrigado pela série de artigos e pela biblioteca. Entendi tudo sobre OOP lendo seus artigos! Seus artigos realmente ensinam e ajudam aqueles que precisam, eles me ajudaram. Seu uso de algoritmos diferentes nos mesmos lugares em que você poderia simplesmente se repetir também é muito bem-sucedido.

Agora, se eu puder ir direto ao ponto: ::GetListByTime - nesse método, você seleciona as ordens por intervalo de tempo para passar a lista para o programa de chamada; na Parte 3, você escreve isso:

...

Obrigado pelo feedback.

Definitivamente, você deve chamar o método Sort() antes de cada pesquisa de uma propriedade. Os métodos Sort são especificados nas listas de critérios possíveis para classificar objetos em Defines.mqh. E eles devem ser especificados ao chamar o método Sort(), caso você precise classificar por um dos vários tipos de classificação. No construtor da classe, apenas o tipo de classificação padrão é definido, mas ao pesquisar uma propriedade, essa propriedade deve ser especificada no método Sort(THIS_THERE_NEW_SORTING_THYPE_SORTING), para que a lista seja classificada exatamente pela propriedade especificada.

PS. O código é inserido usando Alt+S no editor de mensagens:


 
Artyom Trishkin:

Obrigado pelo feedback.

O método Sort() deve ser chamado antes de cada pesquisa de uma propriedade. Os métodos de classificação são especificados nas listas de critérios possíveis para classificar objetos em Defines.mqh. E eles devem ser especificados ao chamar o método Sort(), caso você precise classificar por um dos vários tipos de classificação. No construtor da classe, apenas o tipo de classificação padrão é definido, mas ao pesquisar uma propriedade, essa propriedade deve ser especificada no método Sort(THIS_THERE_NEW_SORTING_THYPE), para que a lista seja classificada exatamente pela propriedade especificada.

PS. O código é inserido usando Alt+S no editor de mensagens:


OBRIGADO.

Você percebeu que eu me esforcei muito para transpor o código.)))))

 
BmC:

OBRIGADO.

Você percebeu que eu me esforcei muito para transferir o código. )))))

Sim :)

 

Olá, Deus!

Você poderia me dizer: como a EA encontra a maior perda de um total de 88 ordens em uma lista de ordens de várias espécies. Ou seja, a ordem com o menor lucro. E retornar o número da ordem? Aguardo ansiosamente seu conselho! Muito obrigado! WeChat.QQ: 1041327590. Telefone celular: 13276899818

 
wts130196910 :

Olá, Deus!

Você poderia me dizer: como o EA descobre a maior perda de um total de 88 ordens em uma lista de ordens de várias espécies. Ou seja, a ordem com o menor lucro. E retorna o número da ordem? Aguardo ansiosamente sua orientação! Muito obrigado! WeChat.QQ: 1041327590. Telefone celular: 13276899818

Como você está tentando fazer isso sozinho com uma biblioteca? Mostre seu código.

Как вы сами это пытаетесь сделать с помощью библиотеки? Покажите ваш код пожалуйста.

 
Parece que ao ajustar o preço de uma ordem de parada (BUY STOP) em conexão com StopLevel, ele também recalcula SL/TP e os define para a distância mínima.... Para Buy Stop no preço atual, que não satisfaz StopLevel, depois de recalcular o preço da ordem, ele recalculou SL para a mesma distância da solicitação inicial..... Ou seja, o nível de preço da parada de compra foi definido mais alto e o nível do SL foi definido mais alto. É possível ativar de alguma forma o modo que corrige o preço de abertura, mas não mexe nos stops originais. Só toque nos stops se o valor inicial deles não satisfizer StopLimit/Freezelevel.
 
coloca-os em uma distância mínima
não em uma distância mínima, mas na distância do pedido original.
 
leonerd:
Parece que, ao ajustar o preço de uma ordem de parada (BUY STOP) em conexão com StopLevel, ele também recalcula SL/TP e os define para a distância mínima.... Para Buy Stop no preço atual, que não satisfaz StopLevel, depois de recalcular o preço da ordem, ele recalculou SL para a mesma distância da solicitação inicial..... Ou seja, o nível de preço da parada de compra foi definido mais alto e o nível do SL foi definido mais alto. É possível ativar de alguma forma o modo que corrige o preço de abertura, mas não mexe nos stops originais. Somente toque nos stops se o valor inicial não satisfizer StopLimit/Freezelevel.
A biblioteca tenta definir a ordem e seus níveis de stop. É melhor monitorar os níveis de stop e ajustá-los após a definição bem-sucedida. Como há muitas necessidades diferentes, é impossível levar todas elas em consideração. Além disso, o nível de configuração pode ser ajustado posteriormente.
 
Artyom Trishkin:
A biblioteca tenta colocar a ordem e seus níveis de parada. É melhor monitorar os níveis de parada e ajustá-los depois que forem definidos com sucesso. Como há muitas necessidades diferentes, é impossível levar todas elas em consideração. Além disso, o nível de configuração pode ser ajustado posteriormente.

Sim, estou entendendo. Seria bom adicionar um sinalizador de ajuste. Assim, o sinalizador poderia ser definido para corrigir em conexão com StopLevel ou não. Não quero alterar o código, pois assim tudo se perderá durante a atualização. Obrigado.

 
leonerd:

Sim, estou vendo. Seria bom adicionar um sinalizador de ajuste. Assim, o sinalizador poderia ser definido como correto em relação ao StopLevel ou não. Não quero alterar o código, pois assim tudo se perderá durante a atualização. Obrigado.

Você deve escrever a lógica em seu programa, não alterar o código da biblioteca. No entanto, vou pensar sobre a proposta. Mas dificilmente poderei voltar a ela rapidamente para fazê-la.