อ่านข่าว Forex ด้วย Python

Kritthanit Malathong
1 min readDec 17, 2021

--

Post id: 20, How to read forex calendar with python

สวัสดีครับทุกคน

เนื้อหาในวันนี้อาจจะดูยาก แต่ก็สั้นมากเช่นกัน แต่ในความสั้นนั้นมีความยากซ่อนอยู่เยอะเลย ฟังดูแล้วงงไหมครับ ฮ่าๆๆๆ งั้นเข้าเรื่องกันเลยดีกว่า

อ่านข่าว forex ได้จากที่ไหนบ้าง

ตัวอย่างปฎิทินข่าวจาก Forexfactory

มีหลายที่เลยครับ เท่าที่ผมรู้ก็อย่างเช่น

Forex factory: https://www.forexfactory.com/calendar?week=this

DailyFx: https://www.dailyfx.com/economic-calendar

MQL5: https://www.mql5.com/en/economic-calendar

Trading view: https://th.tradingview.com/markets/currencies/economic-calendar/

ข่าวเยอะสุดก็จะเป็น DailyFx เว็บนี้บอกข่าวเกี่ยวกับเศรษฐกิจทั่วโลกเลย ซึ่งสำหรับผมมันเยอะไป อย่างเช่นข่าวจากประเทศอินเดียแบบนี้ ซึ่งผมไม่เคยเทรดเงินอินเดียเลย แต่ถ้าเราเขียนโปรแกรมจัดการ เรื่องข่าวเยอะเกินไปก็ไม่ใช่ปัญหา

แต่ปัญหาคือ impact

URL ทั้งหมดข้างต้นนั้น เวลาใช้ python อ่านหน้าเว็บเข้ามาแล้ว ค่า impact มันจะไม่มาด้วย (อาจเป็นเพราะค่า impact มันแสดงผลมาจาก javascript อีกที) ซึ่งถ้าใครอยากได้แค่หัวข้อข่าว กับสกุลเงินที่มีผลกระทบ ก็คงไม่เป็นอะไร แต่ผมอยากได้ impact ของมันด้วย นี่แหละปัญหา ก็เลยต้องใช้เวลาหานานเลยกว่าจะได้แหล่งที่มาของข่าว ที่สามารถอ่าน impact ได้ นั่นก็คือ….

อันแรก อยู่ในรูปแบบของ MXL

https://nfs.faireconomy.media/ff_calendar_thisweek.xml?version=94d2e27fcd30628e11e5974632896a18

อันที่สอง อยู่ในรูปแบบของ json

https://nfs.faireconomy.media/ff_calendar_thisweek.json?version=94d2e27fcd30628e11e5974632896a18

ซึ่งผมเลือกอ่านแบบ json เพราะรูปแบบข้อมูลของมันอยู่ในรูปแบบข้อมูลประเภท List เหมือนที่ผมต้องการพอดี

โค้ดในการอ่านมันสั้นมากๆ เลยครับ มีแค่ 4 บรรทัดเอง ตามนี้

import requests, json
json_url = 'https://nfs.faireconomy.media/ff_calendar_thisweek.json?version=94d2e27fcd30628e11e5974632896a18'
res = requests.get(json_url)
res.encoding = 'utf-8'
data = json.loads(res.text)

ข้อมูลจะถูกเก็บไว้ในตัวแปร data แบบ list ประมาณนี้ครับ

..
..
{'title': 'Final CPI y/y',
'country': 'EUR',
'date': '2021-12-17 10:00:00',
'impact': 'Low',
'forecast': '4.9%',
'previous': '4.9%'},
{'title': 'BOE Quarterly Bulletin',
'country': 'GBP',
'date': '2021-12-17 12:00:00',
'impact': 'Low',
'forecast': '',
'previous': ''},
{'title': 'Foreign Securities Purchases',
'country': 'CAD',
'date': '2021-12-17 13:30:00',
'impact': 'Low',
'forecast': '18.50B',
'previous': '20.02B'},
{'title': 'FOMC Member Waller Speaks',
'country': 'USD',
'date': '2021-12-17 18:00:00',
'impact': 'Medium',
'forecast': '',
'previous': ''}]

ง่ายมากเลยใช่ไหมละครับ แค่ 4 บรรทัดเอง (ไม่รวม import นะ) เพราะแบบนี้แหละครับผมถึงบอกว่ามันง่าย

ส่วนที่ยากคือ การหาแหล่งที่มาของข้อมูล ซึ่งตรงนี้ผมใช้เวลาหานานมากกว่าจะได้แหล่งข้อมูลแบบที่ต้องการ เลยเอามาเขียนเก็บเอาไว้ครับ เผื่อใครกำลังหาข้อมูลแบบนี้อยู่ จะได้ไม่ต้องเสียเวลานานแบบผมอีก

--

--

No responses yet