ดึงราคาหุ้น จาก yahoo (หรือแหล่งอื่นใด) มีวิธีใดสะดวกบ้าง? คำถามนี้มาจากมิตรสหายท่านหนึ่งชอบเล่นหุ้น และอยากได้ข้อมูลหุ้นมาใช้ในการวิเคราะห์ จึงมาขอคำปรึกษาว่าจะทำอย่างไรจึงจะดาวน์โหลดข้อมูลหุ้นมาเก็บในรูปแบบ Excel เพื่อใช้วิเคราะห์หุ้นต่อไป
อยากบอกมิตรสหายท่านนั้นไปว่า จะทำไปทำไม เล่นหุ้นก็เหมือนเล่นหวย ดูกราฟดูโน่นนี่นั่นมันก็ไม่ทำให้วิเคราะห์หุ้นได้ดีขึ้นมาหรอก หลับหูหลับตาแทงไปเถอะ…
แต่ด้วยความที่ข้าพเจ้าเป็นคนบอบบางและสุภาพมาก ก็เลยบอกว่าเอามา 5,000 เดี๋ยวเขียนโค้ดดึงข้อมูลให้…
เป็นคนมีมิตรจิตมิตรใจ พร้อมรับใช้ช่วยเหลือทุกคนหากมีค่าบริการ…
ดึงราคาหุ้นด้วย python
ความจริง การใช้ python ในการดึงข้อมูลจากเว็บบริการข้อมูลเช่น Yahoo finance หรือ google เป็นเรื่องธรรมดาสามัญและมีคนทำ Library ให้เรียกใช้ง่ายดายมาก โด้ดที่ใช้ก็อาศัย library ของ pandas-datareader
กรุณาแวะไปเยี่ยมชมเว็บไซต์ของผู้จัดทำและทำความเข้าใจวิธีใช้งานได้ที่ https://pandas-datareader.readthedocs.io/en/latest/index.html
และเข้าไปดู source code ได้ที่ https://github.com/pydata/pandas-datareader
ลองอ่านทำความเข้าใจดูก็ไม่ยากเท่าไหร่
เอ่อ ต้องบอกนิดนึง ข้าพเจ้าใช้ Anaconda เวอร์ชันสำหรับ Python 3 ในการทำตัวอย่างครั้งนี้
1 – สมมติว่าทุกท่านลง Anaconda เรียบร้อย ก็ install library ได้เลย
pip install pandas_datareader
ตรงนี้ไม่น่ามีปัญหาอะไร
2 – ต่อมาก็จะเขียนโค้ด โดยใช้ spyder
โค้ดสั้น ๆ เพียงแค่ 6 บรรทัด คือ
import pandas_datareader as web
import datetime
start = datetime.datetime(2017, 11, 1)
end = datetime.datetime(2018, 11, 30)
df = web.DataReader("AAV.BK", 'yahoo', start, end)
df.to_csv('stock_prices_volumes.csv')
คำอธิบายโค้ด
บรรทัดแรก เราดึง library pandas_datareader มาใช้
บรรทัดที่สอง ดึง datetime ซึ่งเป็น module มาใช้
บรรทัดที่สาม กำหนดค่าว่าต้องการเริ่มดึงข้อมุลจากวันใด (รูปแบบตาม module คือ ปี,เดือน,วัน
บรรทัดที่สี่ กำหนดค่าวันสิ้นสุดที่ต้องการดึงข้อมูล
บรรทัดที่ห้า ระบุตัวหุ้นและต้นทาง สำหรับรูปแบบและวิธีการใช้งาน ลองไปอ่านเว็บต้นทางที่ได้เอ่ยอ้างถึงข้างต้น ในนี้ข้าพเจ้าดึงข้อมูลหุ้น AAV จาก Yahoo finance (สำหรับข้อมูลจากอันอื่น ลองดูในเว็บที่อ้างอิงข้างต้น) โดยดึงข้อมูลจากวันที่ 1 พฤศจิกายน ค.ศ. 2017 จนถึง 30 พฤศจิกายน ค.ศ. 2018 โดยการระบุวันอยู่ในบรรทัดที่สามและสี่
บรรทัดที่หก จะบันทึกข้อมูลที่ดึงมาไว้ในรูปแบบ csv ในที่นี้ตั้งชื่อไฟล์ว่า stock_prices_vloumes.csv
หกบรรทัดเท่านั้นเอง ด้วยความช่วยเหลือจาก pandas-datareader ก็ถึงข้อมูลการซื้อขายหุ้นในอดีตมาใส่ในไฟล์ csv ได้แล้ว
แค่นี้เอง ง่ายมั้ย?
…แล้วมิตรสหายท่านนั้นก็ยังไม่จ่ายเงินค่าโค้ดนี้เลย…เสียใจมาก
เริ่มต้นเรียนภาษา python ง่าย ๆ เริ่มจาก “Hello, World!”
Discover more from Data Revol
Subscribe to get the latest posts sent to your email.