机器学习因子挖掘之因子函数构建(WorldQuant101标准)

WorldQuant 101函数

单序列滑动窗口计算,pandas的Series都是支持的,而且计算效率还不错。——Qlib的命名体系与WorldQuant 101不尽相同,我们后续以WorldQuant为准。

import numpy as np
import pandas as pd
from .expr_utils import calc_by_symbol, calc_by_date


@calc_by_symbol
def delay(se: pd.Series, periods=5):
return se.shift(periods=periods)


@calc_by_symbol
def delta(se: pd.Series, periods=20):
se_result = se - se.shift(periods=periods)
return se_result


@calc_by_symbol
def sign(se: pd.Series):
return np.sign(se)


@calc_by_symbol
def ts_min(se: pd.Series, periods=5):
return se.rolling(periods=periods).min()

@calc_by_symbol def ts_max(se: pd.Series, periods=5): return se.rolling(periods=periods).max() @calc_by_symbol def ts_argmin(se: pd.Series, periods=5): return se.rolling(periods=periods).argmin() @calc_by_symbol def ts_argmax(se: pd.Series, periods=5): return se.rolling(periods=periods).argmax() @calc_by_symbol def stddev(se, periods=5): return se.rolling(periods=periods).std()

量化平台开发

给大家看一个量化投资策略开发的界面,还需要一点时间。

图片

从技术上讲,这是纯粹使用bootstrap+jquery开发出来的。

当然jquery直接操作dom有一个缺点,就是如果策略加载要生成界面,同样也操作一轮dom。而vue的双向绑定在这里就会显得特别方便。

我用vue实现了交互逻辑的规则配置界面——vue直接以cdn的模式接入,还是比较舒服的,尤其是数据驱动的应用。

图片

{% verbatim %}
<div id="app">
    
    <table class="table">
        <tr>
            <td>因子</td>
            <td>运算符</td>
            <td></td>
        </tr>
    <tr v-for="(item, index) in items" :key="item.ruleName">
        
        <td>{{ item.ruleName }}</td> 
        <td>
            <select class="form-control" v-model="item.ops">
                <option>大于</option>
                <option>等于</option>
                <option>小于</option>
              </select>
         
        </td>
        <td><input class="form-control" type="text" v-model="item.value" /></td>  
        <td><button class="btn btn-danger" @click="remove($event, index)">删除</button></td>
    </tr>
    </table>
</div>
{% endverbatim %}

<script type="module">
    import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'

    
  
    createApp({
      setup() {
        const message = ref('Hello Vue!')
        const items = ref([
        { ruleName: '收益率(20)', ops:'大于', value:0.08 },
        { ruleName: '斜率(20)', ops:'大于', value:0 }
      ]);


        // 定义一个本地变量来存储当前要删除的项的索引
      let removeIndex = ref(-1);

      function remove(event, index) {
        // items数组中移除指定索引的项
        items.value.splice(index, 1);
      }


        return {
          message,
          items,
          remove
        }
      }
    }).mount('#app')
  </script>

吾日三省吾身

昨天在后台收到一个星友的来信,挺感动的。

应该是一个前外企的大哥(听起来应该比我大)。说一直关注公众号,希望通过这些文章,学习量化投资,建立自己的“ABCZ体系。人生计划之”ABCZ”

有时候,这一章节就像碎碎念,记录我自己当下,或者这段时间,对于投资,职场,人生的一些思考。有时候甚至带有情绪,但贵在真实。

有时候,对一些朋友有一些启发和共鸣,那就再好不过了。

我相信一点,写内容也好,做产品和技术也罢。单纯追热点,也许会带来一时的流量,但很累,没有价值感,长期意义也有限。

而是在自己喜欢且擅长的领域,有对社会真正有长期价值的事情去做。

昨天和一个朋友吃饭聊天。

聊起校园过往,恰同学少年,风华正茂

感慨之余,似乎我们都“成熟”了。——我说,我们只是认清了——大家都是普通人的事实。

当然,并没有躺平。——从“我命由我不由天”到“我命由我也由天”

在大势面前,个人的努力微不足道

学校都开始组织二十年返校活动,明年就大学毕业二十年了。

人生有几个二十年呢?

下一个大势是什么?

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103413
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 29 日
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注