เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ราคาหุ้นความถี่สูง

ข้อมูลราคาหุ้นที่มีความถี่สูงสามารถจำลองด้วยกระบวนการ MA(1) ได้เป็นอย่างดี จึงเป็นตัวอย่างการนำโมเดลในบทนี้ไปใช้งานจริง

DataFrame intraday เก็บราคาหุ้น Sprint (สัญลักษณ์ ticker "S") ของวันที่ 1 กันยายน 2017 โดยบันทึกข้อมูลทุก 1 นาที ตลาดหุ้นเปิดทำการ 6.5 ชั่วโมง (390 นาที) ตั้งแต่ 9:30 น. ถึง 16:00 น.

ก่อนจะวิเคราะห์ข้อมูล time series ได้ จะต้องทำความสะอาดข้อมูลเล็กน้อยในแบบฝึกหัดนี้และอีกสองแบบถัดไป เมื่อดูแถวแรก ๆ ของข้อมูลจะพบหลายสิ่ง ได้แก่ ไม่มี header ของคอลัมน์ ข้อมูลไม่ได้ประทับเวลาตั้งแต่ 9:30 ถึง 16:00 แต่ระบุเป็นตัวเลข 0 ถึง 390 และวันที่แรกมีรูปแบบที่แปลกตาคือ "a1504272600" ตัวเลขหลัง "a" คือ Unix time ซึ่งหมายถึงจำนวนวินาทีนับตั้งแต่วันที่ 1 มกราคม 1970 ชุดข้อมูลนี้ใช้วิธีดังกล่าวเพื่อแยกข้อมูล intraday แต่ละวัน

หากตรวจสอบประเภทข้อมูล จะพบว่าคอลัมน์ DATE มี dtype เป็น object ซึ่งหมายความว่าเป็นสตริง จึงต้องแปลงเป็นตัวเลขก่อนที่จะจัดการกับข้อมูลที่หายไปได้

แหล่งที่มาของข้อมูลรายนาทีคือ Google Finance (ดูวิธีดาวน์โหลดข้อมูล ที่นี่)

โมดูล datetime ถูก import ไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์อนุกรมเวลาด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เปลี่ยนวันที่แรกให้เป็นศูนย์ด้วย .iloc[0,0] โดยตรง
  • เปลี่ยน header ของทั้งสองคอลัมน์เป็น 'DATE' และ 'CLOSE' โดยกำหนดค่า intraday.columns ให้เท่ากับลิสต์ที่มีสตริงทั้งสองนั้น
  • ใช้แอตทริบิวต์ .dtypes ของ pandas (ไม่มีวงเล็บ) เพื่อดูประเภทของข้อมูลในแต่ละคอลัมน์
  • แปลงคอลัมน์ 'DATE' ให้เป็นตัวเลขด้วยฟังก์ชัน to_numeric() ของ pandas
  • กำหนดให้คอลัมน์ 'DATE' เป็น index ใหม่ของ intraday โดยใช้เมธอด .set_index() ของ pandas โดยส่งสตริง 'DATE' เป็นอาร์กิวเมนต์ (ส่งแค่ ชื่อ ของคอลัมน์ ไม่ใช่ทั้งคอลัมน์)

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# import datetime module
import datetime

# Change the first date to zero
intraday.___ = 0

# Change the column headers to 'DATE' and 'CLOSE'
intraday.columns = ___

# Examine the data types for each column
print(intraday.dtypes)

# Convert DATE column to numeric
intraday['DATE'] = pd.to_numeric(____)

# Make the `DATE` column the new index
intraday = ____
แก้ไขและรันโค้ด