แปลงข้อมูล Intra-Day ที่ไม่สม่ำเสมอให้เป็นแบบสม่ำเสมอ
ก่อนหน้านี้ได้เรียนรู้วิธีสร้างชุดข้อมูลรายวันแบบสม่ำเสมอจากข้อมูลรายวันที่ไม่สม่ำเสมอ ในแบบฝึกหัดนี้จะสร้างข้อมูล Intra-Day แบบสม่ำเสมอจากชุดข้อมูลที่ไม่สม่ำเสมอ
ข้อมูลทางการเงิน Intra-Day มักไม่ครอบคลุมเต็ม 24 ชั่วโมง เนื่องจากตลาดส่วนใหญ่ปิดทำการในช่วงเวลาหนึ่งของวัน แบบฝึกหัดนี้สมมติว่าตลาดเปิดที่ 9AM และปิดที่ 4PM ในวันจันทร์ถึงศุกร์
ข้อมูลอาจไม่มีค่าสังเกตที่ตรงกับเวลาเปิดหรือปิดตลาดพอดี จึงไม่สามารถใช้ start() และ end() แบบเดียวกับข้อมูลรายวันได้ ต้องระบุ date-time เริ่มต้นและสิ้นสุดเองเพื่อสร้างลำดับที่สม่ำเสมอ
ลำดับ date-time ที่สม่ำเสมอจะรวมช่วงเวลาที่ตลาดปิดด้วย แต่สามารถใช้การ subset ตามช่วงเวลาในวันของ xts เพื่อดึงเฉพาะช่วงที่ตลาดเปิดทำการได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การนำเข้าและจัดการข้อมูลทางการเงินใน R
คำแนะนำการฝึกหัด
- เติมคำสั่งให้สมบูรณ์เพื่อสร้างลำดับ date-time แบบ 30 นาทีระหว่าง 09:00 วันจันทร์ถึง 16:00 วันศุกร์
- กำหนดค่า
xและorder.byเพื่อสร้างออบเจกต์ xts แบบ zero-width - สร้าง
merged_xtsโดย mergeirregular_xtsกับregular_xtsแล้วใช้อาร์กิวเมนต์fillเพื่อแทนที่ค่าNAด้วยค่าก่อนหน้าโดยใช้na.locf() - ใช้การ subset ตามช่วงเวลาในวันของ xts เพื่อดึงค่าสังเกตระหว่าง 9AM ถึง 4PM ของทุกวัน แล้วกำหนดผลลัพธ์ให้กับ
trade_day
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create a regular date-time sequence
regular_index <- seq(as.POSIXct("2010-01-04 __:__"), as.POSIXct("2010-01-08 __:__"), by = "30 min")
# Create a zero-width xts object
regular_xts <- xts(x = ___, order.by = ___)
# Merge irregular_xts and regular_xts, filling NA with their previous value
merged_xts <- merge(___, ___, fill = ___)
# Subset to trading day (09:00-16:00)
trade_day <- merged_xts[___]