Week 1 排除的是历史导论
Week 12 review session 明确说,开学时那一讲历史导论不进 exam。代码解释仍在本期要求里:官方介绍写明,会从 tutorial solutions 或已做的 assignment 中取代码,删掉注释,让学生说明每行的作用。
代码题不要求现场编写代码。准备时可以拿一段已经跑过的代码,遮住注释,沿着输入、运算和输出解释。只把函数名翻成中文,还没说清它怎样处理数据。
价格进入函数以后变成了什么
review session 讲过一段从价格算收益、再求平均收益、最后按阈值产生交易动作的代码。读这段代码时,每个运算接收到的数据都在变化。
价格序列相邻两项先形成一段收益。用本期价格除以前期价格,再减去 1,得到相对变化;三个价格对应两段收益。随后求平均的对象是这些收益,输出也仍是收益率。平均收益与多个期间复合后的持有收益含义不同。
读到交易判断时,还要核对比较符号和阈值单位。只有看清原代码,才能说明什么条件下买、卖或持有;不能仅凭函数名推断方向。
回撤函数里,两个变量保存不同的历史
用 Maximum drawdown(MDD)函数练习逐行解释时,peak 保存截至当前的价格峰值,mdd 保存截至当前的峰后跌幅纪录。每读入一个价格,先更新 peak,再把当前跌幅与 mdd 比较。
练习示例中,价格依次为 40、50、35、55、44。50 跌到 35 时,mdd 记录 0.30。后来价格升到 55,peak 更新为 55,当下回撤归零,mdd 仍保留 0.30。最后跌到 44 的幅度是 0.20,小于此前的 0.30。
这样就能解释 return 的位置为什么影响结果:如果它在循环内,首轮就执行,后面的下跌还没有进入计算,函数已经返回零。放在循环结束后,才能返回整条路径的 MDD。
决策树循环,设置和训练各做什么
Week 12 还讲过遍历不同深度上限的决策树循环。循环每轮建立模型、用训练数据拟合、评价表现,再输出结果。深度上限规定树允许长多深;fit 才根据训练数据学出分裂规则和叶节点预测值。
None 表示取消深度上限这一项限制,其他停止条件仍然有效。它不保证树的表现更好。
练习时可以把每轮的解释连成完整一句话:用当前的深度上限设置建立一棵树,在训练数据上学习,再把它交给同一组验证数据比较误差。若按验证结果选择深度,选定后还需要用未参与选择的测试数据评价,才能区分挑选结果与独立检验。






