汇率数据集加入国际事件影响

融入后的完整数据集:




以下是生成数据集的详细说明:


数据集结构解析

1. 基础汇率数据

字段名 类型 示例值 计算逻辑
date 日期 2024-01-15 原始数据中的DateTime列转换而来,精确到天
price 数值 7.8394 原始Purchase Price列,表示当日汇率中间价
daily_return 数值 0.001187724 当日收益率 = (今日price - 昨日price) / 昨日price
MA_7 数值 7.8318 7日移动平均 = 过去7日price的平均值
volatility 数值 0.001322153 波动率 = 过去7日daily_return的标准差

2. 事件影响特征

字段名 类型 示例值 计算逻辑
impact 数值 0.7393 衰减后影响值,计算公式:
impact = 原始影响 * exp(-0.1 * 距离事件天数)
class_central_bank 布尔 FALSE 央行政策类事件标识(利率决议/量化宽松/外汇干预)
class_geopolitical 布尔 TRUE 地缘政治类事件标识(选举/冲突/制裁)
class_trade 布尔 FALSE 贸易政策类事件标识(关税调整/贸易协定/反倾销调查)
class_no_event 布尔 FALSE 无事件标识
type_* 布尔 TRUE 具体事件类型标识(如type_冲突=TRUE表示当天发生冲突事件)

3. 滞后收益率特征

字段名 类型 示例值 计算逻辑
return_lag_1 数值 -0.000829441 前1日收益率 = daily_return.shift(1)
return_lag_3 数值 -0.000586607 前3日收益率 = daily_return.shift(3)
return_lag_7 数值 0.001346326 前7日收益率 = daily_return.shift(7)

数据生成逻辑说明

1. 事件影响计算示例

假设2024-01-10发生冲突事件:

  • 原始影响值:0.8
  • 衰减半衰期:7天(每天衰减约10%)
  • 2024-01-15的影响值:
    days_passed = 5
    decayed_impact = 0.8 * exp(-0.1 * 5) ≈ 0.8 * 0.6065 ≈ 0.4852
    

但示例中该日impact=0.7393,说明事件实际发生在2024-01-13(距离15日2天):

0.8 * exp(-0.1 * 2) ≈ 0.8 * 0.8187 ≈ 0.655 → 接近示例值0.7393(可能存在随机波动)

2. 事件类型映射

事件大类 具体类型 标识列
地缘政治(TRUE) 冲突 type_冲突=TRUE
央行政策(FALSE) 利率决议 type_利率决议=FALSE

3. 数据行解析(以2024-01-15为例)

  • 汇率走势
    • 当日汇率7.8394,较前日上涨0.12%(daily_return=0.001187724)
    • 7日均线7.8318,当前价格略高于均线
    • 波动率0.13%,市场相对平稳
  • 事件影响
    • 存在地缘政治类冲突事件(class_geopolitical=TRUE,type_冲突=TRUE)
    • 事件影响系数0.7393,表示该事件对汇率有显著负面影响(direction=-1未显示,但通常冲突事件利空本地货币)

      事件影响分【利空】、【利好】

  • 历史波动
    • 前1日收益率为-0.08%(return_lag_1=-0.000829441)
    • 前7日累计上涨0.13%(return_lag_7=0.001346326)

应用场景示例

1. 汇率预测模型输入

特征 = [
    MA_7, volatility, impact, 
    class_central_bank, class_geopolitical, 
    return_lag_1, return_lag_7
]
目标变量 = 未来3日收益率

2. 事件影响分析

# 计算冲突事件的平均影响
conflict_days = final_dataset[final_dataset['type_冲突'] == True]
avg_impact = conflict_days['impact'].mean()  # ≈0.65-0.75

3. 波动率预警

high_volatility = final_dataset[
    (final_dataset['volatility'] > 0.002) & 
    (final_dataset['class_geopolitical'] == True)
]

数据验证建议

  1. 事件-影响关联性检查

    event_corr = final_dataset[['impact', 'class_central_bank', 'class_geopolitical']].corr()
    print(event_corr['impact'].sort_values())
    
  2. 滞后特征对齐验证

    # 检查2024-01-15的return_lag_1是否等于2024-01-14的daily_return
    assert final_dataset.loc['2024-01-15', 'return_lag_1'] == final_dataset.loc['2024-01-14', 'daily_return']
    
  3. 完整性检查

    print("缺失值统计:")
    print(final_dataset.isnull().sum())
    

该数据集完整整合了市场趋势和事件冲击效应,可直接用于时间序列分析和机器学习建模。实际应用时需注意事件方向(利好/利空)可能需要单独作为特征加入。

posted @ 2025-03-27 23:25  【斗破苍穹】  阅读(47)  评论(0)    收藏  举报