Skip to content

Latest commit

ย 

History

History
411 lines (323 loc) ยท 14.1 KB

File metadata and controls

411 lines (323 loc) ยท 14.1 KB

MT5-PositionMaster

้€š้Ž Telegram Bot ้ ็จ‹็ฎก็† MetaTrader 5 ไบคๆ˜“ๅ€‰ไฝ็š„ๅฐˆๆฅญๅทฅๅ…ท

MQL5 Telegram Bot API License Version


ๅฐˆๆกˆ็ฐกไป‹

MT5-PositionMaster ๆ˜ฏไธ€ๅ€‹ MetaTrader 5 Expert Advisor๏ผˆMT5 EA๏ผ‰๏ผŒ้›†ๆˆไบ†ๅฎŒๆ•ด็š„ Telegram Bot ๅŠŸ่ƒฝ๏ผŒ่ฎ“ไบคๆ˜“่€…่ƒฝๅค ้šจๆ™‚้šจๅœฐ้€š้Žๆ‰‹ๆฉŸ้ ็จ‹็ฎก็†ๆ‰€ๆœ‰ไบคๆ˜“ๅ€‰ไฝ๏ผˆ็„ก้–‹ๅ€‰ๅŠŸ่ƒฝ๏ผ‰ใ€‚็„ก้œ€้กๅค–็š„ๅค–้ƒจๆœๅ‹™ๅ™จๆˆ– Python ่…ณๆœฌ๏ผŒๆ‰€ๆœ‰ๅŠŸ่ƒฝ้ƒฝๅœจ MT5 ๅ…งๅŽŸ็”Ÿ้‹่กŒใ€‚


ๆ ธๅฟƒๅŠŸ่ƒฝ

Telegram Bot ๆ•ดๅˆ

ไบคไบ’ๅผๆŒ‰้ˆ•้ขๆฟ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   ๐Ÿ“‹ ๅ€‰ไฝ็ฎก็†้ขๆฟ            โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ [โœ‚๏ธ ๅนณๅ€‰ไธ€ๅŠ] [๐Ÿšซ ๅนณๆމๅ…จ้ƒจ]  โ”‚
โ”‚ [๐ŸŽฏ ่จญ็ฝฎTP]   [๐Ÿ›ก๏ธ ่จญ็ฝฎSL]    โ”‚
โ”‚ [โŒ ๅˆช้™คTP]   [โŒ ๅˆช้™คSL]    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅฎŒๆ•ดๆŒ‡ไปคๆ”ฏๆŒ

ๆŒ‡ไปค ๅŠŸ่ƒฝ ็คบไพ‹
/menu ้กฏ็คบๆ“ไฝœๆŒ‰้ˆ•้ขๆฟ /menu
/settp <ๅƒนๆ ผ> ่จญ็ฝฎๆ‰€ๆœ‰ๅ€‰ไฝๆญข็›ˆ /settp 2050.50
/setsl <ๅƒนๆ ผ> ่จญ็ฝฎๆ‰€ๆœ‰ๅ€‰ไฝๆญขๆ /setsl 2040.30
/rtp ๅˆช้™คๆ‰€ๆœ‰ๅ€‰ไฝๆญข็›ˆ /rtp
/rsl ๅˆช้™คๆ‰€ๆœ‰ๅ€‰ไฝๆญขๆ /rsl
/ch ๅนณๅ€‰็ด„ไธ€ๅŠๅ€‰ไฝ /ch
/ca ๅนณๆމๆ‰€ๆœ‰ๅ€‰ไฝ /ca
/cancel ๅ–ๆถˆ็•ถๅ‰ๆ“ไฝœ /cancel
/help ้กฏ็คบๅนซๅŠฉ่ณ‡่จŠ /help

ๅ€‰ไฝ็ฎก็†ๅŠŸ่ƒฝ

ๆญข็›ˆ/ๆญขๆ็ฎก็†

  • ๆ‰น้‡่จญ็ฝฎ TP/SL - ไธ€้ต็‚บๆ‰€ๆœ‰ๅ€‰ไฝ่จญ็ฝฎ็›ธๅŒ็š„ๆญข็›ˆๆญขๆๅƒนๆ ผ
  • ๆ‰น้‡ๅˆช้™ค TP/SL - ๅฟซ้€Ÿ็งป้™คๆ‰€ๆœ‰ๅ€‰ไฝ็š„ๆญข็›ˆๆญขๆ่จญ็ฝฎ
  • ่ทจๅ“็จฎๆ“ไฝœ - ่‡ชๅ‹•็ฎก็†ๆ‰€ๆœ‰ไบคๆ˜“ๅ“็จฎ็š„ๅ€‰ไฝ
  • ๅฏฆๆ™‚ๅ้ฅ‹ - ๆฏๆฌกๆ“ไฝœๅพŒ้กฏ็คบๆˆๅŠŸ/ๅคฑๆ•—่ฉณๆƒ…

ๅนณๅ€‰ๅŠŸ่ƒฝ

  • ๅนณๅ€‰ไธ€ๅŠ - ไฝฟ็”จ่ฒชๅฉชๆผ”็ฎ—ๆณ•้ธๆ“‡ๆœ€ๆŽฅ่ฟ‘ 50% ๆ‰‹ๆ•ธ็š„ๅ€‰ไฝ็ต„ๅˆ
  • ๅ…จ้ƒจๅนณๅ€‰ - ไธ€้ต้—œ้–‰ๆ‰€ๆœ‰้–‹ๅ€‰ๅ€‰ไฝ
  • ๅ–ฎๅ€‰ไฝไฟ่ญท - ๅƒ…ๆœ‰ 1 ๅ€‹ๅ€‰ไฝๆ™‚่‡ชๅ‹•่ทณ้ŽๅŠๅ€‰ๆ“ไฝœ
  • ่ฉณ็ดฐ็ตฑ่จˆ - ้กฏ็คบๅนณๅ€‰ๆ‰‹ๆ•ธใ€ๆˆๅŠŸ/ๅคฑๆ•—ๆ•ธ้‡

ๆ€ง่ƒฝๅ„ชๅŒ–

  • ๅ„ชๅŒ–่ถ…ๆ™‚ - 2 ็ง’ HTTP ่ถ…ๆ™‚๏ผŒ5 ็ง’้•ท่ผช่ฉข
  • ไธฆ็™ผ่™•็† - ้ซ˜ๆ•ˆ็š„่จŠๆฏ่ผช่ฉขๆฉŸๅˆถ
  • ้Œฏ่ชค้‡่ฉฆ - ่‡ชๅ‹•่™•็†็ถฒ่ทฏ้Œฏ่ชคๅ’Œ่ถ…ๆ™‚

ๆŠ€่ก“ๆžถๆง‹

็ณป็ตฑๆžถๆง‹ๅœ–

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Telegram Bot                         โ”‚
โ”‚                  (็”จๆˆถไบคไบ’็•Œ้ข)                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                     โ”‚ Long Polling
                     โ”‚ (5็ง’่ผช่ฉข)
                     โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              MT5-PositionMaster EA                      โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  ่จŠๆฏ่™•็†ๅฑค                                       โ”‚  โ”‚
โ”‚  โ”‚  โ€ข ProcessTelegramUpdates()                     โ”‚  โ”‚
โ”‚  โ”‚  โ€ข ParseAndProcessUpdates()                     โ”‚  โ”‚
โ”‚  โ”‚  โ€ข ProcessSingleUpdate()                        โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                      โ”‚                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  ๆŒ‡ไปค่ทฏ็”ฑๅฑค                                       โ”‚  โ”‚
โ”‚  โ”‚  โ€ข ProcessCommand()      (ๆŒ‡ไปค่™•็†)              โ”‚  โ”‚
โ”‚  โ”‚  โ€ข ProcessCallbackQuery() (ๆŒ‰้ˆ•้ปžๆ“Š่™•็†)        โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                      โ”‚                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  ็‹€ๆ…‹็ฎก็†ๅฑค                                       โ”‚  โ”‚
โ”‚  โ”‚  โ€ข UserState (IDLE/WAITING_TP/WAITING_SL)       โ”‚  โ”‚
โ”‚  โ”‚  โ€ข ่‡ชๅ‹•็‹€ๆ…‹้‡็ฝฎ                                   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                      โ”‚                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  ๆฅญๅ‹™้‚่ผฏๅฑค                                       โ”‚  โ”‚
โ”‚  โ”‚  โ€ข ModifyAllTakeProfit()   (่จญ็ฝฎๆญข็›ˆ)           โ”‚  โ”‚
โ”‚  โ”‚  โ€ข ModifyAllStopLoss()     (่จญ็ฝฎๆญขๆ)           โ”‚  โ”‚
โ”‚  โ”‚  โ€ข RemoveAllTakeProfit()   (ๅˆช้™คๆญข็›ˆ)           โ”‚  โ”‚
โ”‚  โ”‚  โ€ข RemoveAllStopLoss()     (ๅˆช้™คๆญขๆ)           โ”‚  โ”‚
โ”‚  โ”‚  โ€ข CloseHalfPositions()    (ๅนณๅ€‰ไธ€ๅŠ)           โ”‚  โ”‚
โ”‚  โ”‚  โ€ข CloseAllPositions()     (ๅนณๅ€‰ๅ…จ้ƒจ)           โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                      โ”‚                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  MT5 ไบคๆ˜“ API                                     โ”‚  โ”‚
โ”‚  โ”‚  โ€ข PositionsTotal()                              โ”‚  โ”‚
โ”‚  โ”‚  โ€ข PositionSelect()                              โ”‚  โ”‚
โ”‚  โ”‚  โ€ข OrderSend()                                   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆ ธๅฟƒๆŠ€่ก“็‰น้ปž

้•ท่ผช่ฉขๆฉŸๅˆถ

// 5 ็ง’้•ท่ผช่ฉข + 2 ็ง’็ทฉ่ก
getUpdates?offset=<last_id>&timeout=5&allowed_updates=["message","callback_query"]

Inline Keyboard ๅฏฆ็พ

// JSON ๆ ผๅผ็š„ๆŒ‰้ˆ•ๅฎš็พฉ
{
  "inline_keyboard": [
    [
      {"text": "โœ‚๏ธ ๅนณๅ€‰ไธ€ๅŠ", "callback_data": "CH"},
      {"text": "๐Ÿšซ ๅนณๆމๅ…จ้ƒจ", "callback_data": "CA"}
    ],
    [
      {"text": "๐ŸŽฏ ่จญ็ฝฎTP", "callback_data": "SETTP"},
      {"text": "๐Ÿ›ก๏ธ ่จญ็ฝฎSL", "callback_data": "SETSL"}
    ]
  ]
}

่ฒชๅฉชๆผ”็ฎ—ๆณ•๏ผˆๅนณๅ€‰ไธ€ๅŠ๏ผ‰

็›ฎๆจ™๏ผšๅนณๅ€‰็ด„ 50% ๆ‰‹ๆ•ธ
็ฎ—ๆณ•๏ผš่ฒชๅฉช้ธๆ“‡ๆœ€ๆŽฅ่ฟ‘็›ฎๆจ™็š„ๅ€‰ไฝ็ต„ๅˆ

็คบไพ‹๏ผš
ๅ€‰ไฝ๏ผš[0.1, 0.1, 0.1, 0.1, 0.1] (5ๅ€‹ๅ€‰ไฝ๏ผŒ็ธฝ่จˆ 0.5 ๆ‰‹)
็›ฎๆจ™๏ผš0.25 ๆ‰‹ (50%)
้ธๆ“‡๏ผšๅ‰ 3 ๅ€‹ๅ€‰ไฝ (0.3 ๆ‰‹) - ๆœ€ๆŽฅ่ฟ‘็›ฎๆจ™

ๅฎ‰ๅ…จ้ฉ—่ญ‰้ ป้“ ID

// Chat ID ้ฉ—่ญ‰
if(chatID != InpChatID) {
    SendTelegramMessageToChatID("[้Œฏ่ชค] ๆœชๆŽˆๆฌŠ่จชๅ•๏ผ", chatID);
    return;
}

ๅฎ‰่ฃ้…็ฝฎ

ๅ‰็ฝฎ่ฆๆฑ‚

  • ไธ€ๅฐๅธธ้–‹็š„้›ป่…ฆไธฆ้‹่กŒ MetaTrader 5
  • Telegram ๅธณ่™Ÿ
  • ็ฉฉๅฎš็š„็ถฒ่ทฏ้€ฃๆŽฅ

็ฌฌไธ€ๆญฅ๏ผšๅ‰ตๅปบ Telegram Bot

  1. ๆ‰“้–‹ Telegram๏ผŒๆœ็ดข @BotFather

  2. ๅ‰ตๅปบๆ–ฐ Bot

  3. ็ฒๅ– Bot Token

    BotFather ๆœƒ่ฟ”ๅ›ž้กžไผผ้€™ๆจฃ็š„ Token๏ผš
    123456789:ABCdefGHIjklMNOpqrsTUVwxyz1234567890
    

็ฌฌไบŒๆญฅ๏ผš็ฒๅ– Chat ID

  1. ๆ‰“้–‹ๅ‰›ๅ‰ตๅปบ็š„ Bot๏ผŒ็™ผ้€ไปปๆ„่จŠๆฏ

  2. ๆ‰“้–‹ไปฅไธ‹ URL๏ผˆๆ›ฟๆ› <YOUR_BOT_TOKEN>๏ผ‰

    https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
    
  3. ๆ‰พๅˆฐ Chat ID

    {
      "result": [{
        "message": {
          "chat": {
            "id": 123456789  โ† ้€™ๅฐฑๆ˜ฏไฝ ็š„ Chat ID
          }
        }
      }]
    }

็ฌฌไธ‰ๆญฅ๏ผš้…็ฝฎ MT5

  1. ๅ…่จฑ WebRequest Telegeam API

    • ๆ‰“้–‹ MT5 โ†’ ๅทฅๅ…ท โ†’ ้ธ้ … โ†’ Expert Advisors
    • ๅ‹พ้ธ "ๅ…่จฑ WebRequest ่จชๅ•ไปฅไธ‹ URL"
    • ๆทปๅŠ ๏ผšhttps://api.telegram.org
  2. ่ค‡่ฃฝ EA ็จ‹ๅผ

    ๅฐ‡ MT5-PositionMaster.mq5 ่ค‡่ฃฝๅˆฐ๏ผš
    <MT5็›ฎ้Œ„>/MQL5/Experts/
    
  3. ็ทจ่ญฏ EA

    • ๅœจ MT5 ไธญๆ‰“้–‹ MetaEditor
    • ๆ‰“้–‹ MT5-PositionMaster.mq5
    • ๆŒ‰ F7 ็ทจ่ญฏ

็ฌฌๅ››ๆญฅ๏ผšๅ•Ÿๅ‹• EA

  1. ๆ‹–ๅ‹• EA ๅˆฐๅœ–่กจ

    • ๅœจ MT5 ๅฐŽ่ˆชๅ™จไธญๆ‰พๅˆฐ MT5-PositionMaster
    • ๆ‹–ๅ‹•ๅˆฐไปปๆ„ๅœ–่กจ
  2. ้…็ฝฎๅƒๆ•ธ

    Bot Token:        <่ฒผไธŠไฝ ็š„ Bot Token>
    Chat ID:          <่ฒผไธŠไฝ ็š„ Chat ID>
    ่ผช่ฉข้–“้š”:         2 (็ง’)
    ๅฟซ้€Ÿๆจกๅผ:         false (ๆŽจ่–ฆ)
    
  3. ๅ…่จฑ่‡ชๅ‹•ไบคๆ˜“

    • ็ขบไฟๅœ–่กจๅณไธŠ่ง’ๆœ‰ๅœ–ๆจ™๏ผŒไธฆ้–‹ๅ•Ÿๆผ”็ฎ—ๆณ•ไบคๆ˜“

็ฌฌไบ”ๆญฅ๏ผšๆธฌ่ฉฆ

ๅœจ Telegram Bot ไธญ็™ผ้€๏ผš

/help

ๅฆ‚ๆžœๆ”ถๅˆฐๆฉŸๅ™จไบบๆ•™ๅญธ่จŠๆฏ๏ผŒ่ชชๆ˜Ž่จญๅฎšๆˆๅŠŸ๏ผ


ไฝฟ็”จๆŒ‡ๅ—

ๅŸบๆœฌๆ“ไฝœๆต็จ‹

ๆ–นๅผไธ€๏ผšไฝฟ็”จๆŒ‰้ˆ•๏ผˆๆŽจ่–ฆ๏ผ‰

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ 1. ็™ผ้€ /menu ้กฏ็คบๆ“ไฝœ้ขๆฟ                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 2. ้ปžๆ“ŠๆŒ‰้ˆ•ๅŸท่กŒๆ“ไฝœ                          โ”‚
โ”‚    โ€ข ๅนณๅ€‰้กž๏ผš็ซ‹ๅณๅŸท่กŒ                        โ”‚
โ”‚    โ€ข ่จญ็ฝฎ้กž๏ผš็ญ‰ๅพ…่ผธๅ…ฅๅƒนๆ ผ                    โ”‚
โ”‚    โ€ข ๅˆช้™ค้กž๏ผš็ซ‹ๅณๅŸท่กŒ                        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 3. ๆŸฅ็œ‹ๆ“ไฝœ็ตๆžœ                              โ”‚
โ”‚    โ€ข ๆˆๅŠŸ/ๅคฑๆ•—็ตฑ่จˆ                           โ”‚
โ”‚    โ€ข ่ฉณ็ดฐ้Œฏ่ชคไฟกๆฏ                            โ”‚
โ”‚    โ€ข ่‡ชๅ‹•ๅˆทๆ–ฐ้ขๆฟ                            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆ–นๅผไบŒ๏ผšไฝฟ็”จๆŒ‡ไปค

