Sim, não estou entendendo, não sei, também não consigo enviar para o bot pelo nome, apenas pelo ID. Como você envia para si mesmo? Ou melhor, como você obtém seu ID no carrinho? Eu só consigo enviar para o bot.
Eu obtenho qualquer identificação por meio do bot Get My ID.
Sim, confundi minha ID com o bot. Enviamos para nós mesmos em uma mensagem privada de nosso próprio bot))))
Do artigo de Andrei
Deve-se observar que, nesses exemplos, passamos o chat_id como o destinatário da mensagem. Não podemos saber com antecedência para enviar uma mensagem ao usuário até que ele comece a conversar com o bot primeiro. Também não há como entrar em contato com o usuário pelo número de telefone celular ou pelo nome de usuário. Isso é feito, obviamente, por motivos de segurança, para que os bots não enviem spam. Mas os bots podem publicar mensagens no canal dirigindo-se ao usuário pelo seu nome usando a segunda opção SendMessage.
Tive um problema na semana passada: a função de ler a fila de mensagens do Telegram parou de funcionar. Ou seja, as mensagens de saída são enviadas como antes, tanto o texto quanto as capturas de tela, mas a função GetUpdates() não retorna nada, a fila de bate-papo está sempre vazia.
Alguém já se deparou com essa falha? Qual pode ser o motivo?
Concluí o código para enviar mensagem do telegrama para o mt5, mas estou tendo um pequeno erro: ao enviar o comando close de vários comandos close ao mesmo tempo, ele só pode enviar uma ordem, mas não várias ordens.
Alguém pode me ajudar a ver onde estou errando?
//--- agora processa a lista de posições fechadas
max_time = 0;
double day_profit = 0;
bool is_closed = false;
int totalhis = hist_position.PositionsTotal();
for(int i = 0; i < totalhis; i++) {
//---
pos_symbol = PositionGetSymbol(i); // Obter o nome do símbolo
digits = (int)SymbolInfoInteger(pos_symbol, SYMBOL_DIGITS); // Obter o número de dígitos no preço//--- Selecione uma posição fechada por seu índice na listaif(hist_position.SelectByIndex(i)) {
ulong ticket = hist_position.Ticket();
datetime time_open = hist_position.TimeOpen();
ulong time_open_msc = hist_position.TimeOpenMsc();
datetime time_close = hist_position.TimeClose();
ulong time_close_msc = hist_position.TimeCloseMsc();
long type = hist_position.PositionType();
string type_desc = hist_position.TypeDescription();
long magic = hist_position.Magic();
long pos_id = hist_position.Identifier();
double volume = hist_position.Volume();
double price_open = hist_position.PriceOpen();
double price_sl = hist_position.StopLoss();
double price_tp = hist_position.TakeProfit();
double price_close = hist_position.PriceClose();
double commission = hist_position.Commission();
double swap = hist_position.Swap();
double profit = hist_position.Profit();
string symbol = hist_position.Symbol();
string open_comment = hist_position.OpenComment();
string close_comment = hist_position.CloseComment();
string open_reason_desc = hist_position.OpenReasonDescription();
string close_reason_desc = hist_position.CloseReasonDescription();
string deal_tickets = hist_position.DealTickets(",");
//---int deals_count = HistoryDealsTotal(); // da posição selecionadaint orders_count = HistoryOrdersTotal(); // da posição selecionadaif(TimeToString(TimeCurrent(), TIME_DATE) == TimeToString(time_close, TIME_DATE)) {
day_profit += profit + swap + commission;
}
if(time_close <= _closed_last_time) continue;
//is_closed = true;string msg = StringFormat
(
"ACCOUNT: { #%s } \n" +
"------------ { CLOSE } -----------\n" +
"CLOSE ORDER - %s %s\n" +
"Time (GTM+0): %s\n" +
"------------ { CLOSE } -----------\n" +
"Volume: %s\n" +
"Open Price: %s\n" +
"Close Price: %s\n" +
"Gain/Loss: %s USD\n" +
"---TOTAL PROFIT TODAY---\n" +
"%s USD\n",
IntegerToString(login),
symbol,
PositionTypeToString(type),
TimeToString(time_close, TIME_DATE | TIME_SECONDS),
DoubleToString(volume, 2),
DoubleToString(price_open, digits),
DoubleToString(price_close, digits),
DoubleToString(profit, 2),
DoubleToString(day_profit, 2)
);
int res = bot.SendMessage(InpChannelName, msg);
if(res != 0)
Print("Error: ", GetErrorDescription(res));
max_time = MathMax(max_time, time_close);
}
_closed_last_time = MathMax(max_time, _closed_last_time);
}
Concluí o código para enviar mensagens do telegrama para o mt5, mas estou tendo um pequeno erro: ao enviar o comando close de vários comandos close ao mesmo tempo, ele só pode enviar uma ordem, mas não várias ordens.
Se você estiver atendendo a muitos usuários por meio do bot, há um limite de 30 interações por segundo, creio eu
Eu só o uso pessoalmente e apenas para enviar cada conta do mt5 para o telegrama. mas ao abrir ou fechar o comando ao mesmo tempo, ele só pode enviar uma mensagem para o telegrama
Eu só o uso pessoalmente e apenas para enviar cada conta do mt5 para o telegrama. mas, ao abrir ou fechar o comando ao mesmo tempo, ele só pode enviar uma mensagem para o telegrama
Não havia código quando respondi, mas vejo que você pode substituir o bot.SendMessage por uma função que adiciona a mensagem a uma lista de explosões. Você também poderia continuar a aumentar a mensagem e enviá-la para fora do loop, mas isso limitaria o número de caracteres.
Um breve esquema poderia ser o seguinte:
Você tem uma matriz de strings chamada "Caixa de saída"
Um intervalo de tempo dentro do qual você processa a Caixa de saída, portanto, "OnTimer()" (você já deve estar usando isso se também estiver lendo o telegrama)
Em seguida, você impõe a si mesmo um limite de milissegundos entre cada mensagem, não com a função Sleep(), mas lembrando-se de quando a última mensagem foi enviada
Você pode usar GetTickCount() para pesquisar milissegundos e armazenar o último ms que a mensagem deixou e subtraí-lo do ms atual para obter a distância em tempo. Há uma ocasião muito, muito, muito rara em que a hora de término é menor do que a hora de início e, nesse caso, você faz o seguinte: (UINT_MAX-start_time+end_time)
Se a distância em milissegundos desde a última mensagem for maior do que o limite em milissegundos que você impôs, você enviará a próxima mensagem da Caixa de saída
Em vez de chamar bot.SendMessage no loop, você agora chama Outbox.add_message_for_sending ou algo assim.
Com uma modificação que também armazena os IDs de bate-papo, você também poderia armazenar para onde a mensagem está indo, e essa seria a solução para vários usuários.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Sim, não estou entendendo, não sei, também não consigo enviar para o bot pelo nome, apenas pelo ID. Como você envia para si mesmo? Ou melhor, como você obtém seu ID no carrinho? Eu só consigo enviar para o bot.
Eu obtenho qualquer ID por meio do bot Get My ID
Eu obtenho qualquer identificação por meio do bot Get My ID.
Sim, confundi minha ID com o bot. Enviamos para nós mesmos em uma mensagem privada de nosso próprio bot))))
Do artigo de Andrei
Deve-se observar que, nesses exemplos, passamos o chat_id como o destinatário da mensagem. Não podemos saber com antecedência para enviar uma mensagem ao usuário até que ele comece a conversar com o bot primeiro. Também não há como entrar em contato com o usuário pelo número de telefone celular ou pelo nome de usuário. Isso é feito, obviamente, por motivos de segurança, para que os bots não enviem spam. Mas os bots podem publicar mensagens no canal dirigindo-se ao usuário pelo seu nome usando a segunda opção SendMessage.
Olá,
Estou tentando adicionar um novo idioma ao arquivo Search, mas tenho esses parâmetros hexadecimais que não entendo o significado:
O que é esse \xF1EC\xF1E7 no inglês, por exemplo, e como convertê-lo para obter a bandeira pt?
Tive um problema na semana passada: a função de ler a fila de mensagens do Telegram parou de funcionar. Ou seja, as mensagens de saída são enviadas como antes, tanto o texto quanto as capturas de tela, mas a função GetUpdates() não retorna nada, a fila de bate-papo está sempre vazia.
Alguém já se deparou com essa falha? Qual pode ser o motivo?
Olá!
Todas as tags estão descritas nos documentos da API do Telegram.
Olá, pessoal,
Concluí o código para enviar mensagem do telegrama para o mt5, mas estou tendo um pequeno erro: ao enviar o comando close de vários comandos close ao mesmo tempo, ele só pode enviar uma ordem, mas não várias ordens.
Alguém pode me ajudar a ver onde estou errando?
Olá pessoal,
Concluí o código para enviar mensagens do telegrama para o mt5, mas estou tendo um pequeno erro: ao enviar o comando close de vários comandos close ao mesmo tempo, ele só pode enviar uma ordem, mas não várias ordens.
Alguém pode me ajudar a ver onde estou errando?
Se você estiver atendendo a muitos usuários por meio do bot, há um limite de 30 interações por segundo, creio eu
Se você estiver atendendo a muitos usuários por meio do bot, há um limite de 30 interações por segundo, creio eu
Eu só o uso pessoalmente e apenas para enviar cada conta do mt5 para o telegrama.
mas ao abrir ou fechar o comando ao mesmo tempo, ele só pode enviar uma mensagem para o telegrama
Eu só o uso pessoalmente e apenas para enviar cada conta do mt5 para o telegrama.
mas, ao abrir ou fechar o comando ao mesmo tempo, ele só pode enviar uma mensagem para o telegrama
Não havia código quando respondi, mas vejo que você pode substituir o bot.SendMessage por uma função que adiciona a mensagem a uma lista de explosões. Você também poderia continuar a aumentar a mensagem e enviá-la para fora do loop, mas isso limitaria o número de caracteres.
Um breve esquema poderia ser o seguinte: