Perguntas de um "boneco" - página 135

 
Cmu4:

Reduzo o volume por contra-ordem, escrevo um comentário nele, mas o comentário permanece nele, não "se agarra" à posição...

O mais interessante é que se a ordem é enviada com um comentário na direcção da posição, recebe este comentário, se contra - não o faz.

Talvez seja um insecto?

Olhei para a minha EA em modo de visualização e vi que por vezes os comentários "colam" e outras vezes não. Ainda não posso dizer nada (não é crítico para mim). Observe mais alguns e escreva para o Service Desk se encontrar um padrão para reproduzir.
 
tol64:
Olhei no meu modo de visualização e vi que por vezes os comentários "se agarravam" e outras vezes não. Ainda não posso dizer nada (não é crítico para mim). Observe mais alguns e escreva para o Service Desk se encontrar algum padrão para a repetição.

Já o fiz. Hmm, eu recebo sempre os errados. E há uma coisa infernal sobre "excerto" de um comentário. Ufff...

A propósito, aqui está uma função simples para obter o comentário da última troca (apenas números nos comentários) sobre uma posição, está correcto? Caso contrário, talvez esteja a "raspar" mal...

double OrderLastMy()
{HistorySelectByPosition(pos_id);
 int total=HistoryDealsTotal();
 double Comments = StringToDouble(HistoryDealGetString(total,DEAL_COMMENT));
 if (Comments!=0)
  {Print("comment = ", Comments));
   return(Comments);
  }
 else return(0);
 }
 
Cmu4:

Já o fiz. Hmm, eu recebo sempre os errados. E há uma coisa infernal sobre "excerto" de um comentário. Ufff...

A propósito, aqui está uma função simples para obter o comentário da última troca (apenas números nos comentários) sobre uma posição, está correcto? Ou talvez eu não esteja "a acertar"...

double OrderLastMy()
{HistorySelectByPosition(pos_id);
 int total=HistoryDealsTotal();
 double Comments = StringToDouble(HistoryDealGetString(total,DEAL_COMMENT));
 if (Comments!=0)
  {Print("comment = ", Comments));
   return(Comments);
  }
 else return(0);
 } 

A função HistoryDealGetString() deve ter como primeiro parâmetro o bilhete da transacção, e até agora tem o número de transacções na história.

 
Yedelkin:

O primeiro parâmetro da função HistoryDealGetString() deve ser um bilhete de transacção, mas até agora está a especificar o número de transacções no histórico.

Corrigi-o, mas ainda não funciona. Senhores, por favor aconselhem, porque estou confuso...

double OrderLastMy()
{HistorySelectByPosition(pos_id);
 int total=HistoryDealsTotal();
 int ticket = HistoryDealGetTicket(total);
 double Comments = StringToDouble(HistoryDealGetString(ticket,DEAL_COMMENT));
 if (Comments!=0)
  {Print("commentttt = ", ticket);
   return(Comments);
  }
 else return(0);
 }
 
 
 
Cmu4:

Arranjei-o, mas ainda não funciona. Senhores, por favor aconselhem, porque estou confuso...

Muito bem, vamos em frente :)

Aqui está a linha.

int ticket = HistoryDealGetTicket(total);
não tem em conta que a numeração dos artigos das listas (incluindo a numeração das transacções na lista de transacções) começa por "0", e não por "1". Portanto, ao especificar o valor total como "número de transacção na lista de transacções", está a especificar um número inexistente. Ver exemplo em MQL5 Reference / Trading Functions / HistoryDealGetTicket.
 
Yedelkin:

Muito bem, vamos em frente :)

Aqui está a linha

não tem em conta que a numeração dos artigos das listas (incluindo a numeração das transacções na lista de transacções) começa por "0", e não por "1". Portanto, ao especificar o valor total como o "número da transacção na lista de transacções", está a especificar um número que não existe. Ver o exemplo em MQL5 Reference / Trading Functions / HistoryDealGetTicket.
Muito obrigado, acrescentando -1 resolveu tudo (espero que tenha resolvido - por agora verifiquei através da impressão). :)
 
É estranho...
   datetime Arr[], time1;
   int t;

   t=CopyTime(_Symbol,_Period,0,1,Arr);
   time1=Arr[0];
Print(time1) não imprime nada nesta versão do código, mas sim nesta:
   datetime Arr[], time1;

   CopyTime(_Symbol,_Period,0,1,Arr);
   time1=Arr[0];

- resultados.

Isto é um insecto ou uma característica?

 
Talvez deva ser definido como data/hora?
 
Cmu4:
Talvez deva ser definido como data/hora?

t não pode ser a data, leia cuidadosamente a ajuda do CopyTime:

"Valor de retorno:

Onúmero deitens de matriz copiados ou -1 em caso de erro".

Intuitivamente, parece que o retorno desta função é processado e o valor de retorno é atribuído com segurança à variável t... e, neste ponto, o programa pára, como se nada mais quisesse ser copiado para o Arr. Mas supostamente pensei que a cópia para a matriz deve ser feita primeiro, e só depois - atribuindo à variável t o número devolvido de itens copiados. Mas aqui vai...
 
alph:

Olá!

Eu escrevi um EA, tudo funciona. Mas agora, ao compilar, recebo um erro na linha de abertura ' request.type_filling = ORDER_FILLING_AON;'-undeclared identifer and implicit enum conversion

Não se consegue descobrir o que está errado, todos os EAs compilados até agora com os mesmos cordões funcionam como antes.

Obrigado de antemão.

Se clicar no link ORDER_FILLING_AON, verá que o nome acabou de mudar.
Razão: