Erros, bugs, perguntas - página 2235

 
fxsaber:

Como é que o preço pode não ser um múltiplo de TickSize?

talvez, fiz esta pergunta há alguns anos atrás, escrevi carraças em algum tempo (verdadeiro) guião, escrevi carraças alterando dados na "visão geral do mercado", havia frequentemente carraças como 1.3555000001, ou 1.3555999999

fiquei surpreendido por receber dados de preços não normalizados do servidor, não obtive qualquer resposta, mas li tópicos posteriores e vi as respostas dos criadores dizendo que algumas carraças são carraças para o terminal e a EA não negoceia com essas carraças

também no seu caso, tal preço não é um múltiplo deSYMBOL_TRADE_TICK_SIZE, o que significa que não negociará a tal preço.... embora se verifique que a última análise de preços pode também não fazer sentido ))))

 
Igor Makanu:

Posso ter feito esta pergunta há alguns anos atrás, escrevi carraças em algum tempo (verdadeiro) guião, as carraças foram escritas alterando dados na "visão geral do mercado", havia frequentemente carraças como 1.3555000001, ou 1.3555999999

O seu caso é uma peculiaridade de dupla -> conversão de cordas. Tenho uma situação ligeiramente diferente.

 
O registo da EA é de 15 GB. A tentativa de o ver no Terminal faz com que fique pendurado durante mais de um minuto.
 
fxsaber:
O registo da EA é de 15 GB. A tentativa de o ver no Terminal faz com que fique pendurado durante mais de um minuto.

O que quer que seja?

 
Alexey Kozitsyn:

Quer que seja assim?

No caso de um grande tronco, emitir primeiro um aviso e perguntar se quer continuar ou não.

 
fxsaber:

No caso de um grande tronco, avisar primeiro e perguntar se quer continuar ou não.

Veja como se tornou imediatamente construtivo:)

 
Alexey Viktorov:

O seu erro é que depois de escrever num ficheiro, os dados só chegam ao disco depois de FileClose OU depois de um reset forçado dos dados para o disco por FileFlush

Caso contrário, como se pode ler um ficheiro que não existe???

Confundiu-me com outra pessoa. Tanto com como sem FileFlush, o erro é o mesmo. O verdadeiro Expert Advisor, onde tudo começou, tem inicialmente tanto o FileFlush como o próprio ficheiro.

A bandeira FILE_SHARE_WRITE em tal combinação parece funcionar, mas levanta-se outra questão: qual é o objectivo de uma tal entrada? Logicamente, se permitir a separação por escrito, é necessário adicioná-la exactamente à bandeira de escrita:

FILE_READ|FILE_BIN|FILE_SHARE_READ|(writing?(FILE_WRITE|FILE_SHARE_WRITE):0)

Foi exactamente isso que eu tentei, e também dá um erro.

 
Em geral, não é claro porque tenho de verificar um ficheiro para escrever, quando só é necessário ler a separação?
 
Cavalheiros, alguém me pode ajudar com esta pergunta?
 

A ponta de ferramentaMqlTradeCheckResult não aparece em ME

#define  TOSTRING(A)  #A + " = " + (string)(A) + "\n"
#define  TOSTRING2(A) #A + " = " + EnumToString(A) + " (" + (string)(A) + ")\n"

string ToString( const MqlTradeRequest &Request )
{
  return(TOSTRING2(Request.action) + TOSTRING(Request.magic) + TOSTRING(Request.order) +
         TOSTRING(Request.symbol) + TOSTRING(Request.volume) + TOSTRING(Request.price) +
         TOSTRING(Request.stoplimit) + TOSTRING(Request.sl) +  TOSTRING(Request.tp) +
         TOSTRING(Request.deviation) + TOSTRING2(Request.type) + TOSTRING2(Request.type_filling) +
         TOSTRING2(Request.type_time) + TOSTRING(Request.expiration) + TOSTRING(Request.comment) +
         TOSTRING(Request.position) + TOSTRING(Request.position_by));
}

string ToString( const MqlTradeResult &Result )
{
  return(TOSTRING(Result.retcode) + TOSTRING(Result.deal) + TOSTRING(Result.order) +
         TOSTRING(Result.volume) + TOSTRING(Result.price) + TOSTRING(Result.bid) +
         TOSTRING(Result.ask) + TOSTRING(Result.comment) + TOSTRING(Result.request_id) +
         TOSTRING(Result.retcode_external));
}

string ToString( const MqlTrade