chan

朝生暮死不足笑 但悲百年不足道

【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为多少(即有几个股票被做多,几个股票被做空)?

股票5: ≈ 0.098

交易权重(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)

———————————-

评论
还没有评论
    发表评论 说点什么