【Worldquant】公开课1的作业答案
1.必做1:至少成功提交1个Alpha,展示截图

2.必做2:学习平台上所有关键术语的计算公式,推荐合理使用ChatGPT等人工智能工具。挑选一个,并在Forum发布。
1. IS (In-Sample)
- 含义:在策略开发中,IS 数据是指用于训练和优化策略的历史数据。通常是从总数据集中划分出来的一部分数据。
- 用途:用于模型训练和参数调优。
2. Summary
- 含义:总结报告,通常是对策略或模型的性能指标进行汇总。
- 用途:帮助快速了解策略的整体表现。
3. Period
- 含义:时间段,通常指策略回测或测试的时间范围。
- 用途:用于指定策略运行的时间区间。
4. TRAIN
- 含义:训练集,用于训练模型或策略的数据集。
- 用途:通过训练集优化模型参数。
5. TEST
- 含义:测试集,用于验证模型或策略表现的数据集。
- 用途:评估模型在未知数据上的表现。
6. OS (Out-of-Sample)
- 含义:样本外数据,指在策略开发过程中未用于训练或优化的数据。
- 用途:用于验证策略的泛化能力。
7. Needs Improvement
- 含义:需要改进,通常指策略或模型在某些方面表现不佳,需要进一步优化。
- 用途:提示策略的潜在问题。
8. Single Data Set Alpha
- 含义:单一数据集的 Alpha 值,Alpha 是衡量策略超额收益的指标。
- 用途:评估策略相对于基准的表现。
9. Aggregate Data
- 含义:聚合数据,指将多个数据集或时间段的数据合并在一起。
- 用途:用于综合分析或策略优化。
10. Sharpe
- 含义:夏普比率,衡量策略风险调整后的收益。公式为:Sharpe=策略收益−无风险收益策略收益的标准差Sharpe=策略收益的标准差策略收益−无风险收益
- 用途:评估策略的风险收益比。值越高,策略表现越好。
11. Turnover
- 含义:换手率,衡量策略的交易频率。公式为:Turnover=总交易量总资产Turnover=总资产总交易量
- 用途:评估策略的交易成本。
12. Fitness
- 含义:适应度,衡量策略的表现是否符合预期。
- 用途:用于策略优化和目标函数。
13. Returns
- 含义:收益率,衡量策略的收益表现。
- 用途:评估策略的盈利能力。
14. Drawdown
- 含义:回撤,衡量策略从最高点到最低点的最大跌幅。
- 用途:评估策略的风险。
15. Margin
- 含义:保证金或利润率,通常指策略的利润与成本的比率。
- 用途:评估策略的盈利能力。
16. Long Count / Short Count
- 含义:多头和空头的交易次数。
- 用途:评估策略的交易方向偏好。
17. Correlation
- 含义:相关性,衡量两个变量之间的线性关系。
- 用途:评估策略与其他资产或策略的相关性。
18. Self Correlation
- 含义:自相关性,衡量时间序列数据中当前值与历史值之间的关系。
- 用途:评估策略是否存在自相关性。
19. Maximum / Minimum
- 含义:最大值和最小值,通常指某个指标在特定时间段内的极值。
- 用途:评估策略的极端表现。
20. Last Run
- 含义:最后一次运行的时间或结果。
- 用途:记录策略的最新表现。
示例数据解释
- Sharpe 1.09:夏普比率为 1.09,表示策略的风险调整后收益较好。
- Turnover 5.91%:换手率为 5.91%,表示策略的交易频率较低。
- Fitness 0.56:适应度为 0.56,表示策略表现尚可,但可能需要优化。
- Returns 3.26%:收益率为 3.26%,表示策略的盈利能力。
- Drawdown 1.91%:回撤为 1.91%,表示策略的风险较低。
- Margin 11.04‱:利润率为 11.04‱(1‱ = 0.01%),表示策略的盈利能力。
3.必做3:👉点击链接阅读:⭐ How BRAIN platform works | WorldQuant BRAIN,并回答以下问题:假设全市场共5个股票,收盘价分别为[5,15,66,85,25], Alpha表达式为“-close’(注意负号),在Neutralization Setting为Market的情况下,请回答这五个股票各自的交易权重(weight)为多少?long count 和 short count为多少(即有几个股票被做多,几个股票被做空)?
交易权重(weight):
股票1: ≈ 0.235
股票2: ≈ 0.167
股票3: ≈ -0.185
股票4: ≈ -0.315

4.必做4. 登陆成功的截图(显示USER ID即可)+ 回测一个Alpha + 回测出的Alpha的ID(截图)
from requests.auth import HTTPBasicAuth
import requests
import json
from os.path import expanduser
from time import sleep
simulation_data = {
'type': 'REGULAR',
'settings': {
'instrumentType': 'EQUITY',
'region': 'USA',
'universe': 'TOP3000',
'delay': 1,
'decay': 0,
'neutralization': 'INDUSTRY',
'truncation': 0.08,
'pasteurization': 'ON',
'unitHandling': 'VERIFY',
'nanHandling': 'OFF',
'language': 'FASTEXPR',
'visualization': False,
},
'regular': 'liabilities/assets' # 表达式
}
print(simulation_data)
# with open('pass.txt') as f:
# credentials = json.load(f)
# username, password = credentials
# username = "CJ10872"
username = "C18180564@gmail.com"
password = "Chan1000w!"
sess = requests.Session()
sess.auth = HTTPBasicAuth(username, password)
response = sess.post('https://api.worldquantbrain.com/authentication')
print(response.status_code)
print(response.json())
# Sending POST request to start the simulation
sim_resp = sess.post(
'https://api.worldquantbrain.com/simulations',
json=simulation_data
)
print('shuju:',sim_resp.headers)
sim_process_url=sim_resp.headers['Location']
while True:
sim_process_resp=sess.get(sim_process_url)
retry_after = float(sim_process_resp.headers.get('Retry-After',0))
if retry_after==0:
break
sleep(retry_after)
alpha_id = sim_process_resp.json()["alpha"] # the final simulation result
print(alpha_id)
———————————-
