orderend() ajuda na codificação... - página 2

 

Você sabe que eu estava pensando no que eu lhe disse antes:

Se for uma compra:

SL = Bid - StopLoss* Point

TP = Licitação + TakeProfit* Ponto

Se for um Sell:

SL = Perguntar + Ponto StopLoss*;

TP = Ask - TakeProfit* Point;

Eu sempre fiz dessa forma porque é assim que eles fazem nos exemplos do livro MQL4, mas agora estou pensando que isso não parece correto, certamente se você abrir no preço Ask você quer ter lucro a esse preço + sua quantia de TP, e você quer parar por esse preço - sua quantia de SL ?

Em outras palavras, a forma como você o tinha parece que estaria correto ou há algo que me falta?

 
mugged:

1) Sim, este método funciona! Mas há alguma forma de contornar isso? Odeio a idéia do pior caso em que a ordem inicial entra mas a modificação não ocorre (a conexão morre, o erro ocorre, etc. etc.)

Boa pergunta! Eu NUNCA vi ninguém com um trabalho por perto para isto.

Por favor, pergunte a seu corretor sobre este "pior caso".

 
mugged:

1) Sim, este método funciona! Mas há alguma forma de contornar isso? Odeio a idéia do pior caso em que a ordem inicial entra mas a modificação não ocorre (a conexão morre, o erro ocorre, etc. etc.)

Em meu código, se a OrderModify falhar, ela é testada várias vezes, se as tentativas falharem, então a ordem é fechada, se a OrderClose falhar, ela é testada novamente, se as tentativas falharem, há outra função que verifica todas as negociações, ela detectará a ordem sem conjunto SL ou TP e tentará fechá-la. Todas estas falhas irão gerar erros, estes erros são reportados na tela e via e-mail, o e-mail também irá gerar um alerta empurrado para o meu telefone celular.

Há mais um modo de falha que eu ainda não resolvi, que é uma perda de conectividade com a Internet imediatamente após a colocação da Ordem e antes que ela seja modificada... Tenho uma idéia para lidar com isso, mas não tenho as habilidades necessárias de codificação PHP.

 

Entrei em contato com meu corretor, eles foram bastante inúteis, pois não oferecem nenhuma ajuda de programação. Praticamente tudo o que o representante sabia era como aplicar uma EA ao gráfico.

É um pouco estranho que esta questão tenha começado a acontecer, no entanto, ela estava funcionando perfeitamente bem no passado. O que será que o causou...?

 
Vocês estão vivenciando este problema há muito tempo ou ele é algo novo?
 
É um fato da vida com um corretor ECN.
 

Obrigado por sua ajuda, pessoal.

Acho que o mal só funciona em torno disso.

 
RaptorUK:

Em meu código, se a OrderModify falhar, ela é reexaminada várias vezes, se a reexaminação falhar, então a Ordem é fechada, se a OrderClose falhar, se a reexaminação falhar, se a reexaminação falhar, há outra função que verifica todas as negociações, ela detectará a Ordem sem conjunto SL ou TP e tentará fechá-la. Todas estas falhas irão gerar erros, estes erros são reportados na tela e via e-mail, o e-mail também irá gerar um alerta empurrado para o meu telefone celular.

Há mais um modo de falha que eu ainda não resolvi, que é uma perda de conectividade com a Internet imediatamente após a colocação da Ordem e antes que ela seja modificada... Tenho uma idéia para lidar com isso, mas não tenho as habilidades necessárias de codificação PHP.


Raptor, se você não se importa... como você estava planejando verificar a conectividade via php?
 
Talvez você possa ter um telefone celular em modo modem conectado ao computador para que, se o computador perder sua conectividade regular com a Internet, ele possa reconectar-se temporariamente usando a rede de telefones celulares
 
RaptorUK:
Há mais um modo de falha que eu ainda não resolvi, que é uma perda de conectividade com a Internet imediatamente após o pedido ser feito e antes que ele seja modificado... Tenho uma idéia para lidar com isso, mas não tenho as habilidades necessárias de codificação PHP.

Minha abordagem é apenas relatar o erro e retornar. No próximo tick, no reinício, na reconexão, a ordem da EASelect loop encontrará a ordem aberta e então definirá as paradas.

O maior problema é o envio de um pedido sem resultado. O pedido pode ou não estar aberto. Uma vez que você receber o próximo tick, então você saberá.