お前はどこまで見えている

お前はどこまで見えている

基于成交量预测市场走势

1. 简介 成交量是技术分析中一个非常关键的指标,蕴含了丰富的交易信息,包括: 市场活跃度:成交量的大小通常被用来衡量市场对该股票或指数的关注度和交易活跃度。成交量大表明交易活动频繁,市场活跃。 价格变动的确认:「价格会骗人,但成交量不会」。价格的上涨或下跌如果没有得到成交量的支持,其可靠性通常是值得怀疑的。成交量的增加往往被认为是价格趋势的确认。 预示市场趋势:成交量的变化可以预示市场的潜在趋势。例如,成交量的放大往往在价格趋势变化之前出现,而成交量的缩小往往可能预示着趋势的疲软。 揭示供需关系:成交量的放大通常意味着市场对某一资产的需求增加,反之则可能是供应增加。供需关系的变化是影响价格走势的基本因素。 市场心理的反映:成交量的变化可以反映市场参与者的心理状态,如对某个资产的集中兴趣或普遍恐慌。 2. 成交量择时策略 构造成交量时序排名指标,成交量时序排名较高的情况往往伴随着指数未来一段时间上涨空间的增加。成交量时序排名择时策略的具体实现方法如下: 构建成交量时序排名指标 成交量的时间序列排名指标用来量化每日成交量在一段时间内的位置。具体计算方法为: 收集包括当日在内的过去 NNN 个交易日的成交量数据。 将这 NNN 个成交量数据从小到大排序,计算当日成交量在排序后序列中的排名。 排名标准化到 [−1,1][-1, 1][−1,1] 的范围内,其中正值表示放量,负值表示缩量。 择时策略的开平仓规则 确定开平仓阈值 SSS,这是决定是否开仓买入或平仓卖出的成交量时序排名的阈值。 当成交量时序排名的标准化值超过阈值 SSS 时,执行开仓买入操作。 当成交量时序排名的标准化值低于阈值 SSS 时,执行平仓卖出操作。 参数优化 策略中包含两个主要参数,即排名窗口长度 NNN 和开平仓阈值 SSS。选择最优参数的步骤包括: 样本内回测:在不同的参数组合下,评估择时策略的性能,选择那些在样本内回测中展现出较高性能的参数组合作为最优的参数配置。 样本外验证:在确定了样本内的最优参数后,还需要在样本外数据上进行测试,以验证参数的稳健性。 3. 成交量时序排名 成交量时序排名的高低意味着在特定的时间序列中,某一天的成交量相对于过去一段时间内成交量的相对大小。成交量时序排名的变化可以作为市场趋势确认的工具。例如,价格的上涨如果伴随着成交量的增加,则可能确认上涨趋势;而价格下跌时如果成交量减少,则可能表明下跌趋势减弱。 3.1 高时序排名 如果某一天的成交量时序排名较高,意味着这一天的成交量在近期的交易日中是较大的,表时市场在这一天有较多的交易活动。这可能是由于市场对该资产的兴趣增加,或者市场预期价格上涨,从而吸引了更多买家进入市场。 当成交量时序排名突然增高,即出现放量,这通常被视为市场上涨趋势的积极信号。放量可能表明有新的买家进入市场,或者现有投资者增加持仓,这可以增加价格上升的动力。 3.2 低时序排名 如果某一天的成交量时序排名较低,这通常表示这一天的成交量相对较小,市场交易活动减少。这可能是由于市场对该资产的兴趣减少,或者投资者对市场未来走势持谨慎态度,导致交易量减少。 如果成交量时序排名持续较低,即出现缩量,这可能表市场上涨动能减弱,或者市场参与者对当前价格持观望态度,交易意愿不强。 4. 成交量时序排名配合价格择时 量在价先,量价结合往往能达到更好的择时效果。用成交量时序排名结合价格信息择时的思路有很多。例如: 用价格信息区分市场行情,再运用成交量时序排名来择时 在不同的市场环境下,成交量信息的解读方式可能有所不同。在牛市中,成交量稍微放量或者不缩量可能就预示着后市继续上涨;而在熊市中,可能需要成交量大幅放量才能预示着后市反弹。 计算成交量时序排名:首先计算当日的成交量时序排名,然后将其标准化为 [−1,1][-1, 1][−1,1] 范围内的值。 市场行情分段:将市场行情分为牛市、熊市和震荡市。这可以通过观察过去一段时间内指数价格的变动来实现,如果过去一段时间内指数涨幅大于某个阈值 CCC,则认为是牛市;如果涨幅小于 −C-C−C,则认为是熊市;否则是震荡市。 设置不同行情的交易阈值:为每种市场行情设置不同的成交量时序排名交易阈值 SSS,包括 SfSfSf(熊市阈值)、ScScSc(震荡市阈值)和 SrSrSr(牛市阈值)。 SfSfSf 较高,处在很高的排名位置,例如设为 0.80.80.8。在熊市中,为了减少错误的买入信号,通常设置较高的交易阈值 SfSfSf,这意味着只有在成交量非常显著地增加时,才可能触发买入信号。 SrSrSr 较低,处在中等偏高的排名位置,例如设为 0.20.20.2。在牛市中,市场普遍预期价格将继续上涨,因此设置较低的交易阈值 SrSrSr,以便在成交量稍有增加时就能够进行买入操作。 ScScSc 中等,处在中上的排名位置,例如设为 0.50.50.5。在震荡市中,成交量的信号不如牛市那样明显,因此设置一个中等的交易阈值 ScScSc,以便在成交量有适度增加时进行交易。 决定持仓与否:根据当日的成交量时序排名和其所对应的市场行情阈值来决定是否持仓。如果成交量时序排名的标准化值超过对应行情的交易阈值,则持仓;如果低于倍阈值,则空仓。 **用成交量时序排名结合 RSRS ** 根据前文介绍的 RSRS 指标,我们可以用成交量时序排名结合 RSRS 指标来择时,具体步骤如下: 计算成交量时序排名指标。 计算 RSRS 指标。 市场行情分段:根据过去一段时间内的指数表现,将市场行情分为牛市、熊市和震荡市。 确定择时信号 在牛市中,主要依据 RSRS 信号作为择时信号。这是因为在牛市中,市场的上涨趋势较为明显,RSRS 信号能够较好地捕捉市场的上涨动能。 在震荡市中,如果成交量时序排名策略或 RSRS 择时策略中有任何一方给出看多信号,则持仓。在这种情况下,两个策略之间是「或」关系,增加了交易信号的灵活性。 在熊市中,只有当成交量时序排名策略和 RSRS 择时策略都给出看多信号时,才持仓。在这种情况下,两个策略之间是「与」关系,提高了交易信号的保守性。 参考文献 量化策略14—量在价先(上):如何利用成交量预测市场走势

2024/6/11
articleCard.readMore

深入理解BashShell重定向

简介 Linux 终端下的重定向功能在日常办公中经常被使用到,深入理解并熟练掌握 Bash Shell 的重定向将有助于提升办公效率。Bash Shell 下的重定向是通过文件描述符实现的,Linux 系统默认有三个标准的文件描述符: stdin:标准输入,文件描述符 0。 stdout:标准输出,文件描述符 1。 stderr:标准错误,文件描述符 2。 假设 Linux 终端设备为 /dev/tty0,则 Linux 系统下标准文件描述符在 Bash Shell 中与设备的映射关系如下: 一种简单好理解重定向符的方法:将 >/< 看做是赋值语句中的 =,前者的方向代表后者的赋值方向;将 & 看做是 $。 重定向标准输出到文件 1 command >file 其中,> 操作符是输出重定向操作符。Bash 首先会尝试打开 file 文件,如果成功打开则将 command 的标准输出发送到 file 文件中,并将原来的内容覆盖;如果无法打开,则该条命令执行失败并报错。 command >file 等价于 command 1>file,这是因为 1 是输出重定向默认的文件描述符。该命令下,文件描述表与设备的映射关系如下: 重定向到文件的一般命令为 command n>file,其中 n 为需要重定向的文件描述符。 为了避免不小心覆盖已有文件,可以为当前 Shell 设置 noclobber 选项: 1 set -o noclobber 这样之后,如果 file 已经存在,>file 就是报错。在这种情况下,如果你确定一定要覆盖,可以使用 >| 操作符。 1 command >| file 重定向标准错误到文件 1 command 2>file 该命令下,文件描述符表与设备的映射关系如下: 定向标准输出和标准错误到文件 1 command &>file 其中,&> 操作符用来同时重定向 stdout 和 stderr。该命令下,文件描述符表与设备的映射关系如下: 重定向的先后顺序 一种等价于 &> 操作的重定向命令为: 1 command >file 2>&1 其中,先后出现了两次重定向: 第一次是将 stdout 重定向到 file; 第二次是将 stderr 重定向到文件描述符 1,而 1 已经被重定向到 file,所以等价于 stderr 重定向到 file。 该命令下,文件描述符表与设备的映射关系如下: 与之不同的是,如果将 2>&1 提前到 >file,则对应的含义完全不同: 1 command 2>&1 >file 其中,先后出现了两次重定向: 第一次是将 stderr 重定向到 stdout,此时 stdout 映射到终端 /dev/tty0,故等价于 stderr 重定向到 /dev/tty0; 第二次是将 stdout 重定向到 file。 该命令下,文件描述符表与设备的映射关系如下: 丢弃标准输出 1 command > /dev/null /dev/null 是 Linux 系统中特殊的虚拟设备,其会将发送给它的所有内容丢弃。 重定向标准输入 1 command <file 其中,< 操作符是输入重定向操作符。Bash 首先会尝试打开 file 文件,如果成功打开则 file 中的内容重定向到 command 作为输入;如果无法打开,则该条命令执行失败并报错。 该命令下,文件描述符表与设备的映射关系如下: 重定向多条文本到标准输入 1 2 3 4 5 6 7 command <<EOF your multi-line text goes here EOF 其中,<<MARKER 操作符用来重定向文本内容。该命令会将两个 MARKER 中包裹的文件内容重定向到标准输入。 重定向单行文件到标准输入 1 command <<< "foo bar baz" 该命令等价于: 1 echo "foo bar baz" | command 固定重定向标准错误到文件 1 2 3 4 exec 2>file command1 command2 ... exec 是 Linux Bash 内建命令,该命令会将 stderr 固定重定向到 file 文件,直到再次修改重定向或退出当前的 Bash Shell。 固定输入重定向文件描述符 1 exec 3<file 该命令会尝试打开 file 文件,并分配文件描述符 3 指定到 file,用于后续输入需要。比如: 1 grep "foo" <&3 如果想要关掉文件描述符 3,则可以使用以用命令: 1 exec 3>&- 固定输出重定向文件描述符 1 2 exec 4>file echo "foo" >&4 与输入重定向文件描述符一样,如果想要关掉文件描述符 4,可以使用以下命令: 1 exec 4>&- 固定输入输出重定向文件描述符 1 exec 3<>file 合并多输出重定向到文件 1 (command1; command2) >file 重定向到文件和终端 1 command | tee file tee 命令常用来将输出重定向到文件,同时又保留终端输出。其工作方式如下: 管道通信 Bash Shell 下的管道 | 可以用来在不同命令间通信,比如: 1 command1 | command2 该命令会将 command1 的标准输出和 command2 的标准输入连接,其对应的输入输出映射关系如下: 如果需要将 command1 的标准错误也发送给 command2,可以使用 |& 操作符: 1 command1 |& command2 或者先将 command1 的标准错误重定向到其标准输出,即等价于以下命令: 1 command1 2>&1 | command2 交换标准输出和标准错误 1 command 3>&1 1>&2 2>&3 分别重定向标准输出和标准错误 1 command > >(stdout_cmd) 2> >(stderr_cmd) 其中,>(...) 操作符会将 ... 的 stdin 连接到一个匿名管道,这里即对应 command 的 stdout,再执行 ...。 重定向备忘卡 参考文献 Bash One-Liners Explained, Part III: All about redirections

2024/5/28
articleCard.readMore

PowerShell常见问题

无法加载文件 C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。 问题:打开 PowerShell,提示如下类似报错信息: 1 2 3 4 5 6 7 8 9 10 11 Windows PowerShell 版权所有(C) Microsoft Corporation。保留所有权利。 安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows . : 无法加载文件 C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参 阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 3 + . 'C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [],PSSecurityException 原因:Windows 下 PowerShell 的脚本执行策略的默认设置为 Restricted: 1 2 PS C:\Windows\system32> get-ExecutionPolicy Restricted 解决:以管理员身份运行 PowerShell,修改脚本执行策略: 1 PS C:\Windows\system32> set-ExecutionPolicy RemoteSigned

2024/5/28
articleCard.readMore

低延迟趋势线择时策略

1. 简介 传统移动平均线(Moving Average, MA)是金融市场分析中常用的技术指标之一,主要用于平滑价格数据以识别趋势方向。然而,尽管移动平均线在趋势识别方面具有一定的效用,但它也存在明显的局限性: 时滞性:MA 捕捉的是历史的价格趋势变化,无法及时反映市场的真实情况。 平滑性与时滞性的矛盾:MA 的平滑性越好,通常意味着使用的时间窗口越长,对应的时滞性也越大。 趋势跟随问题:由于 MA 的时滞性,它主要用于趋势跟随策略,即在明确的趋势市场中表现较好。在市场趋势不明显或市场横盘震荡时,MA 的效果会大打折扣。 市场波动率的影响:在高波动性的市场环境中,MA 可能会频繁地穿越价格,导致频繁的交易信号。 参数选择的主观性:MA 的参数选择很大程度上取决于分析师或交易者的主观判断。 本文将介绍一种改进的择时指标,即低延迟趋势线 LLT(Low-Lag Trendline)。 2. 低延迟趋势线 低延迟趋势线(LLT)是为了解决传统移动平均线(MA)在趋势跟踪时存在的时滞问题而设计的一种技术指标。LLT 的构造思路主要基于信号处理理论,特别是滤波器的概念,目的是在保留趋势信息的同时减少延迟。 2.1 信号处理滤波器 在信号处理中,滤波器用于去除或减弱信号中的某些频率成分。比如,低通滤波器可以减少高频噪声,而保留低频信号。LLT 的构造就是基于这样的原理,通过设计一个滤波器来捕捉价格变动的主要趋势,同时减少不必要的波动和延迟。 2.2 一阶滤波器 指数移动平均线(EMA)是 MA 的一种改进形式,它通过给予近期价格更高的权重来减少时滞。EMA 的本质是一个一阶低通滤波器,但这种滤波器在处理价格信号时仍有改进空间,尤其在截止频率附近,信号可能会被过度平滑。 2.3 选择合适阶数的滤波器 为了提高滤波效果,我们需要选择合适的滤波器阶数。往往越高阶的滤波器可以更快地衰减高频信号,但可能会引入更大的不稳定性和通带波动。LLT 的构造方法选择了二阶滤波器,二阶滤波器相比于一阶滤波器,在截止频率附近可以更快的地衰减高频信号,同时避免了通带波动的问题,可能更有效地区分趋势信号和噪声。 2.4 构造 LLT LLT 的核心设计是一个二阶低通滤波器,这个滤波器的目标是保留低频部分的信号,即价格趋势;同时过滤掉高频部分的信号,即短期波动。通过这种方式,LLT 可以在保持趋势信号完整的同时,减少对短期波动的敏感性。 LLT 的公式如下: LLT=(α−α22)×pt+(α22)×pt−1−(α−3α24)×pt−2+2×(1−α)×LLTt−1−(1−α)2×LLTt−2LLT = (\alpha - \frac{\alpha^2}{2}) \times p_t + (\frac{\alpha^2}{2}) \times p_{t-1} - (\alpha - \frac{3\alpha^2}{4}) \times p_{t-2} + 2\times(1-\alpha) \times LLT_{t-1} - (1-\alpha)^2 \times LLT_{t-2}LLT=(α−2α2​)×pt​+(2α2​)×pt−1​−(α−43α2​)×pt−2​+2×(1−α)×LLTt−1​−(1−α)2×LLTt−2​ 其中,α\alphaα 为平滑系数,(α−α24)×pt(\alpha - \frac{\alpha^2}{4}) \times p_t(α−4α2​)×pt​ 表示当前价格的加权,(α22)×pt−1(\frac{\alpha^2}{2}) \times p_{t-1}(2α2​)×pt−1​ 表示前一个时刻价格的加权,(α−3α24)×pt−2(\alpha - \frac{3\alpha^2}{4}) \times p_{t-2}(α−43α2​)×pt−2​ 表示前两个时刻价格的加权,2×(1−α)×LLTt−12\times(1-\alpha) \times LLT_{t-1}2×(1−α)×LLTt−1​ 表示前一个时刻 LLT 值的加权,(1−α)2×LLTt−2(1-\alpha)^2 \times LLT_{t-2}(1−α)2×LLTt−2​ 表示前两个时刻 LLT 值的加权。 在 LLT 中,α\alphaα 参数类似于 EMA 中的平滑系数,它决定了当前价格与历史价格之间的相对权重。α\alphaα 越小,延迟越高,平滑性越好。α\alphaα 值的选取会影响 LLT 对价格变动的响应速度。 3. 基于 LLT 的择时策略 LLT 和均线都是属于趋势线,因此 LLT 的择时方法和均线是类似的。通过观察 LLT 线的走势,可以判断市场的当前趋势。如果 LLT 呈上升趋势,即 LLT 随着时间的推移而增加,这通常表示市场处于上升趋势中;相反,如果 LLT 线呈下降趋势,表示市场处于下降趋势。具体方法有: 当日的 LLT 值大于昨日的 LLT 值为做多信号,反之为做空信号。 当日 LLT 的 nnn 日平均值大于昨日 LLT 的 nnn 日平均值为做多信号,反之为做空信号。 用最近 nnn 日的 LLT 值构建线性回归方程,线性回归的斜率是正数为做多信号,斜率是负数为做空信号。 参考资料 量化策略03—低延迟趋势线择时:解决传统均线滞后问题的新策略(上) 量化策略04—低延迟趋势线择时:解决传统均线滞后问题的新策略(下)

2024/5/21
articleCard.readMore

波动率与换手率中的牛熊密码

