前言
数据科学圈的严肃赛事,日本三井物产主办的kaggle商品预测挑战赛简直就是时序建模领域的精准练兵场。
这一次的竞赛直击大宗商品贸易的核心痛点,拥有多个市场价差序列预测。数据源含金量直接拉满!
涵盖了LME伦敦交易所、JPX日本交易所等全球核心市场,金属、能源】外汇三大类数据全量开放。
但是难度可不小,不仅要处理跨时区数据同步问题,还要应对政策突变等不可控的变量,对模型的鲁棒性和适应性是一个极大的考验。更关键的是评估指标用的还是改良版的夏普比率,直接和真实交易的风险调整后收益挂钩,完全对标实战标准。
适合人群
金融工程专业寻求实战突破的在校生、量化交易岗位需要提升的从业者、投资研究领域希望构建量化能力的研究员、追求稳定超额的个人交易者。
你能得到什么?
- 在进攻机构量化部门脱颖而出。
- 在资管公司策略研究岗位展现独特价值。
- 在自营交易团队中称为核心决策者。
- 在投资领域建立专业权威。
这不是一个简单的AI技术分享,而是能直接提升你市场盈利能力的实战体系
从理论到时间,从数据到收益-----掌握商品期货定价的核心技术,让你在量化交易的道路上少走很多的弯路。
废话不多说,正文开始
环境配置
安装pytorch、tensorflow
# 检查PyTorch
import torch
print("PyTorch版本:", torch.__version__)
print("CUDA是否可用:", torch.cuda.is_available())
print("CUDA版本:", torch.version.cuda if torch.cuda.is_available() else "不可用")
# 简单的张量操作测试
x = torch.tensor([1.0, 2.0, 3.0])
y = torch.tensor([4.0, 5.0, 6.0])
z = x + y
print("张量加法测试:", z)
# 检查设备信息
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
# 检查TensorFlow
import tensorflow as tf
print("TensorFlow版本:", tf.__version__)
print("TensorFlow路径:", tf.__file__)
# 检查GPU支持
print("GPU设备列表:", tf.config.list_physical_devices('GPU'))
print("可用的GPU数量:", len(tf.config.list_physical_devices('GPU')))
# 简单的TensorFlow操作测试
hello = tf.constant('Hello, TensorFlow!')
print(hello.numpy().decode())
# 创建简单的计算
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])
c = tf.matmul(a, b)
print("矩阵乘法测试:")
print(c.numpy())
# 综合信息和系统检查
import sys
import platform
print("Python版本:", sys.version)
print("操作系统:", platform.system(), platform.release())
print("Anaconda环境信息:")
# 检查当前环境
import os
print("当前环境:", os.environ.get('CONDA_DEFAULT_ENV', 'base'))
print("\n=== 深度学习框架状态 ===")
print("✓ PyTorch 安装成功" if 'torch' in sys.modules else "✗ PyTorch 未正确安装")
print("✓ TensorFlow 安装成功" if 'tensorflow' in sys.modules else "✗ TensorFlow 未正确安装")
查看依赖包是否已完成安装
# 综合信息和系统检查
import sys
import platform
import importlib
import math
import itertools
import gc
import os
import warnings
from typing import Any, Dict, List, Tuple, Optional, Union
from datetime import datetime
# 数据科学和数值计算
import numpy as np
import pandas as pd
# 机器学习和特征工程
from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import RFE, SelectFromModel, mutual_info_regression
from sklearn.inspection import permutation_importance
from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import Lasso, Ridge, ElasticNet
from sklearn.multioutput import MultiOutputRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
from sklearn.model_selection import KFold, train_test_split
# 统计分析和节假日
from scipy.stats import skew, kurtosis
import holidays
# 可视化
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import rcParams
from IPython.display import display, HTML
# 机器学习框架
import lightgbm as lgb
import xgboost as xgb
import catboost as cb
# 深度学习和优化
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset, Dataset
import optuna
from optuna.samplers import TPESampler
from optuna.pruners import MedianPruner
# 可解释AI
import shap
# 系统监控
import psutil
# 警告设置
warnings.filterwarnings("ignore", category=RuntimeWarning)
warnings.filterwarnings("ignore", category=FutureWarning, module="seaborn")
warnings.filterwarnings('ignore')
# 设置图形样式
plt.rcParams['font.sans-serif'] = ['DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
sns.set_style("whitegrid")
plt.rcParams['figure.figsize'] = [12, 8]
# 检查包是否已安装
import importlib
import sys
# 要检查的包列表
packages = [
'numpy', 'pandas', 'sklearn', 'matplotlib', 'seaborn',
'xgboost', 'lightgbm', 'catboost', 'jupyter', 'optuna',
'shap', 'scipy', 'psutil', 'holidays', 'torch',
'tensorflow', 'keras', 'transformers', 'datasets',
'accelerate', 'wandb', 'tqdm'
]
print("检查包安装状态:")
print("=" * 50)
installed = []
not_installed = []
for package in packages:
try:
# 特殊处理:scikit-learn的包名是sklearn
if package == 'sklearn':
importlib.import_module('sklearn')
else:
importlib.import_module(package)
installed.append(package)
print(f"✓ {package:20} 已安装")
except ImportError:
not_installed.append(package)
print(f"✗ {package:20} 未安装")
print("\n" + "=" * 50)
print(f"总计: {len(installed)}/{len(packages)} 个包已安装")
print(f"已安装: {len(installed)} 个")
print(f"未安装: {len(not_installed)} 个")
if not_installed:
print("\n未安装的包:")
for package in not_installed:
print(f" - {package}")
print("\n安装命令:")
for package in not_installed:
# 特殊处理包名
install_name = package
if package == 'sklearn':
install_name = 'scikit-learn'
print(f"pip install {install_name}")
数据说明
展示不同金融市场的数据情况。
先是一个总表,列出四大类资产:金属、日本期货、美股、外汇,分别说明它们包含哪些数据指标。
然后专门用一块区域详细介绍伦敦金属交易所的数据,说明它包含铝、铜、铅、锌这四种金属的价格信息,特别解释了为什么只提供收盘价——因为金属市场最关注的就是这个权威的基准价格。
# 创建主要数据表格
data = {
'资产类别': ['伦敦金属交易所(LME)金属', '日本交易所(JPX)期货', '美国股票 / ETF', '全球外汇货币对'],
'标识前缀': ['LME', 'JPX', 'US_Stock', 'FX'],
'核心特征': [
'仅含"收盘价",聚焦工业金属,指标维度单一但品种聚焦',
'含"完整期货交易维度"(开盘 / 最高 / 最低 / 收盘 / 成交量 / 结算价 / 持仓量),品种细分明确',
'含"复权后股价维度"(开盘 / 最高 / 最低 / 收盘 / 成交量),覆盖"个股 + 全类型 ETF"',
'仅含"货币对收盘价",覆盖"主要 / 交叉 / 新兴市场货币",品类全面'
]
}
df = pd.DataFrame(data)
# 创建带样式的表格
styled_table = df.style.set_table_styles([
{'selector': 'th', 'props': [
('background-color', '#2E86AB'),
('color', 'white'),
('font-weight', 'bold'),
('padding', '15px'),
('text-align', 'center'),
('font-size', '14px'),
('border', '2px solid #1C6EA4')
]},
{'selector': 'td', 'props': [
('padding', '12px'),
('border', '1px solid #AAAAAA'),
('text-align', 'left'),
('font-size', '13px')
]},
{'selector': '', 'props': [
('border-collapse', 'collapse'),
('width', '100%'),
('box-shadow', '0 4px 8px rgba(0,0,0,0.1)'),
('margin-bottom', '20px')
]}
]).set_properties(**{
'background-color': '#F8F9FA'
}).set_properties(subset=pd.IndexSlice[::2, :], **{
'background-color': '#E9ECEF'
})
# 显示标题和表格
display(HTML('<h2 style="color: #2E86AB; text-align: center;">📊 全球市场多品种标准化原始指标</h2>'))
display(HTML('<p style="text-align: center; color: #666; font-size: 14px;">提供的数据覆盖了全球市场多品种的标准化原始指标,分别来自于"金属、期货、美股/ETF、外汇"</p>'))
styled_table
# 显示LME详细信息
display(HTML('''
<div style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 20px; border-radius: 10px; margin: 20px 0; color: white;">
<h3 style="margin-top: 0; color: white;">🔩 LME (伦敦金属交易所) 详细信息</h3>
<p>包含四个核心的工业金属品种,分别为:</p>
<div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 15px 0;">
<div style="background: rgba(255,255,255,0.2); padding: 10px; border-radius: 5px;">
<strong>AH</strong> - 铝
</div>
<div style="background: rgba(255,255,255,0.2); padding: 10px; border-radius: 5px;">
<strong>CA</strong> - 铜 (LME核心工业金属)
</div>
<div style="background: rgba(255,255,255,0.2); padding: 10px; border-radius: 5px;">
<strong>PB</strong> - 铝
</div>
<div style="background: rgba(255,255,255,0.2); padding: 10px; border-radius: 5px;">
<strong>ZS</strong> - 锌
</div>
</div>
<p style="background: rgba(255,255,255,0.1); padding: 15px; border-radius: 5px; border-left: 4px solid #FFD700;">
<strong>数据特征:</strong>提供的数据指标仅包含收盘价。这是因为金属市场的核心需求就是"权威定价基准",收盘价是唯一能满足全产业链(贸易、套期保值、分析)的核心指标。
</p>
</div>
'''))

主要分两块内容:
第一块是数据指标说明,列出了7个关键交易数据,包括开盘价、最高价、最低价、收盘价这些基本价格,还有成交量、结算价、持仓量这些反映市场活跃度和资金动向的指标。
第二块是具体的交易品种,重点介绍了黄金和铂金的期货产品,分标准版和迷你版两种规格,标准版适合机构投资者,迷你版门槛低适合个人投资者。另外还提到了橡胶期货这个工业品。
最后有个总结,点出日本交易所数据的特点是信息完整、品种覆盖全面,能满足不同投资者的需求。
# 创建JPX数据指标表格
jpx_indicators = {
'数据指标': ['Open(开盘价)', 'High(最高价)', 'Low(最低价)', 'Close(收盘价)', 'Volume(成交量)', 'settlement_price(结算价)', 'open_interest(持仓量)'],
'说明': [
'开盘价',
'最高价',
'最低价',
'收盘价 - 经典"OHLC"价格维度',
'当日交易总量,反映市场活跃度',
'期货持有维度,用于当日盈亏计算和持仓估值',
'未平仓合约数,反映市场多空情绪和资金规模'
]
}
df_indicators = pd.DataFrame(jpx_indicators)
# 创建交易品种数据
trading_products = {
'类别': ['贵金属期货', '贵金属期货', '贵金属期货', '贵金属期货', '贵金属期货', '工业商品期货'],
'品种': ['黄金(Mini 迷你)', '黄金(Rolling-Spot 连续现货)', '黄金(Standard 标准)', '铂金(Mini)', '铂金(Standard)', 'RSS3 橡胶期货'],
'说明': [
'黄金的缩小版本,更小交易单位',
'连续现货黄金',
'标准规格黄金期货',
'铂金的缩小版本,更小交易单位',
'标准规格铂金期货',
'天然橡胶主流品种'
]
}
df_products = pd.DataFrame(trading_products)
# 样式设置
styled_indicators = df_indicators.style.set_table_styles([
{'selector': 'th', 'props': [
('background-color', '#8B4513'),
('color', 'white'),
('font-weight', 'bold'),
('padding', '12px'),
('text-align', 'center'),
('font-size', '13px'),
('border', '2px solid #654321')
]},
{'selector': 'td', 'props': [
('padding', '10px'),
('border', '1px solid #AAAAAA'),
('text-align', 'left'),
('font-size', '12px')
]}
]).set_properties(**{
'background-color': '#FAF0E6'
}).hide(axis='index')
styled_products = df_products.style.set_table_styles([
{'selector': 'th', 'props': [
('background-color', '#2F4F4F'),
('color', 'white'),
('font-weight', 'bold'),
('padding', '12px'),
('text-align', 'center'),
('font-size', '13px'),
('border', '2px solid #1C2F2F')
]},
{'selector': 'td', 'props': [
('padding', '10px'),
('border', '1px solid #AAAAAA'),
('text-align', 'left'),
('font-size', '12px')
]}
]).set_properties(**{
'background-color': '#F5F5F5'
}).hide(axis='index')
# 显示完整内容
display(HTML('''
<div style="background: linear-gradient(135deg, #D4AF37 0%, #FFD700 100%); padding: 25px; border-radius: 15px; margin: 20px 0; color: #2F4F4F; box-shadow: 0 8px 25px rgba(0,0,0,0.15);">
<h2 style="text-align: center; margin-top: 0; color: #2F4F4F; text-shadow: 1px 1px 2px rgba(255,255,255,0.5);">🏯 JPX(日本交易所集团)</h2>
</div>
'''))
display(HTML('<h3 style="color: #8B4513; border-left: 5px solid #8B4513; padding-left: 10px;">📈 数据指标维度</h3>'))
styled_indicators
display(HTML('<h3 style="color: #2F4F4F; border-left: 5px solid #2F4F4F; padding-left: 10px; margin-top: 30px;">🏷️ 交易品种</h3>'))
styled_products
display(HTML('''
<div style="background: linear-gradient(135deg, #87CEEB 0%, #4682B4 100%); padding: 20px; border-radius: 10px; margin: 25px 0; color: white; border-left: 6px solid #FF6347;">
<h4 style="margin-top: 0; color: white;">💡 交易品种说明</h4>
<p style="margin-bottom: 0; line-height: 1.6;">
<strong>Mini 品种:</strong>可以视为 Standard 的缩小版本,可以以更小的单位与门槛进行交易,适合小额投资者参与。
</p>
</div>
<div style="background: #F8F9FA; padding: 15px; border-radius: 8px; border: 2px dashed #28A745; margin: 15px 0;">
<h4 style="color: #28A745; margin-top: 0;">🎯 核心特点总结</h4>
<ul style="margin-bottom: 0;">
<li>提供完整的期货交易维度(OHLC + 成交量 + 结算价 + 持仓量)</li>
<li>覆盖贵金属和工业商品两大类别</li>
<li>包含标准版和迷你版,满足不同投资者需求</li>
<li>RSS3橡胶期货是天然橡胶的主流交易品种</li>
</ul>
</div>
'''))

第一部分是数据指标说明,列出了5个关键数据,都是经过复权调整后的价格,包括开盘、最高、最低、收盘价和成交量。复权处理是为了消除分红、拆股对价格的影响,让历史数据更准确。
这些数据适合做长期投资分析,覆盖了从全球市场到具体行业的各种投资选择。
# 创建数据指标表格
data_indicators = {
'数据指标': ['adj_open(复权开盘价)', 'adj_high(复权最高价)', 'adj_low(复权最低价)', 'adj_close(复权收盘价)', 'adj_volume(成交量)'],
'说明': [
'复权后的开盘价格',
'复权后的最高价格',
'复权后的最低价格',
'复权后的收盘价格',
'成交量(无需复权),反映交易活跃度'
]
}
df_indicators = pd.DataFrame(data_indicators)
# 创建资产覆盖表格
asset_coverage = {
'资产类别': ['宽基/区域 ETF', '宽基/区域 ETF', '宽基/区域 ETF', '宽基/区域 ETF',
'商品 ETF', '商品 ETF', '商品 ETF', '商品 ETF',
'债券 ETF', '债券 ETF', '债券 ETF', '债券 ETF',
'行业个股-能源', '行业个股-能源', '行业个股-矿业', '行业个股-矿业',
'行业个股-金融', '行业个股-金融', '行业个股-工业',
'杠杆/主题 ETF', '杠杆/主题 ETF'],
'代码/名称': ['ACWI(全球股票)', 'VT(全球股票)', 'VEA(发达市场)', 'VWO(新兴市场)',
'GLD(黄金)', 'SLV(白银)', 'GDX(黄金矿业)', 'NUGT(3倍做多黄金矿业)',
'AGG(美国总债)', 'BND(美国国债)', 'BNDX(国际国债)', 'TIP(通胀保值债券)',
'CVX(雪佛龙)', 'EOG', 'RIO(力拓)', 'VALE(淡水河谷)',
'TD(道明银行)', 'MS(摩根士丹利)', 'CAT(卡特彼勒)',
'YINN(3倍做多中国指数)', 'URA(铀矿主题)'],
'特点': [
'全球股票市场覆盖', '全球股票市场覆盖', '发达市场参考', '新兴市场投资',
'实物黄金投资', '实物白银投资', '黄金矿业公司', '3倍杠杆黄金矿业',
'美国整体债券市场', '美国国债', '国际国债', '通胀保护债券',
'能源巨头', '能源公司', '跨国矿业', '巴西矿业巨头',
'加拿大银行', '投资银行', '重型机械制造',
'3倍杠杆中国指数', '铀矿主题投资'
]
}
df_assets = pd.DataFrame(asset_coverage)
# 样式设置
styled_indicators = df_indicators.style.set_table_styles([
{'selector': 'th', 'props': [
('background-color', '#1E3A8A'),
('color', 'white'),
('font-weight', 'bold'),
('padding', '12px'),
('text-align', 'center'),
('font-size', '13px'),
('border', '2px solid #1E40AF')
]},
{'selector': 'td', 'props': [
('padding', '10px'),
('border', '1px solid #E5E7EB'),
('text-align', 'left'),
('font-size', '12px')
]}
]).set_properties(**{
'background-color': '#EFF6FF'
}).hide(axis='index')
# 为资产表格设置条件格式
def asset_color(val):
colors = {
'宽基/区域 ETF': '#3B82F6',
'商品 ETF': '#F59E0B',
'债券 ETF': '#10B981',
'行业个股-能源': '#EF4444',
'行业个股-矿业': '#8B5CF6',
'行业个股-金融': '#06B6D4',
'行业个股-工业': '#84CC16',
'杠杆/主题 ETF': '#EC4899'
}
return f'background-color: {colors.get(val, "white")}; color: white; font-weight: bold;'
styled_assets = df_assets.style.set_table_styles([
{'selector': 'th', 'props': [
('background-color', '#1F2937'),
('color', 'white'),
('font-weight', 'bold'),
('padding', '12px'),
('text-align', 'center'),
('font-size', '13px'),
('border', '2px solid #374151')
]},
{'selector': 'td', 'props': [
('padding', '8px'),
('border', '1px solid #E5E7EB'),
('text-align', 'left'),
('font-size', '12px')
]}
]).applymap(asset_color, subset=['资产类别'])
# 显示完整内容
display(HTML('''
<div style="background: linear-gradient(135deg, #1E3A8A 0%, #3B82F6 100%); padding: 25px; border-radius: 15px; margin: 20px 0; color: white; box-shadow: 0 8px 25px rgba(0,0,0,0.15);">
<h2 style="text-align: center; margin-top: 0; color: white; text-shadow: 1px 1px 2px rgba(0,0,0,0.3);">🇺🇸 US_Stock 美国股票/ETF</h2>
<p style="text-align: center; margin-bottom: 0; opacity: 0.9;">提供复权后数据,覆盖广泛的资产类别</p>
</div>
'''))
display(HTML('<h3 style="color: #1E3A8A; border-left: 5px solid #1E3A8A; padding-left: 10px;">📊 数据指标维度(复权后)</h3>'))
styled_indicators
display(HTML('<h3 style="color: #1F2937; border-left: 5px solid #1F2937; padding-left: 10px; margin-top: 30px;">📈 资产覆盖范围</h3>'))
styled_assets
display(HTML('''
<div style="background: linear-gradient(135deg, #059669 0%, #10B981 100%); padding: 20px; border-radius: 10px; margin: 25px 0; color: white;">
<h4 style="margin-top: 0; color: white;">🎯 核心特点总结</h4>
<div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px;">
<div style="background: rgba(255,255,255,0.2); padding: 15px; border-radius: 8px;">
<strong>📅 数据特征</strong>
<ul style="margin-bottom: 0;">
<li>提供完整的复权后价格数据</li>
<li>包含OHLC价格维度 + 成交量</li>
<li>适合长期投资分析</li>
</ul>
</div>
<div style="background: rgba(255,255,255,0.2); padding: 15px; border-radius: 8px;">
<strong>🌍 覆盖广度</strong>
<ul style="margin-bottom: 0;">
<li>全球市场ETF</li>
<li>商品 & 债券ETF</li>
<li>行业龙头个股</li>
<li>杠杆 & 主题ETF</li>
</ul>
</div>
</div>
</div>
<div style="background: #FEF3C7; padding: 15px; border-radius: 8px; border: 2px solid #F59E0B; margin: 15px 0;">
<h4 style="color: #92400E; margin-top: 0;">💡 重要说明</h4>
<p style="margin-bottom: 0; color: #92400E;">
<strong>复权数据优势:</strong>消除了分红、拆股等公司行为对价格的影响,提供连续可比较的价格序列,特别适合长期趋势分析和回测研究。
</p>
</div>
'''))

核心思路不是预测单个货币的价格,而是分析不同资产之间的相对表现。比如比较金属和股票、期货和外汇之间的收益率差异。
这个策略设计了424个预测标签,分成4组,分别预测未来1到4天内不同资产组合的收益差。举例来说,可以预测铅价和全球股票ETF之间的价差变化,或者铜和锌这两种金属之间的价格关系。
这种方法的优势在于能够发现跨市场的交易机会,通过同时做多和做空相关资产来降低风险,适合市场中性的投资策略。
# 创建标签组信息表格
label_groups = {
'标签组': ['第1组', '第2组', '第3组', '第4组'],
'预测天数': ['1天', '2天', '3天', '4天'],
'标签数量': ['106个', '106个', '106个', '106个'],
'预测目标': [
'交易品收益率的差值(1天后)',
'交易品收益率的差值(2天后)',
'交易品收益率的差值(3天后)',
'交易品收益率的差值(4天后)'
]
}
df_labels = pd.DataFrame(label_groups)
# 创建差值类型示例表格
difference_examples = {
'差值类型': ['跨类别差值', '跨类别差值', '同类别差值', '同类别差值'],
'示例': [
'LME_PB_Close(金属铅) - US_Stock_VT_adj_close(美股ETF)',
'JPX_Gold_Standard_Futures_Close(黄金期货) - FX_USDJPY(外汇)',
'LME_CA_Close(铜) - LME_ZS_Close(锌)',
'金属内部价差比较'
],
'市场关系': [
'金属 vs 股票',
'期货 vs 外汇',
'金属内部价差',
'同类别资产间比较'
]
}
df_differences = pd.DataFrame(difference_examples)
# 样式设置
styled_labels = df_labels.style.set_table_styles([
{'selector': 'th', 'props': [
('background-color', '#7C3AED'),
('color', 'white'),
('font-weight', 'bold'),
('padding', '12px'),
('text-align', 'center'),
('font-size', '13px'),
('border', '2px solid #6D28D9')
]},
{'selector': 'td', 'props': [
('padding', '10px'),
('border', '1px solid #E5E7EB'),
('text-align', 'center'),
('font-size', '12px')
]}
]).set_properties(**{
'background-color': '#F3F4F6'
}).hide(axis='index')
styled_differences = df_differences.style.set_table_styles([
{'selector': 'th', 'props': [
('background-color', '#059669'),
('color', 'white'),
('font-weight', 'bold'),
('padding', '12px'),
('text-align', 'center'),
('font-size', '13px'),
('border', '2px solid #047857')
]},
{'selector': 'td', 'props': [
('padding', '10px'),
('border', '1px solid #E5E7EB'),
('text-align', 'left'),
('font-size', '12px')
]}
]).set_properties(**{
'background-color': '#ECFDF5'
}).hide(axis='index')
# 显示完整内容
display(HTML('''
<div style="background: linear-gradient(135deg, #7C3AED 0%, #A78BFA 100%); padding: 25px; border-radius: 15px; margin: 20px 0; color: white; box-shadow: 0 8px 25px rgba(0,0,0,0.15);">
<h2 style="text-align: center; margin-top: 0; color: white; text-shadow: 1px 1px 2px rgba(0,0,0,0.3);">💱 FX 外汇市场</h2>
<p style="text-align: center; margin-bottom: 0; opacity: 0.9;">基于收盘价的跨市场价差预测</p>
</div>
'''))
display(HTML('''
<div style="background: #FEF3C7; padding: 15px; border-radius: 8px; border: 2px solid #F59E0B; margin: 15px 0;">
<h4 style="color: #92400E; margin-top: 0;">📊 数据基础</h4>
<p style="margin-bottom: 0; color: #92400E;">
<strong>数据维度:</strong>仅包含收盘价,但通过巧妙的标签设计实现跨市场分析
</p>
</div>
'''))
display(HTML('<h3 style="color: #7C3AED; border-left: 5px solid #7C3AED; padding-left: 10px;">🏷️ 标签体系结构</h3>'))
display(HTML('<p style="color: #666; font-size: 14px;">共有 <strong style="color: #7C3AED;">424个标签</strong>,分为4组,每组106个标签分别预测不同时间跨度的收益率差值</p>'))
styled_labels
display(HTML('<h3 style="color: #059669; border-left: 5px solid #059669; padding-left: 10px; margin-top: 30px;">🔄 收益率差值类型</h3>'))
display(HTML('''
<div style="background: #E0F2FE; padding: 12px; border-radius: 6px; margin: 10px 0; border-left: 4px solid #0284C7;">
<strong>📈 收益率计算公式:</strong>
<code style="background: #F1F5F9; padding: 4px 8px; border-radius: 4px; font-family: monospace;">
r_t = (p_t - p_{t-1}) / p_{t-1}
</code>
</div>
'''))
styled_differences
display(HTML('''
<div style="background: linear-gradient(135deg, #1E40AF 0%, #3B82F6 100%); padding: 20px; border-radius: 10px; margin: 25px 0; color: white;">
<h4 style="margin-top: 0; color: white;">🎯 策略价值</h4>
<div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px;">
<div style="background: rgba(255,255,255,0.2); padding: 15px; border-radius: 8px;">
<strong>🌐 跨市场分析</strong>
<ul style="margin-bottom: 0;">
<li>识别不同资产类别间的相对价值</li>
<li>捕捉跨市场套利机会</li>
<li>分散单一市场风险</li>
</ul>
</div>
<div style="background: rgba(255,255,255,0.2); padding: 15px; border-radius: 8px;">
<strong>⏰ 多时间维度</strong>
<ul style="margin-bottom: 0;">
<li>1-4天不同预测周期</li>
<li>适应不同交易策略</li>
<li>提供交易时机参考</li>
</ul>
</div>
</div>
</div>
<div style="background: #FCE7F3; padding: 15px; border-radius: 8px; border: 2px solid #EC4899; margin: 15px 0;">
<h4 style="color: #BE185D; margin-top: 0;">💡 创新特点</h4>
<p style="margin-bottom: 0; color: #BE185D;">
<strong>相对价值策略:</strong>不预测单一资产价格,而是预测资产间的相对表现差异,这种"配对交易"思路在市场中性策略中具有重要价值。
</p>
</div>
'''))


以上仅为环境配置和数据的初步探查,如果您喜欢或者向了解更多,可以移步下面的连接,如果您仅仅想看本次竞赛解题思路,也可以移步公主号海水三千查看《三井物产商品预测怎么冲分?优胜者的 Transformer 建模思路,全在这了》!
链接https://blog.csdn.net/weixin_48152827/article/details/153417219?spm=1001.2014.3001.5502

被折叠的 条评论
为什么被折叠?



