Fechamento de meio lote. - página 11

 

DomGilberto: C) Not sure what difference this makes?

O mesmo que A). Se o TP for zero, você não fez o primeiro fechamento. Defina o TP e depois faça o fechamento parcial.
 
Ok - Estou chegando bem perto de conseguir isso (só estou escrevendo coisas que preciso consertar / como / e lógica aplicada)

Uma área com a qual estou lutando é como eu verifico cada um dos tick ONCE que o OP_BUYSTOP foi acionado em um OP_BUY. Por enquanto vou continuar a fazer uma troca de tapas e fechamentos parciais - simplesmente com base no fato de que estou confiante de que já quase o fiz?

Apreciei muito a contribuição nesta linha - isso me ajudou muito a entender :) então obrigado novamente pelo seu tempo!!
 
DomGilberto:
Ok - estou chegando bem perto de ficar de castigo (só estou escrevendo coisas que preciso consertar / como / e lógica aplicada)

Uma área com a qual estou me debatendo é como eu verifico cada um dos tick ONCE que o OP_BUYSTOP foi acionado em um OP_BUY.

Você não pode, você tem que verificar cada tick para ver se o OP_BUYSTOP acionou um OP_BUY . . . mas o que você pode fazer é verificar se você tem algum OP_BUY, se você não tem então você pode simplesmente retornar(0); e evitar o resto do código.

Isso ajuda?

 
Espere, então eu não posso verificar cada carrapato? Quero ter certeza de que o fechamento parcial será fechado assim que a oferta for == ao preço que eu quero? No momento está fechando se Bid == o preço de saída em uma base horária - o que você viu com "IfIsNewCandle"? Significa que é uma maneira muito engraçada e estranha de fechá-la...

Digamos que o meu "OP_BUYSTOP" foi acionado em um "OP_BUY", posso então verificar cada tique para que minha função OrderClose() feche ao meu preço desejado AS SOON como a oferta é == ao preço de saída especificado?
 
DomGilberto:

Digamos que meu "OP_BUYSTOP" foi acionado em um "OP_BUY", posso então verificar cada tick para que minha função OrderClose() feche ao meu preço desejado AS SOON como a oferta é == ao preço de saída especificado?
Sim, você DEVE verificar cada t ick . . . mas o que eu estava dizendo é que você não precisa fazer tudo para cada tick . . . você disse "como eu verifico cada tick ONCE que o OP_BUYSTOP foi acionado em um OP_BUY", o que eu quis dizer é que você não pode apenas verificar cada tick ONCE que o OP_BUYSTOP se torna um OP_BUY, você tem que verificar se isso aconteceu em cada tick.
 
Ah, sim, eu te peguei - meu erro. Leia o que você escreveu errado.

Eu não sei como fazer isso. Você pode me apontar na direção certa?
 
DomGilberto:
Ah, sim, eu te peguei - meu erro. Leia o que você escreveu errado.

Eu não sei como fazer isso. Você pode me apontar na direção certa?
Apenas um simples loop, como você já tem, loopando através das ordens abertas e verificando o OrderType() . . . pode haver pouca vantagem, em termos de desempenho, em adicionar isto ao seu código, sem verificar, não posso dizer com certeza.
 
Desculpe, o que eu quis dizer foi: existe uma função embutida dentro da MQL4 que eu preciso usar, a fim de verificar cada carrapato?
 
DomGilberto:
Desculpe, o que eu quis dizer foi: existe uma função embutida dentro da MQL4 que eu preciso usar, a fim de verificar cada carrapato?
Não, start() é chamado a cada tic. . . mas atualmente você só chama CheckForMaTrade() quando há uma vela nova ( IsNewCandle() ) você precisa fazer isso para cada tic.
 
Ah, sim - entendi! Acho que sei como fazer isso - de volta ao jogo agora :)