1. 简介 传统的择时方法主要使用价格数据,比如均线择时、通道择时等,都是对价格趋势的判断。本文介绍一种用波动率和换手率数据区分市场状态进行择时的方法。 1.1 波动率 波动率是过去一定时间内收益率的标准差。波动率是衡量资产收益不确定性和风险水平的常用指标,用来反映资产价格的波动程度。 一般而言,波动率与市场状态之间有如下关系: 市场下跌和上涨时波动率会增加。 长期的波动率更能反映市场的长期趋势。 1.2 换手率 换手率是指一定时间内市场中股票转手买卖的频率。它是反映股票流动性强弱和交易活跃度的指标之一。换手率可以用当天成交量占流通总股本的比例来计算。 一般而言,换手率与市场走势存在正相关性。这意味着在市场上涨时,换手率往往会增加;而在市场下跌时,换手率往往会减少。 2. 投资时钟 通过波动率和换手率两个维度构建的投资时钟,可以作为判断市场状态的工具。根据波动率和换手率,可以将市场分为四种类型: 波动率和换手率同时上行:通常代表市场处于典型的牛市状态。在这种状态下,市场的快速上涨导致波动率上升,同时投资者的交易热情高涨,使得换手率也上升。 波动率和换手率同时下行:可能代表市场处于震荡市状态,市场方向不明确。在这种状态下,市场可能震荡下跌,也可能震荡上涨,具体方向难以判断。 波动率上行,换手率下行:典型的熊市特征。市场下跌导致波动率上升,同时成交量萎缩,使得换手率下降。 波动率下行,换手率上行:通常代表市场表现较好,可能是牛市的初期或者是熊市之后的反弹阶段。在这种状态下,市场的波动趋于稳定,而投资者的交易热情上升。 3. 牛熊指标 基于波动率和换手率构建牛熊指标的方法为计算波动率与换手率的比值: 牛熊指标=波动率/换手率牛熊指标 = 波动率 / 换手率牛熊指标=波动率/换手率 其中,波动率为某个时间段内股票/其他资产的日收率的标准差,换手率为同一时间段内股票/其他资产的换手率的移动平均值。 以沪深 300 指数为例,以一年为周期计算的牛熊指标走势如下图所示: 从上图可以看出: 牛熊指标与股票指数的走势大体上呈现负相关性。当牛熊指标上升时,通常表明市场处于下跌状态,因为波动动率的增加速度快于换手率的增加速度。当牛熊指标下降时,市场往往处于上涨状态,因为换手率的增加速度超过了波动率的增加速度。 选择较长时间周期构建的牛熊指标平稳性较好,不会因为市场短期波动而频繁变动,有助于更好地识别市场中长期趋势,适合中长线资金和资产配置。 4. 择时策略 牛熊指标与股票指数的走势呈现负相关,这意味着当牛熊指标趋势向上时,市场往往处于下跌状态;反之,当牛熊指标趋执向下时,市场往往处于上涨状态。 因此可以据此来进行择时操作,当牛熊指标趋势向上时空仓,当牛熊指标趋势向下时开仓。 4.1 斜率择时 计算若干日指标值拟合直线的斜率,如果斜率为正值可能意味着牛熊指标的趋势向上,反之意味着牛熊指标的趋势向下。 4.2 单均线择时 通过计算牛熊指标若干日的移动平均线,如果当日的均线值大于上一日的均线值,可能说明指标趋势向上,反之说明指标趋势向下。 4.3 双均线择时 计算牛熊指标的长短两条均线,当短均线位于长均线上方时可能意味着牛熊指标为上涨的趋势;反之意味着牛熊指标为下跌的趋势。 4.4 通道突破择时 计算牛熊指标的通道值,如果指标值突破通道上轨,可能说明牛熊指标进行上涨趋势;如果指标值跌破通道下轨,则说明牛熊指标进入下跌趋势。 参考资料 量化策略09—择时新思路:波动率与换手率中的牛熊密码(上)

2024/5/20
articleCard.readMore

通道突破择时策略

1. 简介 通道突破择时策略是一种常用的量化择时方法,其核心思想是: 股票/其他金融资产的价格往往在某个价格区间内波动,而这个区间就被称为「通道」。 通道择时策略会设定一个上轨和一个下轨,这两条轨道定义了价格的波动范围。当价格突破了这个范围时,可能意味着一个买入或卖出的信号。 2. 如何通道择时 通道择时根据使用的策略不同,其使用方式也有所不同。 2.1 趋势跟踪策略 在趋势跟踪策略中,通道择时的核心思想为「顺势而为」。投资者使用通道来判断当前的市场趋势,并在趋势明确时进入市场,跟随趋势赚取收益。 入市信号:当价格向上突破通道的上轨时,可能表明上升趋势开始,投资者可以考虑开多仓。相反,当价格向下突破通道的下轨时,可能表明下降趋势开始,投资者可以考虑开空仓。 退出信号:当价格触及通道的对端时,即在上升趋势中向下跌落上轨、在下降趋势中向上突破下轨,投资者可以考虑获利了结,因为价格可能会回调或趋势可能即将反转。 2.2 反转交易策略 反转交易策略的核心思想是「逆势而行」,即寻找市场可能即将发生反转的信号,从而在趋势改变之前进入市场。 入市信号:在一个下降趋势中,当价格触及下轨后开始反弹时开多仓,表明趋势可能正在从下跌转为上升。相反,当价格触及上轨后开始回落时开空仓,表明趋势可能正在从上升转为下跌。 退出信号:当价格在通道的另一端显示出反转迹象时,投资者可以考虑退出,以防止趋势再次反转造成损失。 3. 常用的通道类型 有 555 种常用的通道:布林带、肯特纳通道、唐奇安通道、霍尔特-温特通道和加速带。 3.1 布林带 布林带(Bollinger Bands)基于统计学中的标准差原理,主要用于衡量价格的高低和波动性。布林带通常包括三条线: 中轨:通常是 202020 周期的简单移动平均线。这个周期可能根据市场特点和交易者偏好进行调整。 上轨:上轨通常设定为中轨之上的两个标准差。计算公式为: 上轨=中轨+2×标准差上轨 = 中轨 + 2 \times 标准差上轨=中轨+2×标准差 下轨:下轨通常设定为中轨之下的两个标准差。计算公式为: 下轨=中轨−2×标准差下轨 = 中轨 - 2 \times 标准差下轨=中轨−2×标准差 其中,标准差是基于同样周期内价格与移动平均线差值的均方根。 3.2 肯特纳通道 肯特纳通道(Keltner Channels)主要用于衡量价格波动和趋势方向。 中轨:通常是 202020 周期的指数移动平均线。这个周期可能根据市场特点和交易者偏好进行调整。 上轨:上轨通常设定为中轨之上加上两倍的平均真实范围。计算公式为: 上轨=中轨+2×平均真实范围上轨 = 中轨 + 2 \times 平均真实范围上轨=中轨+2×平均真实范围 下轨:下轨通常设定为中轨之下减去两倍的平均真实范围。计算公式为: 下轨=中轨−2×平均真实范围下轨 = 中轨 - 2 \times 平均真实范围下轨=中轨−2×平均真实范围 其中,平均真实范围(ATR,Average True Range)是衡量市场波动性的工具,它基于最近一段时间内每个交易日的最高价和最低价之间的范围,以及前一交易日的收盘价与当前交易日高低价的差值。 3.3 唐奇安通道 唐奇安通道(Donchian Channels)适用于捕捉和跟踪市场趋势,通过确定市场的最高高点和最低低点来形成一个价格通道。 上轨:确定特定周期内的最高价的最大值。 下轨:确定特定周期内的最低价的最小值。 中轨:通常是上轨和下轨的平均值,计算公式为: 中轨=(上轨+下轨)/2中轨 = (上轨 + 下轨) / 2中轨=(上轨+下轨)/2 3.4 霍尔特-温特通道 霍尔特-温特通道(Holt-Winter Channel,HWC)是基于霍尔特-温特移动平均线(Holt-Winter Moving Average,HWMA)的一种通道指标。其主要用于考虑时间序列的平滑、趋势和季节性变化。 中轨:中轨是 HWM,代表了市场价格的平均水平,并且综合考虑了市场的平滑性、趋势性和季节性因素。 上轨:通常设定为中轨加上一定倍数的市场价格波动标准差。 下轨:通常设定为中轨减去一定倍数的市场价格波动标准差。 3.5 加速带 加速带(Acceleration Bands,ACCBANDS)旨在通过绘制围绕简单移动平均线的上轨和下轨来帮助投资者识别资产价格的潜在波动范围和趋势变化。加速带尤其适用于捕捉市场价格的快速运动,从而为交易决策者提供参考。 上轨:上轨的计算基于调整后的最高价 HIGH。具体来说,会根据当天的价格波动(最高价和最低价之差)来确定一个比例,然后将 HIGH 稍微向上推移一定比例,即得到调整后的最高价 HIGH。上轨为调整后最高价 HIGH 的移动平均线,计算公式为: UPPER=MA(HIGH,length)\mathrm{UPPER} = \mathrm{MA}(\mathrm{HIGH}, \mathrm{length})UPPER=MA(HIGH,length) 下轨:下轨的计算类似,基于调整后的最低价 LOW。下轨为调整后的最低价 LOW 的移动平均线,计算公式为: LOWER=MA(LOW,length)\mathrm{LOWER} = \mathrm{MA}(\mathrm{LOW}, \mathrm{length})LOWER=MA(LOW,length) 中轨:为收盘价的移动平均价,计算公式为: MID=MA(close,length)\mathrm{MID} = \mathrm{MA}(\mathrm{close}, \mathrm{length})MID=MA(close,length) 4. 通道择时的特点 跟随市场波动调整:以上几种通道都是波动性的指标,通道的宽度随着市场波动性的增减而调整。**在波动性大的市场中,通道会变宽;在波动性小的市场中,通道会收窄。**通道的收敛和扩散可以指示市场波动性的变化。 趋势追踪:通着可以帮助识别市场趋势。 在明显的上升或下降趋势中,价格往往沿着通道的上轨或下轨移动。交易者可以利用这一点来加强趋势跟踪策略。 在没有明显趋势的市场中,价格往往在上轨和下轨之间波动。交易者可以在价格触及上轨时考虑卖出,在触及下轨时考虑买入。 反转交易:当价格触及上轨或下轨时,也有可能表明价格达到短期极端水平,有反转的可能。 参考资料 量化策略05—通道突破择时交易策略详解(上) 量化策略06—通道突破择时交易策略详解(下)

