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

เพิ่ม Drift เข้าไป

ในแบบฝึกหัดที่แล้ว คุณได้จำลองราคาหุ้นที่เป็นไปตาม random walk แบบฝึกหัดนี้จะต่อยอดจากนั้นใน 2 ด้าน

  • จะพิจารณา random walk แบบที่มี drift หลายๆ time series เช่น ราคาหุ้น เป็น random walk แต่มีแนวโน้มที่จะค่อยๆ ปรับตัวขึ้นเรื่อยๆ ตามเวลา
  • ในแบบฝึกหัดที่แล้ว noise ใน random walk เป็นแบบบวก (additive) กล่าวคือการเปลี่ยนแปลงของราคาแบบ normal สุ่มจะถูกบวกเข้ากับราคาล่าสุด อย่างไรก็ตาม วิธีนี้อาจทำให้ราคาติดลบได้ในทางทฤษฎี แบบฝึกหัดนี้จึงเปลี่ยนมาใช้ noise แบบคูณ (multiplicative) แทน โดยบวก 1 เข้ากับการเปลี่ยนแปลงแบบ normal สุ่มเพื่อให้ได้ผลตอบแทนรวม แล้วนำไปคูณกับราคาล่าสุด

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

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

ดูคอร์ส

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

  • สร้างขั้นตอนการคูณแบบ normal สุ่ม 500 ขั้น ที่มีค่าเฉลี่ย 0.1% และส่วนเบี่ยงเบนมาตรฐาน 1% โดยใช้ np.random.normal() ซึ่งขั้นตอนเหล่านี้แทนผลตอบแทน แล้วบวก 1 เพื่อให้ได้ผลตอบแทนรวม
  • จำลองราคาหุ้น P:
    • คูณสะสมขั้นตอนต่างๆ โดยใช้เมธอด .cumprod() ของ numpy
    • คูณผลคูณสะสมของผลตอบแทนรวมด้วย 100 เพื่อให้ได้ค่าเริ่มต้นเท่ากับ 100
  • พล็อต random walk ที่จำลองขึ้นพร้อม drift

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

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

# Generate 500 random steps
steps = np.random.normal(loc=___, scale=___, size=___) + ___

# Set first element to 1
steps[0]=1

# Simulate the stock price, P, by taking the cumulative product
P = ___ * np.cumprod(___)

# Plot the simulated stock prices
plt.plot(___)
plt.title("Simulated Random Walk with Drift")
plt.show()
แก้ไขและรันโค้ด