纳斯达克指数伪行情(过去一年日线)

jupyter
2509
legacy
Published

2025-09-19

# 纳斯达克指数伪行情(过去一年日线)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 为可重复性设置随机种子
np.random.seed(42)
# 生成过去一年的工作日(不含周末)日期序列
try:
    # 使用上海时区作为本地时间
    today = pd.Timestamp.now(tz='Asia/Shanghai').normalize()
except Exception:
    # 回退到本地无时区的今天
    today = pd.Timestamp.today().normalize()

start = today - pd.offsets.DateOffset(years=1)
dates = pd.bdate_range(start=start, end=today)  # B 表示工作日频率

len(dates), dates.min(), dates.max()
(262,
 Timestamp('2024-10-07 00:00:00+0800', tz='Asia/Shanghai'),
 Timestamp('2025-10-07 00:00:00+0800', tz='Asia/Shanghai'))
# 使用几何布朗运动(GBM)模拟收盘价
S0 = 16000.0   # 初始指数水平(仅为示例)
mu = 0.10      # 年化期望收益率(示例)
sigma = 0.25   # 年化波动率(示例)
dt = 1.0 / 252 # 交易日步长

n = len(dates)
# 随机标准正态序列
z = np.random.normal(size=n)
# 连续复利收益率增量
dr = (mu - 0.5 * sigma**2) * dt + sigma * np.sqrt(dt) * z
# 价格路径(排除第一个偏移,直接累乘)
prices = S0 * np.exp(np.cumsum(dr))

df = pd.DataFrame({
    'Close': prices
}, index=dates)

df.head()
Close
2024-10-07 00:00:00+08:00 16130.050974
2024-10-08 00:00:00+08:00 16099.358262
2024-10-09 00:00:00+08:00 16268.852089
2024-10-10 00:00:00+08:00 16668.332271
2024-10-11 00:00:00+08:00 16611.511128
# 绘制日线收盘价走势图
plt.figure(figsize=(12, 5))
df['Close'].plot(color='tab:blue', lw=1.5)
plt.title('纳斯达克指数 - 伪行情(过去一年,日线收盘)', fontname='Microsoft YaHei', fontsize=14)
plt.xlabel('日期', fontname='Microsoft YaHei')
plt.ylabel('指数水平', fontname='Microsoft YaHei')
plt.grid(True, ls='--', alpha=0.4)
plt.tight_layout()
plt.show()

# 查看尾部数据
df.tail()
Close
2025-10-01 00:00:00+08:00 17373.886430
2025-10-02 00:00:00+08:00 17500.520362
2025-10-03 00:00:00+08:00 17720.156423
2025-10-06 00:00:00+08:00 17468.125275
2025-10-07 00:00:00+08:00 17456.519488