# ่จญ็ฝฎๆญข็›ˆ
/settp 2050.50

# ่จญ็ฝฎๆญขๆ
/setsl 2040.30

# ๅˆช้™คๆญข็›ˆ
/rtp

# ๅˆช้™คๆญขๆ
/rsl

# ๅนณๅ€‰ไธ€ๅŠ
/ch

# ๅนณๆމๅ…จ้ƒจ
/ca

โš™๏ธ ้…็ฝฎ้ธ้ …

EA ่ผธๅ…ฅๅƒๆ•ธ

ๅƒๆ•ธๅ็จฑ ้กžๅž‹ ้ป˜่ชๅ€ผ ่ชชๆ˜Ž
Bot Token string "" Telegram Bot Token๏ผˆๅฟ…ๅกซ๏ผ‰
Chat ID long 0 ๆŽˆๆฌŠ็š„ Telegram Chat ID๏ผˆๅฟ…ๅกซ๏ผ‰
่ผช่ฉข้–“้š” int 2 ่จŠๆฏ่ผช่ฉข้–“้š”๏ผˆ็ง’๏ผ‰๏ผŒๅปบ่ญฐ 1-5
ๅฟซ้€Ÿๆจกๅผ bool false ๆ˜ฏๅฆๅ•Ÿ็”จๅฟซ้€Ÿๆจกๅผ

ๅฟซ้€Ÿๆจกๅผ่ชชๆ˜Ž

ๆจ™ๆบ–ๆจกๅผ (false) - ๆŽจ่–ฆ

  • ๆฏๆฌกๆ“ไฝœๅพŒ่‡ชๅ‹•ๅˆทๆ–ฐ้ขๆฟ
  • ๆ›ดๅฅฝ็š„็”จๆˆถ้ซ”้ฉ—
  • ้Ÿฟๆ‡‰ๆ™‚้–“๏ผš2-6 ็ง’

ๅฟซ้€Ÿๆจกๅผ (true) - ๆ€ง่ƒฝๅ„ชๅ…ˆ

  • ่ทณ้Ž้ขๆฟ่‡ชๅ‹•ๅˆทๆ–ฐ
  • ๆธ›ๅฐ‘ 1 ๆฌก API ่ชฟ็”จ
  • ้Ÿฟๆ‡‰ๆ™‚้–“๏ผš1-4 ็ง’
  • ้œ€่ฆๆ‰‹ๅ‹•็™ผ้€ /menu ๅˆทๆ–ฐ้ขๆฟ

็ถฒ่ทฏๅ„ชๅŒ–

ๅฆ‚ๆžœ้‡ๅˆฐๅ›žๆ‡‰ๆ…ข็š„ๅ•้กŒ๏ผš

  1. ๆชขๆŸฅ็ถฒ็ตกๅปถ้ฒ

    ping api.telegram.org
  2. ่ชฟๆ•ด่ผช่ฉข้–“้š”

    • ้™ไฝŽๅˆฐ 1 ็ง’ๅฏไปฅๆ›ดๅฟซๆŽฅๆ”ถ่จŠๆฏ
    • ๆ้ซ˜ๅˆฐ 5 ็ง’ๅฏไปฅๆธ›ๅฐ‘็ถฒ็ตกๆต้‡

ๅฎ‰ๅ…จๆ€ง

ๅ…ง็ฝฎๅฎ‰ๅ…จๆฉŸๅˆถ

1. Chat ID ้ฉ—่ญ‰

// ๅชๅ…่จฑๆŒ‡ๅฎš็š„ Chat ID ไฝฟ็”จ
if(chatID != InpChatID) {
    Print("[่ญฆๅ‘Š] ๆœชๆŽˆๆฌŠ็š„ Chat ID ๅ˜—่ฉฆ่จชๅ•๏ผš", chatID);
    SendTelegramMessageToChatID("[้Œฏ่ชค] ๆœชๆŽˆๆฌŠ่จชๅ•๏ผ", chatID);
    return;
}

