Erros, bugs, perguntas - página 1815

 
Erro de compilação
template<typename T>
class A { public:
    A( const T * ) {} //Error: 'T' - unexpected token
};
class B {};
void OnStart()
{
    A<const B> a( new B );
}
 

Olá, estou a ter o seguinte acontecimento na minha conta de demonstração na Otkritie

acontece o seguinte: se eu modificar e apagar uma encomenda com sucesso

do tipo ORDER_FILLING_RETURN(uma ordem de limite regular)

o volume variável da estruturaMqlTradeResult é estavelmente igual ao tamanho inicial da encomenda (neste caso, a encomenda não foi executada de todo).

Parece que deveria dar um volume executado (0 no meu caso), ou será que estou enganado?

 
Sergey Kudryavtsev:

Penso que deveria dar um volume executado (0 no meu caso) ou estou errado?

Este era originalmente o caso

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Bibliotecas: MT4Orders

fxsaber, 2017.02.10 12:01

Resultado do guião
OrderSend(NULL,OP_BUYLIMIT,1,Ask-100*Point,100,0,0,My Order)
Request.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = EURUSD
Request.volume = 1.0
Request.price = 1.06356
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_IOC (1)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 57777
Result.volume = 1.0
Result.price = 1.06356
Result.bid = 0.0
Result.ask = 0.0
Result.comment = My Order
Result.request_id = 592
Result.retcode_external = 0
Agora é fácil compreender como formar correctamente os pedidos comerciais relevantes no MT5.
 
fxsaber:
Foi assim desde o início!
Obrigado!
 
Uma pesquisa por "MqlTradeResult " não pode produzir um link para a descrição na Ajuda.
 

Durante a execução do OrderSend, não é possível sair do modo de depuração ou apagar o EA/script.

Por vezes o OrderSend funciona durante 180 segundos, com o tempo limite do Request timeout. É preciso esperar três minutos para poder compilar no editor, se o guião estivesse a correr em modo de depuração.

 

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Insectos, insectos, perguntas

fxsaber, 2017.02.16 07:55

2017.02.16 08:53:03.158 Network '2250': disconnected from FXOpen-MT5
2017.02.16 08:53:03.285 MQL5    wrong type, loading of Test failed
2017.02.16 08:53:03.813 Network '5122740': authorized on MetaQuotes-Demo through Access Point EU Amsterdam (ping: 50.93 ms)

O que é isso?

Nada está a correr no único gráfico. Sempre que troco de contas, esta mensagem aparece.

Apagados todos os ficheiros Test.ex*. A mensagem continua a aparecer.
 

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Cache louco de agentes de teste

Renat Fatkhullin, 2017.02.21 04:04

Experimente a nova construção de sexta-feira do MT5 1545 - algo foi melhorado.

Note-se também que temos mais de 230.000 contas permanentemente activas na MetaQuotes-Demo MT5 e é uma verdadeira bacanalia comercial.

Penso que a bacanalia é ainda mais poderosa na troca, mas aguentando.

1545 - parece estar a melhorar. Mas tudo escorrega através das fendas.

Pedido/resposta.

Request.action = TRADE_ACTION_DEAL (1)
Request.magic = 0
Request.order = 0
Request.symbol = EURCAD
Request.volume = 0.01
Request.price = 1.39016
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_SELL (1)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment =
Request.position = 134821044
Request.position_by = 0
Result.retcode = 10009
Result.deal = 118450870
Result.order = 134821045
Result.volume = 0.01
Result.price = 1.39016
Result.bid = 1.39016
Result.ask = 1.39043
Result.comment = Request executed 57.225 + 18.108 ms
Result.request_id = 4096
Result.retcode_external = 0

Destacado - é quanto tempo uma entrada apareceu na ordem e no histórico de transacções após um OrderSend bem sucedido. Muito!

Registo

NO      0       08:51:22.422    Trades  '5245006': instant sell 0.01 EURCAD at 1.39016, close #134821044 buy 0.01 EURCAD 1.39043 (deviation: 100)
MM      0       08:51:22.480    Trades  '5245006': accepted instant sell 0.01 EURCAD at 1.39016, close #134821044 buy 0.01 EURCAD 1.39043 (deviation: 100)
LH      0       08:51:22.480    Trades  '5245006': deal #118450870 sell 0.01 EURCAD at 1.39016 done (based on order #134821045)
EQ      0       08:51:22.480    Trades  '5245006': order #134821045 sell 0.01 / 0.01 EURCAD at 1.39016 done in 57.165 ms

E outro caso do mesmo guião a correr.

Pedido/Resposta

Request.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = EURCZK
Request.volume = 0.01
Request.price = 27.043
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = Benchmark_Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 134821281
Result.volume = 0.01
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Request executed 392.585 + 0.299 ms
Result.request_id = 4457
Result.retcode_external = 0

Registo

HP      0       08:51:43.740    Trades  '5245006': buy limit 0.01 EURCZK at 27.04300
RE      0       08:51:44.133    Trades  '5245006': accepted buy limit 0.01 EURCZK at 27.04300
JS      0       08:51:44.133    Trades  '5245006': order #134821281 buy limit 0.01 / 0.01 EURCZK at market done in 392.533 ms

Ping ~54 ms.

 

É impossível copiar qualquer coisa da janela de Alerta.

Por favor adicionar à janela de Alerta a possibilidade de seleccionar várias linhas, clicando com o botão direito do rato no menu "Copiar" e "Ir para Diário" - para mostrar no Registo de Perito a linha correspondente ao alerta.

 

Boa tarde.

Tenho sido confrontado com um comportamento incorrecto (na minha opinião) de apontadores de objectos. É relevante tanto para o MT5 como para o MT4. Por favor, esclareça se se trata de um bug ou de uma característica. Aqui está o código:

class CBaseObject { };

class CDescObject:public CBaseObject { };

void OnStart()
  {
      CDescObject *obj1 = new CDescObject(), *obj2;
      CBaseObject *baseObj1 = obj1;
      
      obj2 = baseObj1;//Пока не грохнули объект - no problem
      delete(obj1);

      //Если добавить эти строки, ошибки в последней строке не будет
      //if(CheckPointer(baseObj1)==POINTER_INVALID)
         //baseObj1 = NULL;
      
      obj2 = obj1;//Указатели одного типа - no problem
      obj2 = baseObj1;//здесь ошибка "Invalid pointer access"
  }

Compreendo que as indicações aqui não são as mesmas que em C, mas têm um mundo interno rico. Ainda assim, seria mais lógico se a missão na última linha passasse pacificamente. No meu caso, a verificação de POINTER_INVALID foi depois da missão, pelo que não percebi imediatamente porque é que ocorre o "Invalid pointer access", mesmo que ninguém faça qualquer acesso.

P. S.: Just in case - Metatrader 5 build 1545, Win 7 SP1 x86

Razão: