ดึงข้อมูลราคาซื้อขายหุ้นจาก Yahoo โดยใช้ python แล้วบันทึกเก็บในรูป CSV

เผยแพร่ครั้งแรก:

|

ปรับปรุงล่าสุด

เก็บที่

ดึงข้อมูลราคาซื้อขายหุ้นจาก Yahoo แบบง่าย ๆ โดยใช้ python

เนื่องจากมิตรสหายท่านหนึ่งชอบเล่นหุ้น และอยากได้ข้อมูลหุ้นมาใช้ในการวิเคราะห์ จึงมาขอคำปรึกษาว่าจะทำอย่างไรจึงจะดาวน์โหลดข้อมูลหุ้นมาเก็บในรูปแบบ Excel เพื่อใช้วิเคราะห์หุ้นต่อไป

อยากบอกมิตรสหายท่านนั้นไปว่า จะทำไปทำไม เล่นหุ้นก็เหมือนเล่นหวย ดูกราฟดูโน่นนี่นั่นมันก็ไม่ทำให้วิเคราะห์หุ้นได้ดีขึ้นมาหรอก หลับหูหลับตาแทงไปเถอะ…

แต่ด้วยความที่ข้าพเจ้าเป็นคนบอบบางและสุภาพมาก ก็เลยบอกว่าเอามา 5,000 เดี๋ยวเขียนโค้ดดึงข้อมูลให้…

เป็นคนมีมิตรจิตมิตรใจ พร้อมรับใช้ช่วยเหลือทุกคนหากมีค่าบริการ…

ความจริง การใช้ python ในการดึงข้อมูลจากเว็บบริการข้อมูลเช่น Yahoo finance หรือ google เป็นเรื่องธรรมดาสามัญและมีคนทำ Library ให้เรียกใช้ง่ายดายมาก โด้ดที่ใช้ก็อาศัย library ของ 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

หกบรรทัดเท่านั้นเอง ดึงข้อมูลราคาซื้อขายหุ้นจาก Yahoo ด้วยความช่วยเหลือจาก pandas-datareader ก็ถึงข้อมูลการซื้อขายหุ้นในอดีตมาใส่ในไฟล์ csv ได้แล้ว

Exit mobile version