2. ่จŠๆฏๅŽป้‡

// ้˜ฒๆญข้‡่ค‡่™•็†่ˆŠ่จŠๆฏ
if(updateID <= g_lastUpdateID)
    return; // ๅทฒ่™•็†้Ž็š„่จŠๆฏ

3. ้Œฏ่ชค่จˆๆ•ธๅ™จ

// ้€ฃ็บŒ้Œฏ่ชค่ถ…้Ž 10 ๆฌกๆ™‚ๅœๆญข
if(g_errorCount > MAX_ERROR_COUNT) {
    Alert("้Œฏ่ชคๆฌกๆ•ธ้Žๅคš๏ผŒ่ซ‹ๆชขๆŸฅ็ถฒ็ตก้€ฃๆŽฅๅ’Œ้…็ฝฎ");
}

ๆŠ€่ก“็ดฐ็ฏ€

่จŠๆฏ่™•็†ๆต็จ‹

ๆ”ถๅˆฐๆ›ดๆ–ฐ โ†’ ๆๅ– update_id โ†’ ้ฉ—่ญ‰ Chat ID โ†’ ๅˆคๆ–ท้กžๅž‹
    โ”‚              โ”‚                โ”‚              โ”‚
    โ–ผ              โ–ผ                โ–ผ              โ–ผ
ๆชขๆŸฅ้‡่ค‡     ๆ›ดๆ–ฐ offset      ้€š้Ž้ฉ—่ญ‰        message ๆˆ– callback_query
    โ”‚              โ”‚                โ”‚              โ”‚
    โ–ผ              โ–ผ                โ–ผ              โ–ผ
่ทณ้Ž่ˆŠ่จŠๆฏ   ไธ‹ๆฌก่ผช่ฉขไฝฟ็”จ   ่™•็†่จŠๆฏ/ๅ›ž่ชฟ   ๅŸท่กŒ็›ธๆ‡‰ๆ“ไฝœ

็‹€ๆ…‹ๆฉŸ่จญ่จˆ

STATE_IDLE (็ฉบ้–’)
    โ”‚
    โ”œโ”€ ้ปžๆ“Š [๐ŸŽฏ ่จญ็ฝฎTP] โ”€โ”€โ†’ STATE_WAITING_TP (็ญ‰ๅพ…่ผธๅ…ฅๆญข็›ˆ)
    โ”‚                           โ”‚
    โ”‚                           โ”œโ”€ ่ผธๅ…ฅๆ•ธๅญ— โ”€โ”€โ†’ ๅŸท่กŒ่จญ็ฝฎ โ”€โ”€โ†’ STATE_IDLE
    โ”‚                           โ”œโ”€ ่ผธๅ…ฅ cancel โ”€โ”€โ†’ STATE_IDLE
    โ”‚                           โ””โ”€ ้ปžๆ“Šๅ…ถไป–ๆŒ‰้ˆ• โ”€โ”€โ†’ ่‡ชๅ‹•้‡็ฝฎ โ”€โ”€โ†’ STATE_IDLE
    โ”‚
    โ””โ”€ ้ปžๆ“Š [๐Ÿ›ก๏ธ ่จญ็ฝฎSL] โ”€โ”€โ†’ STATE_WAITING_SL (็ญ‰ๅพ…่ผธๅ…ฅๆญขๆ)
                                โ”‚
                                โ”œโ”€ ่ผธๅ…ฅๆ•ธๅญ— โ”€โ”€โ†’ ๅŸท่กŒ่จญ็ฝฎ โ”€โ”€โ†’ STATE_IDLE
                                โ”œโ”€ ่ผธๅ…ฅ cancel โ”€โ”€โ†’ STATE_IDLE
                                โ””โ”€ ้ปžๆ“Šๅ…ถไป–ๆŒ‰้ˆ• โ”€โ”€โ†’ ่‡ชๅ‹•้‡็ฝฎ โ”€โ”€โ†’ STATE_IDLE

๐Ÿ“„ ่จฑๅฏ่ญ‰

ๆœฌ้ …็›ฎๆŽก็”จ MIT ่จฑๅฏ่ญ‰ - ่ฉณ่ฆ‹ LICENSE ๆ–‡ไปถ