O grande e terrível MT4 para sempre (ou como fazer uma transição estratégica) - página 30

 
em mt4 eu não posso comprimir o gráfico verticalmente os níveis de Fibonacci não vê o gráfico é limitado a 8000 pips))) como resolvê-lo?
 

É uma coisa estranha para se fazer em Forts. Esta é a parte principal do fechamento de posição.

  if(Trade.PositionClose(mSymbol))
  {
     // --- Введем задержку пока не получим номер сделки, но не более 2-х секунд
    int cnt = 0;
    ulong deal = 0;
    while(((deal = Trade.ResultDeal()) == 0) && cnt < 20) {Sleep(100); ++cnt;}
    
    if(deal == 0)
    {
      ulong ttOrder = Trade.ResultOrder();
      if(HistoryOrderSelect(ttOrder))
      {
        ENUM_ORDER_STATE state = ENUM_ORDER_STATE(HistoryOrderGetInteger(ttOrder, ORDER_STATE));
        LOG("После закрытия позиции № сделки=0, Order=" + string(ttOrder) + " state=" + EnumToString(state));
      }
      return false;
    }
  }

Aqui está um trecho do registro do Expert Advisor, ou seja, ele chegou à seção onde o ticket do negócio é zero após 20 iterações da verificação do resultadoDeal():


JL    0    10:08:04.462    e-MultiPattern-0.15 (RTS-9.21,M5)    cStoploss::sortSL12 Дистанция контртренд=0 BID=172690.0, закроем Short
JM   0    10:08:06.695    e-MultiPattern-0.15 (RTS-9.21,M5)     ** 333-cMyTrade::ClosePosition. После закрытия позиции № сделки=0, Order=16868286 state=ORDER_STATE_FILLED

Aqui está um trecho do diário de bordo do terminal:

IG 0 10:08:04.465 Negociações '733618': compra de câmbio 2 RTS-9.21 no mercado
KN 0 10:08:04.480 Transações '733618': compra de troca aceita 2 RTS-9.21 no mercado
OQ 0 10:08:04.481 Transações '733618': compra de troca aceita 2 RTS-9.21 no mercado colocado para execução

FG 0 10:08:04.517 Comércios '733618': ordem #16868286 compra 2 / 2 RTS-9.21 no mercado feito em 52.326 ms
JN 0 10:08:04.517 Negociações '733618': negócio #3413752 compra 2 RTS-9.21 a 172780 feito (baseado no pedido #16868286)

Favor informar quem tem uma boa compreensão da lógica comercial do MT5. No registro do terminal, o pedido e a criação do negócio aconteceram em um momento - 04.517 segundos.

Mas o EA in the loop nunca viu um bilhete comercial e saiu após 20 iterações a 06.695 segundos. Por que a estrutura tem um ticket de pedido, mas nenhum ticket de acordo?

Como é garantido obter um bilhete comercial, especialmente se você usar um fechamento parcial?

 
Vasiliy Pushkaryov obter um ticket de transação, especialmente se você usar um fechamento parcial?

Isso não pode ser explicado facilmente, pois há muitas armadilhas. Escreveu uma solução que permite que os usuários trabalhem sem problemas. Mas a análise da implementação interna é para os conhecedores especiais.

 
Faça um testador adequado para mt4 e em alguns anos o mt5 será esquecido
 
Dmitry Fedoseev #:

E com toda a seriedade...?

O fio "Humor" aqui

A compatibilidade de baixo para cima é um dos requisitos básicos para software. O código de uma versão anterior deve ser percebido adequadamente pela versão subseqüente. Caso contrário, o desenvolvedor simplesmente joga fora o desenvolvimento anterior e introduz um novo. O caminho para lugar nenhum.

Concordo absolutamente que existe uma necessidade (antes de tudo, para os desenvolvedores) de compilar o código MQL4 em código MQL5.

 
Vladimir Baskakov #:
Faça um testador adequado para mt4 e em alguns anos o mt5 será esquecido por todos

Baskakov, e a filha usa o MT5, o infame...

 
Eu lhe prometi um indicador há seis meses, nunca o fiz.
 
fxsaber #:

Se o ResultDeal for zero, ele ainda será zero após um milhão de iterações no loop, porque é um parâmetro invariante.

Porque a ordem colocada no mercado é o resultado da OrderSend.

Não está muito claro. Na MqlTradeResult , a estrutura de ajuda diz

Se o fechamento devolveu um bilhete de pedido mas não há bilhete de pedido, este tipo de operação é TRADE_ACTION_PENDING?

Ou TRADE_ACTION_DEAL e o bilhete comercial pode estar "atrasado" e não estar incluído na estrutura?

Isto é, é melhor procurar um acordo por ordem através das funções HistorySelect?

 

E também, desculpe, é um ponto nevrálgico. Para os desenvolvedores: pare de desperdiçar despesas insanas e injustificadas com a manutenção do MT4, você já tem metade de seus profissionais de alta classe fazendo isso.

Construa o compilador MQL4-MQL5 uma vez e concentre-se nas coisas importantes. Alcançar um primeiro lugar estável na versão final entre seus concorrentes.

 
Vasiliy Pushkaryov #:

Não está muito claro. Na ajuda para a estrutura MqlTradeResult , está escrito

Se o fechamento devolveu um bilhete de pedido, mas não há nenhum bilhete comercial - é uma operação do tipo TRADE_ACTION_PENDING?

Ou TRADE_ACTION_DEAL e o bilhete comercial pode estar "atrasado" e não estar incluído na estrutura?

Isto é, é melhor procurar o negócio por ordem através das funções HistorySelect?

Embora, o método PositionClose(Símbolo) no SB atribua o tipo de transação TRADE_ACTION_DEAL.

Acontece que deveria haver um bilhete comercial, mas muitas vezes ele está ausente.