ประเมินผลตอบแทน
ลองดูกันว่าพอร์ตโฟลิโอที่เราเลือกจะให้ผลลัพธ์เป็นอย่างไรเมื่อเทียบกับการลงทุนใน SPY โดยตรง เพื่อตรวจสอบว่าการพยากรณ์ของเรามีแนวโน้มที่ดีหรือไม่ แม้ว่าค่า R\(^2\) จะต่ำก็ตาม
เราจะกำหนดมูลค่าเริ่มต้นของการลงทุนที่ $1,000 จากนั้นวนลูปผ่านผลตอบแทนจากการพยากรณ์และจาก SPY โดยใช้ผลตอบแทนรายเดือนจากพอร์ตโฟลิโอและ SPY มาปรับใช้กับยอดเงินเริ่มต้น วิธีนี้จะทำให้เห็นภาพการเติบโตของเงินลงทุนในแต่ละเดือน และเปรียบเทียบผลลัพธ์โดยรวมของการพยากรณ์กับ SPY จากนั้นจึงพล็อตกราฟพอร์ตโฟลิโอจากการพยากรณ์เพื่อเปรียบเทียบกับ SPY
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- กำหนดค่าแรกของทั้ง
algo_cashและspy_cashให้เท่ากับจำนวนเงินเดียวกัน (cash) - คูณ
cashในลูปtest_returnsด้วย1 + rเพื่อนำผลตอบแทนมาปรับกับcash - ทำแบบเดียวกับลูป
test_returnsโดยในลูปประสิทธิภาพของ SPY ให้เพิ่มcashเข้าไปในspy_cashหลังจากคูณด้วย1 + rเพื่อนำผลตอบแทนมาปรับกับcash
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Calculate the effect of our portfolio selection on a hypothetical $1k investment
cash = 1000
algo_cash, spy_cash = [cash], ____ # set equal starting cash amounts
for r in test_returns:
cash *= 1 + r
algo_cash.append(cash)
# Calculate performance for SPY
cash = 1000 # reset cash amount
for r in returns_monthly['SPY'].iloc[train_size:]:
cash ____ ____
____
print('algo returns:', (algo_cash[-1] - algo_cash[0]) / algo_cash[0])
print('SPY returns:', (spy_cash[-1] - spy_cash[0]) / spy_cash[0])