Обсуждение статьи "Создание бота для Telegram на языке MQL5" - страница 52
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Когда я отвечал, кода не было, но я вижу, что вы можете заменить bot.SendMessage функцией, которая добавляет сообщение в список burst. Вы также можете продолжать увеличивать сообщение и отправлять его из цикла, но в этом случае вы столкнетесь с ограничениями по количеству символов.
Краткая схема может быть такой:
Спасибо за ответ. Я попробую ваш способ.
Здравствуйте!
Например для жирного шрифта надо включить HTML отправку в Telegram.mqh
И потом отправить текст в теге <b>
Неважно....
Я нашел ответ, установив флаг AsHTML в true...
bot.SendMessage(InpTelegramId,"<b>Balance: $10056.21</b>",true);
Извините...
Здравствуйте, не могли бы вы поделиться кодом, как это сделать? Я также ищу код, чтобы сделать текст полужирным и курсивом и отправить на сервер telegram.
Роман, если вам бот нужен только для отправки скриншотов, то можно сделать так:
1. Узнайте у бота @MyTelegramID_bot номер вашего чата.
2. Напишите простого бота который будет проверять наличие новых позиций и отправлять картинки в чат с указанным ID. Пример такой:
//+------------------------------------------------------------------+
//| Input parameters |
//+------------------------------------------------------------------+
input ENUM_LANGUAGES InpLanguage=LANGUAGE_EN;//Language
input string InpToken="";//Token
input long ChatId=0; //Chat ID
//---
CCustomBot bot;
int pos_count;
//+------------------------------------------------------------------+
int OnInit()
{
bot.Token(InpToken);
int res=bot.GetMe();
if(res!=0)
{
Print(GetErrorDescription(res));
}
pos_count=PositionCount(_Symbol);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnTick()
{
int pos_count_new=PositionCount(_Symbol);
if(pos_count_new>pos_count)
{
pos_count=pos_count_new;
int result=SendScreenShot(ChatId,_Symbol,0,NULL);
if(result!=0)
Print(GetErrorDescription(result,InpLanguage));
}
}
//+------------------------------------------------------------------+
int PositionCount(const string _symbol)
{
int count=0;
int orders_total=OrdersTotal();
for(int i=0; i<orders_total; i++)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
PrintError(ERR_ORDER_SELECT);
return(-1);
}
//---
if(_symbol==NULL || OrderSymbol()==_symbol)
count++;
}
//---
return(count);
}
//+------------------------------------------------------------------+
int SendScreenShot(const long _chat_id,
const string _symbol,
const ENUM_TIMEFRAMES _period,
const string _template=NULL)
{
int result=0;
long chart_id=ChartOpen(_symbol,_period);
if(chart_id==0)
return(ERR_CHART_NOT_FOUND);
ChartSetInteger(ChartID(),CHART_BRING_TO_TOP,true);
//--- updates chart
int wait=60;
while(--wait>0)
{
if(SeriesInfoInteger(_symbol,_period,SERIES_SYNCHRONIZED))
break;
Sleep(500);
}
if(_template!=NULL)
if(!ChartApplyTemplate(chart_id,_template))
PrintError(_LastError,InpLanguage);
ChartRedraw(chart_id);
Sleep(500);
ChartSetInteger(chart_id,CHART_SHOW_GRID,false);
ChartSetInteger(chart_id,CHART_SHOW_PERIOD_SEP,false);
string filename=StringFormat("%s%d.gif",_symbol,_period);
if(FileIsExist(filename))
FileDelete(filename);
ChartRedraw(chart_id);
Sleep(100);
// if(ChartScreenShot(chart_id,filename,800,600,ALIGN_RIGHT))
if(ChartScreenShot(chart_id,filename,1024,768,ALIGN_RIGHT))
{
Sleep(100);
bot.SendChatAction(_chat_id,ACTION_UPLOAD_PHOTO);
//--- waitng 30 sec for save screenshot
wait=60;
while(!FileIsExist(filename) && --wait>0)
Sleep(500);
//---
string screen_id;
result=bot.SendPhoto(_chat_id,filename,screen_id,_symbol+"_"+StringSubstr(EnumToString(_period),7));
}
ChartClose(chart_id);
return(result);
}
//+------------------------------------------------------------------+
Привет всем,
Я пытаюсь отправить сообщение из MT5 в Telegram с помощью бота. Однако я не смог отправить сообщение из MT5 в Telegram из-за ошибки: Код ошибки 400 Описание "Плохой запрос: чат не найден".
Кто-нибудь сталкивался с такой же проблемой? Можете ли вы назвать причины, по которым могла возникнуть эта ошибка?
Я провел много исследований в интернете, но не смог получить правильных ответов.
Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий
Добавление эмодзи в сообщения telegram.
Frédéric LEBRE, 2023.12.04 13:56
Здравствуйте,
Пожалуйста, не могли бы вы мне помочь.
Я пытаюсь отправить сообщение в telegram с помощью emoji.
Когда emoji unicode, например, U+2702, я использую в качестве строкового значения " \x2702 " и если работает.
SendTelegramMessage(TelegramApiUrl, TelegramBotToken, ChatId, "\x2702");
Но когда юникод такой : U+1F648 ничего не работает.
Я включил <Telegram.mqh>, как я читал в темах, но я не знаю, как сделать больше.
Спасибо за ответы.
Благодарю за крутую библиотеку! Однако есть вопрос. Не нашел метод отправки сообщения именно пользователю. Пытаюсь сделать так чтобы когда советник нашел сигнал, оповестил меня напрямую. Не хочется делать группу
Нашел как делать, кому интересно спрашивайте )
Нашел как делать, кому интересно спрашивайте )
Можно просто взять, и написать. Чтобы другим не было надобности искать Вас и спрашивать.