2024/5/20
articleCard.readMore

均线择时策略

1. 简介 均线择时是一种常用的量化投资策略,其主要通过分析金融资产价格的移动平均线(MA,Moving Average)来确定买入和卖出的时机。 移动平均线是通过计算一定时期内的平均价格,并将这些平均值连成线条,形成价格走势平滑曲线。均线能够有效地滤除市场噪音,捕捉主要趋势。 2. 均线择时策略 2.1 单均线择时策略 顾名思义,单均线择时策略使用一条移动平均线作为判断股票/其他金融资产买入和卖出时机的依据。其核心思想在于,移动平均线可以平滑价格波动,反映出资产的长期趋势。 当移动平均线表示趋势向上时,是买入的信号;当移动平均线表示趋势向下时,是卖出的信号。 单均线买卖信号构建的方法有以下几种: 当日的均线值大于昨日的均线值为买入信号,反之为卖出信号。 当日均线的 nnn 日平均值大于昨日均线的 nnn 日平均值为买入信号,反之为卖出信号。 用最近 nnn 日的均线值构建线性回归方程,线性回归的斜率是正数为买入信号,反之为卖出信号。 2.2 多均线择时策略 多均线择时策略的基本原理是利用不同周期的移动平均线来反映市场的不同时间框架下的趋势。短期均线可以反映短期内的价格波动,变动更灵敏但波动更大;而长期均线则能更好地反映中长期的价格趋势,变动更延迟但更稳定。 当短期均线从下向上穿过长期均线时,通常被视为买入信号;相反,当短期均线从上向下穿过长期均线时,则被视为卖出信号。 多均线买卖信号构建的方法有以下几种: 双均线策略:使用长短两条均线,当短均线位于长均线上方时为买入信号,反之为卖出信号。短均线有时出用收盘价替代,即将收盘价视为周期为 111 的均线。 三均线策略:使用长中短三条均线,当出现多头排列,即短期均线位于中期均线之上而且中期均线位于长期均线之上时,为买入信号;当出现空头排列,即短期均线位于中期均线之下而且中期均线位于长期均线之下时,为卖出信号。 参考资料 量化策略01—均线择时策略全攻略(上) 量化策略02—均线择时策略全攻略(下)

2024/5/20
articleCard.readMore

Partial Plots

Partial Dependence Plots While feature importance shows what variables most affect predictions, partial dependence plots show how a feature affects predictions. For linear or regression models, partial dependence plots can be interpreted similarly to the coefficients in those models. Though, partial dependence plots on sophisticated models can capture more complex patterns than coefficients from simple models. How It Works Like permutation importance, partial dependence plots are calculated after a model has been fit. Instead of shuffling the feature, we repeatedly alter the value for one variable to make a series of predictions and plot the predicted outcome. 2D Partial Dependence Plots If you are curious about interactions between features, 2D partial dependence plots are also useful, where x-axis denotes a feature and y-axis another feature and the contour line denotes the predicted outcome. Reference Machine Learning Explainability

2024/1/15
articleCard.readMore

因子投资基础

CAPM 理论 MM 定理(即资本结构无关原理),其认为在不考虑税收、破产成本、信息不对称,且市场有效的假设下,企业价值不会因为企业融资方式改变而改变。 在 CAPM 理论被提出之前,人们对于风险如何影响一个公司的资本成本并进而影响预期收益率并没有清晰的认识。CAPM 理论也称为资本资产定价模型理论,其公式定义如下: E[Ri]−Rf=βi(E[RM]−Rf)(1)E[R_i] - R_f = \beta_i (E[R_M] - R_f) \tag{1}E[Ri​]−Rf​=βi​(E[RM​]−Rf​)(1) 其中,RiR_iRi​ 为某资产 iii 的收益率,RfR_fRf​ 为无风险收益率,RMR_MRM​ 为市场组合的预期收益率,βi=cov(Ri,RM)/var(RM)\beta_i = \mathrm{cov}(R_i, R_M) / \mathrm{var}(R_M)βi​=cov(Ri​,RM​)/var(RM​) 刻画了该资产收益对市场收益的敏感程度,或者说资产 iii 对市场风险的暴露程度。CAPM 理论指出,资产的预期超额收益率由市场组合的预期收益率和资产对市场风险的暴露大小决定。其中市场组合也称为市场因子。 APT 理论 在 CAPM 的基础上,APT 理论(即套利定价理论)构建了线性多因子定价模型,简称多因子模型。多因子模型假设资产 iii 的预期超额收益由以下多元线性模型决定: E[Rie]=βiλ(2)E[R_i^e] = \boldsymbol{\beta_i} \boldsymbol{\lambda} \tag{2}E[Rie​]=βi​λ(2) 其中,E[Rie]E[R_i^e]E[Rie​] 表示资产 iii 的预期超额收益,βi\boldsymbol{\beta_i}βi​ 是资产 iii 的因子暴露(或称因子载荷),λ\boldsymbol{\lambda}λ 是因子预期收益(或称因子溢价)。因子之于资产类比于营养之于食物,每种食物包含了哪些成分以及包含了多少(类比多因子模型中的 βi\boldsymbol{\beta_i}βi​),该食物包含的每种营养成分对人体健康的重要性(类比多因子模型中的 λ\boldsymbol{\lambda}λ)。 多因子模型假设资产的预期收益率是由一系列因子的预期收益率和资产在这些因子上的暴露决定。 多因子模型研究的是不同资产预期收益率之间的差异,而非单一资产收益率在时间序列上的变化。 一个因子描述了众多资产共同暴露的某种系统性风险,该风险是资产收益率背后的驱动力;因子收益率正是这种系统性风险的风险溢价或风险补偿,它是这些资产的共性收益。(由该定义可知,因子必须能够解释资产预期收益率截面上的差异) 在选择多因子模型包括的因子时,必须要考虑相关性的影响,人们希望加入模型的因子是相互独立的、每个因子都能对解释资产预期收益率截面差异有显著的增量贡献。学术界的主流多因子模型通常包括 3∼53 \sim 53∼5 个因子。 对于某个给定的资产 iii,如果它的实际预期收益率和多因子模型隐含的预期收益率之间存在误差,且该误差显著不为零,则称该资产为一个异象,其预期超额收益率由以下公式刻画: E[Rie]=αi+βiλ(3)E[R_i^e] = \alpha_i + \boldsymbol{\beta_i} \boldsymbol{\lambda} \tag{3}E[Rie​]=αi​+βi​λ(3) 其中,βiλ\boldsymbol{\beta_i} \boldsymbol{\lambda}βi​λ 是一个定价模型,其所包含的因子称为定价因子;αi\alpha_iαi​ 代表的是按某种方法构建出的能够获得多因子模型无法解释的超额收益的资产,因此它又被称为异象因子。 因子投资 因子投资的内容可以因研究的对象是式 (3)(3)(3) 右侧的 βiλ\boldsymbol{\beta_i} \boldsymbol{\lambda}βi​λ 或 αi\alpha_iαi​ 而分成两大类,每一大类又可以从学术界和业界不同立场再进一步划分。 关注于 βiλ\boldsymbol{\beta_i} \boldsymbol{\lambda}βi​λ 的研究 学术界关注的是找到「最好」的多因子模型,即在该模型下资产的 αi\alpha_iαi​ 尽可能接近零,也即该模型无法解释的异象越少越好。除此之外,另一个重点是对主动基金管理人的业绩进行归因。 业界进行因子投资最重要的目标是使用因子来获取超过基准的收益,因此业界从资产配置的角度聚焦于找到长期来看有风险溢价的因子(即 λ\lambdaλ 大),并以尽可能高的暴露(即 βi\beta_iβi​ 高)配置在这些因子上。 关注于 αi\alpha_iαi​ 的研究 αi\alpha_iαi​ 代表了可以通过套利获得的超额收益。 学术界研究异象的主要动机在于使用异象来评判市场并非有效或描述市场均衡状态的因子模型有误。解释异象的能力是评价多因子模型优劣的重要标准之一。 业界并不严格区分定价因子和异象因子,其对异象的研究动机在于在考虑了交易成本之后,使用该异象因子是否仍然能够获得超额收益。 截面角度 vs. 时序角度 多因子模型主要研究资产的预期收益和 βi\beta_iβi​ 之间的关系,即资产预期收益率在截面上的差异,而预期收益率是收益率在时间上的平均,因此多因子模型仅关心不同资产的收益率均值为什么会有差异,而非每个资产的收益率如何随时间变化。将式 (3)(3)(3) 沿时间轴展开,资产超额收益和因子收益率在时序上满足如下多元线性回归模型: Rite=αi+βiλt+εit(4)R_{it}^e = \alpha_i + \boldsymbol{\beta_i}\boldsymbol{\lambda_t} + \varepsilon_{it} \tag{4}Rite​=αi​+βi​λt​+εit​(4) 其中 RiteR_{it}^eRite​ 表示 ttt 时刻资产 iii 的超额收益,λt\boldsymbol{\lambda_t}λt​ 表示 ttt 时刻因子收益率,εit\varepsilon_{it}εit​ 表示 ttt 时刻的随机扰动。下图展示了多因子模型的截面角度和时序角度之间的切换: 在时序角度下,因子投资中的两个重要问题是方差模型和因子择时。 方差模型:将 NNN 个资产的时序多元回归模型放在一起: Rte=α+βλt+εt(5)\boldsymbol{R_t^e} = \boldsymbol{\alpha} + \boldsymbol{\beta}\boldsymbol{\lambda_t} + \boldsymbol{\varepsilon_t} \tag{5}Rte​=α+βλt​+εt​(5) 其中,Rte=[R1te,R2te,⋯ ,RNte]\boldsymbol{R_t^e} = [R_{1t}^e, R_{2t}^e, \cdots, R_{Nt}^e]Rte​=[R1te​,R2te​,⋯,RNte​] 是 NNN 维超额收益向量,α=[α1,α2,⋯ ,αN]\boldsymbol{\alpha} = [\alpha_1, \alpha_2, \cdots, \alpha_N]α=[α1​,α2​,⋯,αN​] 是 NNN 维定价误差向量,β=[β1,β2,⋯ ,βN]\boldsymbol{\beta} = [\beta_1, \beta_2, \cdots, \beta_N]β=[β1​,β2​,⋯,βN​] 是 N×KN \times KN×K 因子暴露矩阵,εt=[ε1t,ε2t,⋯ ,εNt]\varepsilon_t = [\varepsilon_{1t}, \varepsilon_{2t}, \cdots, \varepsilon_{Nt}]εt​=[ε1t​,ε2t​,⋯,εNt​] 是 NNN 维随机扰动向量,满足 E[εt]=0E[\varepsilon_t] = 0E[εt​]=0 以及 cov(λt,εt)=0\mathrm{cov}(\lambda_t, \varepsilon_t) = 0cov(λt​,εt​)=0。对式 (5)(5)(5) 两侧求协方差矩阵并利用 cov(λt,εt)=0\mathrm{cov}(\lambda_t, \varepsilon_t) = 0cov(λt​,εt​)=0 可得: Σ=βΣλβ′+Σε(6)\Sigma = \beta \Sigma_\lambda \beta^{'} + \Sigma_\varepsilon \tag{6}Σ=βΣλ​β′+Σε​(6) 其中,Σ\SigmaΣ(NNN 阶矩阵)、Σλ\Sigma_\lambdaΣλ​(KKK 阶矩阵)以及 Σε\Sigma_{\varepsilon}Σε​(NNN 阶矩阵)分别为 NNN 个资产的协方差矩阵、KKK 个因子的协方差矩阵以及 NNN 个随机扰动的协方差矩阵。由于 εit\varepsilon_{it}εit​ 相互独立,因此 Σε\Sigma_\varepsilonΣε​ 是一个对角阵。式 (6)(6)(6) 就是关于方差的模型。 因子择时:在时序角度,人们关心的是因子收益率如何随时间波动。学术界通常关心的是不同因子和宏观经济以及投资者情绪之间的关系;业界则是进行资产配置和获取超额收益。 管理实践 当基金管理人实施因子投资时,往往可以从以下几个角度考虑: 收益预测 vs. 风险管理 资金流入削弱因子收益率 因子择时 区分 α\alphaα 和 β\betaβ 收益 创新的价值 收益预测 vs. 风险管理 不同的管理人使用多因子模型的角度可能截然不同。 有的从截面角度使用因子获取超额收益; 有的从时序角度使用多因子模型计算投资组合中股票之间的协方差矩阵,即风险管理; 或者同时进行收益预测和风险管理,并在这个基础上进行投资组合的优化。 资金流入削弱因子收益率 当越来越多的资金涌入因子投资时会造成因子拥挤。使用相似的指标排序、接近的调仓频率的因子投资更加加剧了这种负面影响。任何投资策略想要持续赚钱都是利用了市场在某方面的非有效性。当使用的人越来越多,市场在这方面就会变得更有效,从而降低该因子的预期收益率。 因子择时 因子择时是个大课题,其背后的动机简单而清晰:因子的表现都有周期性,有时能够获得超额收益,有时却持续亏损。因此如果能成功择时,将会极大提高因子投资的收益率。在因子择时的众多方法中,最重要的两类方法是按因子估值和按因子动量择时两大立场。 区分 α\alphaα 和 β\betaβ 收益 从多因子模型公式 (3)(3)(3) 可知,某个资产的高收益既可能来自高 α\alphaα 也可能来自选择了收益率高的因子并且以高暴露 β\betaβ 配置在这些因子上,因此业界/学术界通常把这两部分收益称为 α\alphaα 和 β\betaβ 收益。管理人获得的超额收益中,80%80\%80% 的部分可以由因子暴露解释,只有剩下 20%20\%20% 才取决于获得 α\alphaα 的能力。 创新的价值 对于因子投资来说,创新意味着使用新的数据或者算法。各种另类数据和机器学习算法近来被广泛应用于因子投资实践中。

2024/1/13
articleCard.readMore

Permutation Importance

Feature Importance One of the most basic questions is the feature importance, namely what features have the biggest impact on predictions ? There are multiple ways to measure feature importance. Some approaches answer subtly different versions of the question above. Other approaches have documented shortcomings. Compared to most other approaches, permutation importance is: fast to calculate widely used and understood consistent with properties we would want a feature importance measure to have How It Works Permutation importance is calculated after a model has been fitted. Permutation importance is answered by the following question: If we randomly shuffle a single column of the validation data, leaving the target and all other columns in place, how would the affect the accuracy of predictions in that now-shuffled data ? With this insight, the process is as follows: Get a trained model. Shuffle the values in a single column, make predictions using the resulting dataset. Use these predictions and the true target values to calculate how much the loss function suffered from shuffling. That performance deterioration measures the importance of the variable you just shuffled. Return the data to the original order. Now repeat step 2 with the next column in the dataset, until you have calculated the importance of each column. Interpreting Permutation Importance The more accuracy decrease, the more important of that feature. Like most things in data science, there is some randomness to the exact performance change from a shuffling column. We can measure the amount of randomness in our permutation importance calculation by repeating the process with multiple shuffles and calculate the mean. In those cases, which have negative values for permutation importance, the predictions on the shuffled data happened to be more accurate than the real data. This happens when the feature didn’t matter (should have had an importance close to 0), but random chance caused the predictions on shuffled data to be more accurate. This is more common with small datasets, like the one in this example, because there is more room for luck/chance. Reference Machine Learning Explainability

2024/1/11
articleCard.readMore

Use Cases for Model Insights

Model Insights There are some valuable insights from sophisticated machine learning: What features in the data did the model think are most important ? For any single prediction from a model, how did each feature in the data affect that particular prediction ? How does each feature affect the model’s prediction in a big-picture sense (What is its typical effect when considered over a large number of possible predictions) ? Effect of Insights These insights have many uses, including: Debugging Informing feature engineering Directing future data collection Informing human decision-making Building trust Reference Machine Learning Explainability

2024/1/11
articleCard.readMore

天文相关资源汇总

网站网址 牧夫天文网https://bbs.imufu.cn/portal.php 北国光电https://www.bggd.com/bbs/ 奇点天文https://www.dprenvip.com/ 博科园https://www.bokeyuan.net/

2023/12/16
articleCard.readMore

被讨厌的勇气

《被讨厌的勇气》— 岸见一郎 「如果说自卑是人类与世界互动的必然结果,那么勇气就是人们在追寻意义人生中的必然能力。它就藏在每个生命体的某个角落,期待着特别的机遇。」 「不死不生。对于一个渴望摆脱旧日模式、重新生出一个自己的人来说,勇气总是第一位的。这个勇气包括不怕试错、不怕被黑、被死千回还能重新活过来的力量。」 「发生什么事不重要,我们怎么看待这些事才重要。」 「生活给我们各种束缚。第一个束缚来自过去,重要的不是过去,而是你怎么看待过去;第二个束缚来自人际关系,理想的人际关系大概是我爱你,但与你无关;第三个束缚来自未来,当下才是生活的真谛。当我们从这些束缚中解脱出来,会发现我们其实一直很自由,真正让我们裹足不前的,原来是我们自己。」 「人生不是由别人赋予的,而是由自己选择的,是自己选择自己如何生活。」 「重要的不是被给予了什么,而是如何去利用被给予的东西。」 「你的不幸,皆是自己选择的。」 「无论之前的人生发生过什么,都对今后的人生如何度过没有影响。」 「一切烦恼都是人际关系的烦恼。只要涉入人际关系,就会或大或小地受伤,也会伤害别人。」 「人生不是与他人的比赛。我们都走在一个并不存在纵轴的水平面上,我们不断向前迈进并不是为了与谁竞争。价值在于不断超越自我。」 「如果在人际关系中存在竞争,那人就不可能摆脱人际关系带来的烦恼,也就不可能摆脱不幸。不知不觉就会把他人乃至整个世界看成敌人。」 「如果能够体会到人人都是我的伙伴,那么对世界的看法也会截然不同。」 「人在人际关系中一旦确信我是正确的,那就已经步入权力之争。如果你认为自己正确的话,那么无论对方持什么意见都应该无所谓。」 「眼镜模糊了,只能看到眼前的胜负就会走错道路,我们只有摘掉竞争或胜负之争的眼镜才能够改变完善自己。」 「倘若自己都不为自己活出自己的人生,那还有谁会为自己而活呢?我们并不是为了满足别人的期待而活着。」 「基本上,一切人际关系矛盾都起因于对别人的课题妄加干涉或者自己的课题被别人妄加干涉。不去干涉别人的课题也不让别人干涉自己的课题。」 「能够改变自己的只有自己。」 「毫不在意别人的评价、不害怕被别人讨厌、不追求被他人认可,如果不付出以上这些代价,那就无法贯彻自己的生活方式。 」 「把对自己的执著变成对他人的关心。一味在意他人怎么看的生活方式正是只关心我的自我中心式的生活方式。」 「归属感不是生来就有的东西,而是要靠自己的手去获得。」 「最重要的是不评价他人。」 「必须有人开始。即使其他人不合作,那也跟你没关系。我的意见就是这样:应该由你来开始,不必动考虑他人是否合作。」 「与他人之间,只有一方面也可以,要建立起横向关系来。如果你与某人建立起了纵向关系,那你就会不自觉地从纵向去把握所有的人际关系。重要的是意识上的平等以及坚持自己应有的主张。」 「过多的自我意识,反而会束缚自己。」 「我们并不缺乏能力,只是缺乏勇气。」 「信赖,即在相信他人的时候不附加任何条件。如果不敢去信赖别人,那最终就会与任何人都建立不了深厚的关系。」 「我们应该思考的不是他人为我做了什么,而是我能为他人做什么,并积极地加以实践。」 「对人而言,最大的不幸就是不喜欢自己。」 「人生就像是在每一个瞬间不停旋转起舞的连续的刹那,我们只能活在此时此刻。」 「计划式的人生不是有没有必要,而是根本不可能。」 「过去发生了什么与你的此时此刻没有任何关系,未来会如何也不是此时此刻要考虑的问题。」 「起决定作用的既不是昨天也不是明天,而是此时此刻。」

2023/11/13
articleCard.readMore

量化笔试数理知识复习

概率论 常用公式数学描述 全概率公式$P(X) = \sum_n P(X, Y_i) = \sum_n P(X 条件概率公式$P(X 贝叶斯公式$P(X, Y) = P(X 统计 切比雪夫不等式 设随机变量 XXX 具有数学期望 E(X)=μE(X) = \muE(X)=μ,方差 D(X)=σ2D(X) = \sigma^2D(X)=σ2,则对于任意正数 ε\varepsilonε,不等式 P{∣X−μ∣≥ε}≤σ2ε2P\{ |X - \mu| \geq \varepsilon \} \leq \frac{\sigma^2}{\varepsilon^2}P{∣X−μ∣≥ε}≤ε2σ2​ 或者 P{∣X−μ∣<ε}≥1−σ2ε2P\{ |X - \mu| \lt \varepsilon \} \geq 1 - \frac{\sigma^2}{\varepsilon^2}P{∣X−μ∣<ε}≥1−ε2σ2​ 弱大数定理 设 X1,X2,⋯X_1, X_2, \cdotsX1​,X2​,⋯ 是相互独立,服从同一分布的随机变量序列,且具有数学期望 E(Xk)=μ,(k=1,2,⋯ )E(X_k) = \mu, (k = 1, 2, \cdots)E(Xk​)=μ,(k=1,2,⋯)。作前 nnn 个变量的算术平均 1n∑k=1nXk\frac{1}{n} \sum_{k=1}^n X_kn1​∑k=1n​Xk​,则对于任意 ε>0\varepsilon \gt 0ε>0,有 lim⁡n→∞P{∣1n∑k=1nXk−μ∣<ε}=1\lim_{n \rightarrow \infty} P\left\{\left|\frac{1}{n} \sum_{k=1}^n X_k - \mu\right| \lt \varepsilon\right\} = 1n→∞lim​P{∣ ∣​n1​k=1∑n​Xk​−μ∣ ∣​<ε}=1 伯努利大数定理 设 fAf_AfA​ 是 nnn 次独立重复试验中事件 AAA 发生的次数,ppp 是事件 AAA 在每次试验中发生的概率,则对于任意正数 ε>0\varepsilon \gt 0ε>0,有 lim⁡n→∞P{∣fAn−p∣<ε}=1\lim_{n \rightarrow \infty} P \left\{ \left| \frac{f_A}{n} - p \right| \lt \varepsilon \right\} = 1n→∞lim​P{∣ ∣​nfA​​−p∣ ∣​<ε}=1 或者 lim⁡n→∞P{∣fAn−p∣≥ε}=0\lim_{n \rightarrow \infty} P\left\{ \left| \frac{f_A}{n} - p \right| \geq \varepsilon \right\} = 0n→∞lim​P{∣ ∣​nfA​​−p∣ ∣​≥ε}=0 微积分 泰勒公式 设 nnn 是一个正整数,如果定义在一个包含 aaa 的区间上的函数 fff 在 aaa 点处 n+1n+1n+1 次可导,那么对于这个区间上的任意 xxx 都有: f(x)=∑n=0Nf(n)(a)n!(x−a)n+Rn(x)f(x) = \sum_{n=0}^N \frac{f^{(n)}(a)}{n!} (x - a)^n + R_n (x)f(x)=n=0∑N​n!f(n)(a)​(x−a)n+Rn​(x) 当 aaa 为 000 时,我们称之为麦克劳林公式。 微分表 初等函数导数 tan⁡x\tan{x}tanxsec⁡2x=1cos⁡2x\sec^2 x = \frac{1}{\cos^2 x}sec2x=cos2x1​ cot⁡x\cot xcotx−csc⁡2x=−1sin⁡2x-\csc^2 x = -\frac{1}{\sin^2 x}−csc2x=−sin2x1​ sec⁡x\sec xsecxsec⁡xtan⁡x\sec x \tan xsecxtanx csc⁡x\csc xcscx−csc⁡xcot⁡x-\csc x \cot x−cscxcotx arcsin⁡x\arcsin xarcsinx$\frac{1}{\sqrt{1 - x^2}}, arccos⁡x\arccos xarccosx$-\frac{1}{\sqrt{1 - x^2}}, arctan⁡x\arctan xarctanx11+x2\frac{1}{1 + x^2}1+x21​ ln⁡x\ln xlnx1x\frac{1}{x}x1​ exe^xexexe^xex xnx^nxnnxn−1n x^{n-1}nxn−1 f(x)g(x)f(x) g(x)f(x)g(x)f′(x)g(x)+f(x)g′(x)f^{'}(x) g(x) + f(x) g^{'}(x)f′(x)g(x)+f(x)g′(x) f(x)g(x)\frac{f(x)}{g(x)}g(x)f(x)​f′(x)g(x)−f(x)g′(x)g2(x)\frac{f^{'}(x)g(x) - f(x)g^{'}(x)}{g^2(x)}g2(x)f′(x)g(x)−f(x)g′(x)​ f(g(x))f(g(x))f(g(x))f′(g(x))g′(x)f^{'}(g(x))g^{'}(x)f′(g(x))g′(x) 积分表 不定积分积分结果 ∫exdx\int e^x \mathrm{d}x∫exdxex+Ce^x + Cex+C ∫αxdx\int \alpha^x \mathrm{d}x∫αxdxαxln⁡α+C\frac{\alpha^x}{\ln \alpha} + Clnααx​+C ∫ln⁡xdx\int \ln x \mathrm{d}x∫lnxdxxln⁡x−x+Cx \ln x - x + Cxlnx−x+C ∫log⁡αxdx\int \log_{\alpha} x \mathrm{d}x∫logα​xdx1ln⁡α(xln⁡x−x)+C\frac{1}{\ln \alpha}(x\ln x - x) + Clnα1​(xlnx−x)+C ∫1xln⁡xdx\int \frac{1}{x \ln x} \mathrm{d}x∫xlnx1​dxln⁡(ln⁡x)+C\ln(\ln x) + Cln(lnx)+C ∫cos⁡xdx\int \cos x \mathrm{d}x∫cosxdxsin⁡x+C\sin x + Csinx+C ∫sin⁡xdx\int \sin x \mathrm{d}x∫sinxdx−cos⁡x+C-\cos x + C−cosx+C ∫sec⁡2xdx\int \sec^2 x \mathrm{d}x∫sec2xdxtan⁡x+C\tan x + Ctanx+C ∫csc⁡2xdx\int \csc^2 x\mathrm{d}x∫csc2xdx−cot⁡x+C-\cot x + C−cotx+C ∫tan⁡xdx\int \tan x \mathrm{d}x∫tanxdx$-\ln ∫cot⁡xdx\int \cot x \mathrm{d}x∫cotxdx$\ln ∫sec⁡xdx\int \sec x \mathrm{d}x∫secxdx$\ln ∫csc⁡xdx\int \csc x \mathrm{d}x∫cscxdx$\ln ∫sin⁡nxdx\int \sin^n x \mathrm{d}x∫sinnxdx−1nsin⁡n−1xcos⁡x+n−1n∫sin⁡n−2xdx+C,∀n≥2-\frac{1}{n} \sin^{n-1} x \cos x + \frac{n-1}{n} \int \sin^{n-2}x \mathrm{d}x + C, \forall n \geq 2−n1​sinn−1xcosx+nn−1​∫sinn−2xdx+C,∀n≥2 ∫cos⁡nxdx\int \cos^n x \mathrm{d}x∫cosnxdx1ncos⁡n−1xsin⁡x+n−1n∫cos⁡n−2xdx+C,∀n≥2\frac{1}{n} \cos^{n-1} x \sin x + \frac{n-1}{n} \int \cos^{n-2} x \mathrm{d}x + C, \forall n \geq 2n1​cosn−1xsinx+nn−1​∫cosn−2xdx+C,∀n≥2 ∫tan⁡nxdx\int \tan^n x \mathrm{d}x∫tannxdx1n−1tan⁡n−1x−∫tan⁡n−2xdx+C,∀n≥2\frac{1}{n-1} \tan^{n-1} x - \int \tan^{n-2} x \mathrm{d}x + C, \forall n \geq 2n−11​tann−1x−∫tann−2xdx+C,∀n≥2 ∫cot⁡nxdx\int \cot^n x \mathrm{d}x∫cotnxdx−1n−1cot⁡n−1x−∫cot⁡n−2xdx+C,∀n≥2-\frac{1}{n-1} \cot^{n-1} x - \int \cot^{n-2}x \mathrm{d}x + C, \forall n \geq 2−n−11​cotn−1x−∫cotn−2xdx+C,∀n≥2 ∫sec⁡nxdx\int \sec^n x \mathrm{d}x∫secnxdx1n−1sec⁡n−2xtan⁡x+n−2n−1∫sec⁡n−2xdx+C,∀n≥2\frac{1}{n-1} \sec^{n-2}x \tan x + \frac{n-2}{n-1} \int \sec^{n-2}x \mathrm{d}x + C, \forall n \geq 2n−11​secn−2xtanx+n−1n−2​∫secn−2xdx+C,∀n≥2 ∫csc⁡nxdx\int \csc^n x \mathrm{d}x∫cscnxdx−1n−1csc⁡n−2xcot⁡x+n−2n−1∫csc⁡n−2xdx+C,∀n≥2-\frac{1}{n-1} \csc^{n-2}x \cot x + \frac{n-2}{n-1} \int \csc^{n-2}x \mathrm{d}x + C, \forall n \geq 2−n−11​cscn−2xcotx+n−1n−2​∫cscn−2xdx+C,∀n≥2 ∫arcsin⁡xdx\int \arcsin x \mathrm{d}x∫arcsinxdxxarcsin⁡x+1−x2+Cx\arcsin x + \sqrt{1-x^2} + Cxarcsinx+1−x2 ​+C ∫arccos⁡xdx\int \arccos x \mathrm{d}x∫arccosxdxxarccos⁡x−1−x2+Cx \arccos x - \sqrt{1-x^2} + Cxarccosx−1−x2 ​+C ∫arctan⁡xdx\int \arctan x \mathrm{d}x∫arctanxdx$x \arctan x - \frac{1}{2} \ln 定积分积分结果 ∫−∞∞e−αx2dx\int_{-\infty}^{\infty} e^{-\alpha x^2} \mathrm{d}x∫−∞∞​e−αx2dxπα\sqrt{\frac{\pi}{\alpha}}απ​ ​ ∫0π2sin⁡nxdx=∫0π2cos⁡nxdx\int_{0}^{\frac{\pi}{2}} \sin^n x \mathrm{d}x = \int_{0}^{\frac{\pi}{2}} \cos^n{x} \mathrm{d}x∫02π​​sinnxdx=∫02π​​cosnxdx{n−1n⋅n−3n−2⋯23,n>1∧n%2=1n−1n⋅n−3n−2⋯12⋅π2,n>0∧n%2=0\begin{cases} \frac{n-1}{n} \cdot \frac{n-3}{n-2} \cdots \frac{2}{3}, \quad n > 1 \wedge n\%2 = 1 \\ \frac{n-1}{n} \cdot \frac{n-3}{n-2} \cdots \frac{1}{2} \cdot \frac{\pi}{2}, \quad n > 0 \wedge n\%2 = 0 \end{cases}{nn−1​⋅n−2n−3​⋯32​,n>1∧n%2=1nn−1​⋅n−2n−3​⋯21​⋅2π​,n>0∧n%2=0​ 线性代数 常见概念定义 奇异矩阵秩不为满秩的矩阵。 对称矩阵A′=AA^{'} = AA′=A。 反对称矩阵A′=−AA^{'} = -AA′=−A。 特征值A−λE=0A - \lambda E = 0A−λE=0 的所有 λ\lambdaλ 解。 迹n×nn \times nn×n 方阵的主对角线上各个元素之和。 抽象代数 常见概念定义 随机过程

2023/10/28
articleCard.readMore

你当像鸟飞往你的山

《你当像鸟飞往你的山》— 塔拉·韦斯特弗 「负罪感源于一个人对自身不幸的恐惧,与他人无关。」 「过去是一个幽灵,虚无缥缈,没什么影响力。只有未来才有分量。」 「见证和体验超越父亲所给予我的更多的真理,并用这些真理构建我自己的思想。」 「当生活本身已经如此荒唐,谁知道什么才能算作疯狂。」 「尽管我已经弃绝了父亲的世界,却从未寻找到生活在这个世界上的勇气。」 「消极自由是不外部限制或阻碍的自由。积极自由是自制,由自我掌控的自我统治。拥有积极自由就是控制自己的思想,从非理性的恐惧和信仰中解放出来,从上瘾、迷信和所有其他形式的自我强迫中解脱出来。」 「我只是无法忍受别人拍着我的背,对我说多么令人印象深刻。我希望过有意义的生活,而在我看来,交代那些没有任何意义。」 「无论你成为谁,无论你把自己变成了什么,那就是你本来的样子。它一直在你心中, 不是在其他任何地方,而是在于你自己。」 「比起仁慈,我更能容忍任何形式的残忍。赞美于我来说是一种毒药,我被它噎住了。」 「承认不确定性,就是被迫承认自己的软弱和无能,但也意味着你相信你自己。」 「对我来说重要的不是爱情或友情,而是我自欺欺人的能力:相信自己很坚强。」 「我再也不允许自己在一场我并不理解的冲突中首当其冲。」 「有的人反对平等的大潮,有的人必须从某些人那里夺取自由。」 「过去总是美好的,因为一个人从来都意识不到当时的情绪;它后来扩展开来,因此我们只对过去,而非现在,拥有完整的情绪。」 简介 塔拉是一个在拥有众多兄弟姊妹的摩门教家庭中长大的女孩,她们家地处爱达荷州的偏远山区。山区的闭塞,加上父亲的权威,让她对父亲所说的一切都深信不疑。巴克峰孕育了她的青少年,培养了她的灵性。生活本该一如既往,但时间却总是单向流淌,身边兄弟姐妹的成长与离别,开始唤醒她内心的思考。当她决定走出家乡,到城里上大学,她命运的齿轮终于开始转动。城市的生活,和家乡的生活,不仅是距离上的隔阂,更是精神上的撕裂。游走于两个世界的她,开始理解自己,理解人性,知道了自己害怕什么,恐惧什么,渴望什么。她开始独立思考,拥有自己意志,开始作为一个独立的人,而不是别的附属物,而存在于这个世间。正如她自己所说:「我曾怯懦、崩溃、自我怀疑,内心里有什么东西腐烂了,恶臭熏天。直到我逃离大山,打开另一个世界。那是教育给我的新世界,那是我生命的无限可能。」 感想 人从一出生开始,就开始被套上各种名为「标签」的枷锁,它们困住的不是我们肉体,而是无形的灵魂。惟有认识自己、了解自己、改变自己,才能从这无形的锁链中挣脱。只是这个过程必然是极其艰难,且痛苦的。这世间没有什么是永恒不变的,除了「改变」本身。精神世界重塑之际,便是物质世界的我们重生之时。

2023/10/12
articleCard.readMore

Python模块logging

1. 简介

2023/10/9
articleCard.readMore

失去的二十年:日本经济长期停滞的真正原因

《失去的二十年:日本经济长期停滞的真正原因》— 池田信夫 「毅然抛掉明天会比今天更好的期待,学会知足常乐。」 「整个社会将会向着强调个人能力的方向发展。」 「所谓和平,其实质就是既得权利得到保护。」 简介 本书作者池田信夫从经济政策、雇用制度说明了日本过去二十年经济长期停滞的状况和深层原因。 经济政策 日本政府的经济政策目的在于填补 GDP 缺口(GDP 缺口 = 潜在增长率 - 实际增长率),其中对经济长期发展起决定作用的是潜在增长率。而潜在增长率可细分为三个要素:资本投入、劳动投入和生产力。其中最重要的就是生产力(从广义上来说就是指创新), 日本的经济泡沫本质是大规模的信用泡沫。 雇用制度 日本社会目前倡导的年功序列制,,并不能符合当前信息技术高速发展的需求。年功序列制过于保护正式员工的利益,造成社会劳动者身份严重不平等。

2023/10/5
articleCard.readMore

PyTorch的hook机制

1. 简介 钩子编程(hooking),也称作「挂钩」,计算机程序设计术语,指通过拦截软件模块间的「函数调用」、「消息传递」、「事件传递」来修改或扩展操作系统、应用程序或其他软件组件的行为的各种技术。处理被拦截的函数调用、事件、消息的代码,被称为钩子(hook)。 hook 在 PyTorch 中是一个非常有用的特性,利用它可以在不必改变网络输入输出结构的情况下,方便地获取、改变网络中间层变量的值和梯度。 2. Hook for Tensors 在 PyTorch 的计算图中,只有叶节点的变量会保留梯度,而所有中间变量的梯度只在反向传播中使用,一旦把向传播完成,中间变量的梯度将自动释放,从而节约内存。如果想在反向传播后保留他们的梯度,则需要使用 retain_grad() 函数特殊指定。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import torch x = torch.Tensor([0, 1, 2, 3]).requires_grad_() y = torch.Tensor([4, 5, 6, 7]).requires_grad_() w = torch.Tensor([1, 2, 3, 4]).requires_grad_() z = x + y o = torch.matmul(w, z) # z.retain_grad() # o.retain_grad() o.backward() print('x.requires_grad:', x.requires_grad) # True print('y.requires_grad:', y.requires_grad) # True print('z.requires_grad:', z.requires_grad) # True print('w.requires_grad:', w.requires_grad) # True print('o.requires_grad:', o.requires_grad) # True # print grad after backward w/o retain_grad print('x.grad:', x.grad) # tensor([1., 2., 3., 4.]) print('y.grad:', y.grad) # tensor([1., 2., 3., 4.]) print('w.grad:', w.grad) # tensor([4., 6., 8., 10.]) print('z.grad:', z.grad) # None / tensor([1., 2., 3., 4.]) print('o.grad:', o.grad) # None / tensor(1.) 使用 retain_grad() 会增加内存的占用,更好的方法是使用 hook 保存中间变量的梯度。比如对于中间变量 zzz,hook 的使用方法为:z.register_hook(hook_fn),其中 hook_fn 是一个用户自定义的函数,为简化表示也可以直接使用 lambda 表达式代替函数: 1 2 3 4 def hook_fn(grad): -> Tensor or None z.register_hook(hook_fn) # z.register_hook(lambda x: 2*x)# output Tensor # z.register_hook(lambda x: print(x))# output None 该函数输入为变量 zzz 的梯度,输出为一个 Tensor 或 None。反向传播时,梯度传播到变量 zzz 后,再继续往前传播之前,会先传入 hook_fn 函数。如果 hook_fn 返回值是 None,则梯度不改变,继续向前传播;如果 hook_fn 的返回值是 Tensor 类型,则该 Tensor 将取代变量 zzz 原有的梯度,继续向前传播。 3. Hook for Modules 网络模块的 hook 不像 Tensor 一样具有显式的变量名可以访问,而是被封装在神经网络中。PyTorch 设计了两种 hook:register_forward_hook 和 register_backward_hook,分别用来获取前向传播和反向传播时中间层模块的输入和输出特征及梯度。 register_forward_hook register_forward_hook 的作用是获取前向传播过程中,网络各模块的输入和输出。对于模块 module,其使用方法为:module.register_forward_hook(hook_fn),其中 hook_fn 为一个用户自定义的函数。 1 def hook_fn(module, input, output): -> Tensor or None 其中,hook_fn 函数的输入变量分别为模块、模块的输入和模块的输出,输出为 None 或 Tensor,用于修改模块的输出。使用该 hook,可以主方便地使用预训练的神经网格提取特征,而不用改变预训练网络的结构。 register_backward_hook register_backward_hook 的作用是获取反向传播过程中,网络各模块的输入和输出。对于模块 module,其使用方法为:module.register_backward_hook(hook_fn),其中 hook_fn 为一个用户自定义的函数。 1 def hook_fn(module, grad_input, grad_output): -> Tensor or None 其中,hook_fn 函数的输入变量分别为模块、模块输入端的梯度和模块输出端的梯度,这里的输入输出端是站在前向传播的角度来说的。如果模块有多个输入端或输出端,则对应的梯度是 tuple 类型。比如对于线性模块,其 grad_input 是一个三元组,排列顺序分别为:对 bias 的导数、对输入 x 的导数、对权重 w 的导数。 附录 Pytorch中的Hook机制

2023/9/13
articleCard.readMore

A股交易规则

1. 交易时间 集合竞价时间 集合竞价是用来确定开盘价和收盘价的,分为开盘集合竞价和收盘集合竞价。 开盘集合竞价 9:15-9:25 9:15-9:20 可以挂买卖单,也可以撤销 9:20-9:25 可以挂买卖单,但不能撤销,要等 9:30 后才可以 9:25-9:30 是开盘集合竞价的休息时间,不能挂买卖单,要等 9:30 后才可以 9:25 时会产生一个开盘价,开盘价必须要同时满足三个条件: ① 是成交量是最大的 ② 高于开盘价的买入或者低于开盘价的卖出,全部成交 ③ 与开盘价相同的买卖双方,有一方全部成交,满足这三个条件的价格,他就是开盘价 收盘集合竞价 14:57-15:00 这期间可以挂买卖单,但不能撤销,在 15:00 整会产生一个收盘价。 2. 交易单位 股票的交易单位是手,一手就是 100100100 股,要按 100100100 股的整数倍来交易的。卖出可以一次性都卖出,买入必须是 100100100 的整数倍。 3. 涨跌幅制度 大部分股票当天涨跌幅度为昨天收盘的正负 10%10\%10%。 ST 股当天涨跌幅度为昨天收盘的正负 5%5\%5%。 新股上市第一天的最高涨幅为发行价 44%44\%44%,盘中价格首次涨跌幅达到 10%10\%10% 的时候,出现临时停牌 303030 分钟;首次涨跌幅达到 20%20\%20% 的时候,停牌到当日的下午14:55。 科创板上市首 555 个交易日不设涨跌停板限制,只有在第 666 天的时候才设涨幅并且第六天涨跌幅为 20%20\%20%。 4. T+1 交易制度 T+1 交易制度是指当天买入的股票,当天不能卖,要等一个交易日,即要到下一个交易日才可以。 这一制度设计的初衷虽然是为了防止过度投机,但同时也降低了市场的流动性,也无法让交易者在走势不利的时候第一时间抛出股票,所以它是一把双刃剑。 参考资料 第2节 A股的交易规则

2023/9/4
articleCard.readMore

强化学习概述

1. 定义 通过从交互中学习来实现目标的计算方法: 强化学习主要包括三个方面: 感知:在某种程度上感知环境的状态 行动:可以采取行动来影响状态或者达到目标 目标:随着时间的推移最大化累积奖励 2. 交互 强化学习与环境交互过程如下图: 3. 系统要素 历史(History):是观察、行动和奖励的序列。即一直到时间 ttt 为止的所有可观测变量: Ht=O1,R1,A1,O2,R2,A2,⋯ ,Ot−1,Rt−1,At−1,Ot,RtH_t = O_1,R_1,A_1,O_2,R_2,A_2,\cdots,O_{t-1},R_{t-1},A_{t-1},O_t,R_tHt​=O1​,R1​,A1​,O2​,R2​,A2​,⋯,Ot−1​,Rt−1​,At−1​,Ot​,Rt​ 状态(State):一种用于确定接下来会发生的事情的信息。状态是关于历史的函数: St=f(Ht)S_t = f(H_t)St​=f(Ht​) 策略(Policy):是学习智能体在特定时间的行为方式,是从状态到行动的映射。 确实性策略: a=π(s)a = \pi(s)a=π(s) 随机策略: π(a∣s)=P(At=a∣St=s)\pi(a | s) = P(A_t = a | S_t = s)π(a∣s)=P(At​=a∣St​=s) 奖励(Reward):定义强化学习目标的标量,能立即感知到什么是「好」的。 价值函数(Value Function):状态价值是一个标量,用于定义对于长期来说,什么是「好」的。价值函数是对于未来累积奖励的预测: vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+⋯∣St=s]v_{\pi}(s) = \mathbb{E}_{\pi} \left[ R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots | S_t = s \right]vπ​(s)=Eπ​[Rt+1​+γRt+2​+γ2Rt+3​+⋯∣St​=s] 环境模型(Model):用于模拟环境的行为。 预测下一个状态: Pss′a=P[St+1=s′∣St=s,At=a]\mathcal{P}_{ss^{'}}^a = \mathbb{P}[S_{t+1} = s^{'} | S_t = s, A_t = a]Pss′a​=P[St+1​=s′∣St​=s,At​=a] 预测下一个奖励: Rsa=E[Rt+1∣St=s,At=a]\mathcal{R}_{s}^a = \mathbb{E}[R_{t+1} | S_t = s, A_t = a]Rsa​=E[Rt+1​∣St​=s,At​=a]

2023/8/7
articleCard.readMore