시작하기무료로 시작하기

드리프트 포함 랜덤 워크

이전 연습 문제에서는 랜덤 워크를 따르는 주가를 시뮬레이션했어요. 이번에는 두 가지를 확장해 보겠습니다.

  • 드리프트가 있는 랜덤 워크를 살펴보겠습니다. 주가처럼 많은 시계열은 랜덤 워크이지만 시간이 지나면서 위로 조금씩 이동(드리프트)하는 경향이 있어요.
  • 이전 연습 문제에서는 랜덤 워크의 잡음이 가법적이었어요. 즉, 무작위 정규 분포의 가격 변화가 이전 가격에 더해졌죠. 하지만 이렇게 더하면 이론적으로 가격이 음수가 될 수 있어요. 이제는 잡음을 곱셈형으로 바꿔 보겠습니다. 무작위 정규 분포의 변화를 총수익률이 되도록 1을 더한 뒤, 이를 이전 가격에 곱해요.

이 연습은 강의의 일부입니다

Python으로 배우는 시계열 분석

강의 보기

연습 안내

  • 평균 0.1%, 표준편차 1%인 정규분포에서 500개의 곱셈형 "steps"(수익률)를 np.random.normal()로 생성하고, 총수익률을 얻기 위해 1을 더하세요.
  • 주가 P를 시뮬레이션하세요:
    • numpy의 .cumprod() 메서드로 steps의 누적곱을 구하세요.
    • 총수익률의 누적곱에 100을 곱해 시작값이 100이 되도록 하세요.
  • 드리프트가 있는 랜덤 워크를 그래프로 그리세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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()
코드 편집 및 실행