The article describes an example of creating a class for working with the trade server return codes and all the errors that occur during the MQL-program run. Read the article, and you will learn how to work with classes and objects in MQL5. At the same time, this is a convenient tool for handling errors; and you can further change this tool according to your specific needs.
返信したときにはコードがなかったのですが、bot.SendMessageをバーストリストにメッセージを追加する関数に置き換えることができることがわかりました。また、メッセージを成長させ続けてループの外に送信することもできますが、そこでは文字数の制限にぶつかります。
簡単な回路図はこんな感じ:
お返事ありがとうございます。
こんにちは!
例えば、太字フォントを使用するには、Telegram.mqhでHTML送信を有効にする必要があります。
そして<b>タグでテキストを送信します。
AsHTMLフラグをtrueに設定することで答えを見つけた。
bot.SendMessage(InpTelegramId,"<b>Balance: $10056.21</b>",true);
すみません...
こんにちは、その方法をコードで教えてもらえますか?また、テキストを太字と斜体にし、電報サーバーに送信するコードも探しています。
。 それが動作するようにコードを更新してもらえますか?
Romanさん、スクリーンショットを送信するためだけにボットが必要な場合は、このようにすることができます:
1.MyTelegramID_botにチャット番号を尋ねてください。
2.新しいアイテムをチェックし、指定されたIDのチャットに写真を送信する簡単なボットを書いてください。例としては
//+------------------------------------------------------------------+
//| 入力パラメータ|
//+------------------------------------------------------------------+
input ENUM_LANGUAGES InpLanguage=LANGUAGE_EN;//言語
input string InpToken="";//トークン
input long ChatId=0; //チャット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);
//--- チャートの更新
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);
//--- スクリーンショットを保存するために30秒待つ
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にメッセージを送信しようとしています。しかし、エラーコード 400 説明 "Bad request: chat not found" のため、MT5からTelegramにメッセージを送信できませんでした。
同じ問題に遭遇した方はいらっしゃいますか?このエラーが発生した理由を教えてください。
私はオンラインで多くの研究をしましたが、私は正しい答えを得ることができませんでした。
取引、自動取引システム、取引戦略のテストに関するフォーラム
テレグラム・メッセージに絵文字を追加
Frédéric LEBRE, 2023.12.04 13:56
こんにちは、
助けてください。
絵文字を使ってテレグラムにメッセージを送ろうとしています。
絵文字のunicodeが例えばU+2702の場合、文字列の値として" ˶x2702" を使うとうまくいきます。
SendTelegramMessage(TelegramApiUrl, TelegramBotToken, ChatId, " \x2702");
しかし、unicodeがこのように :U+1F648では何も動作しません。
トピックで読んだように<Telegram.mqh>をインクルードしましたが、それ以上の方法がわかりません。
ご回答ありがとうございました。
私はそれを行う方法を見つけた、誰かが興味を持っている場合は、私に聞いてください)。
やり方がわかったので、興味のある人は聞いてね )
書き留めておけばいい。そうすれば、他の人があなたを探して尋ねる必要がなくなる。