创建一个年化18.3%的策略,一共要多久?超乎你想象

原创文章第616篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。

咱们线上平台,已经支持信号规则,

图片

图片

点一个按钮,创业板动量策略就出来了,快速验证的想法,而不需要写代码。——当然这个平台,昨天已经把代码都同步到星球了,运行出来的效果是一样的。——年化26.4%,quantlab5.5发布——多任务机器学习组合优化,可视化策略生成向导(代码+数据)

核心代码在这里:

这一段代码我是非常满意的,这是昨天灵感来了,由表达式规划直接生成因子信号,而且非常通用。

def get_algos(self):
    algos = []
    algos.append(self.get_bt_algo(self.period))
    algos.append(bt.algos.SelectAll())

    if self.buy_rules or self.sell_rules:  # 至少有一条规则
        if self.buy_rules and self.sell_rules:
            signal_buy = rule_to_signal(self.df_all, self.buy_rules)
            signal_sell = rule_to_signal(self.df_all, self.sell_rules)
            signal = np.where(signal_buy, 1, np.nan)
            signal = np.where(signal_sell, 0, signal)
            signal = pd.DataFrame(signal, index=signal_buy.index, columns=signal_buy.columns)
        elif self.buy_rules:
            signal_buy = rule_to_signal(self.df_all, self.buy_rules)
            signal = np.where(signal_buy, 1, np.nan)
            signal = pd.DataFrame(signal, index=signal_buy.index,columns=signal_buy.columns)
        elif self.sell_rules:
            signal_sell = rule_to_signal(self.df_all, self.sell_rules)
            signal = np.where(signal_sell, 0, 1)
            signal = pd.DataFrame(signal, index=signal_sell.index,columns=signal_sell.columns)

        # signal = np.where(df_roc > 0.08, 1, np.nan)
        # signal = np.where(df_roc < 0, 0, signal)
        # signal = pd.DataFrame(signal, index=df_roc.index, columns=df_roc.columns)
        signal = signal.ffill()
        signal = signal.fillna(0)
        algos.append(bt.algos.SelectWhere(signal))

吾日三省吾身

有时候流量来得快,去得也快,如同当下很多网红的经历。

长期乐观,短期悲观,当下愉悦——应该说专注地做事情。

没有人可以预测未来。

看到一个老同事发的朋友圈,不知是不是原创:

千帆过尽方解油盐非易事 

青丝渐白才知岁月不饶人 

年近四十志渐衰 

久叹青春不重来 

东拼西闯无一获 

额头青丝一半白 

目神散 面染霾 

满腹累赘腿难抬 

岁月赠我百斤肉 

可曾留下一两财

还记得年少时的梦想吗,你们都是要当科学家、宇航员,要改变世界的人。

至少不是一个房子,一辆车,有一份还算稳定的工作。

当然,对很多人,这已经是奢望。

为了碎银几两,为了三餐有汤。

再来一个正式的:

最怕问初衷,梦幻成空。

年少励志三千里,踌躇百步无寸功。 

转眼高堂皆白发,儿女蹒跚学堂中。 

碎银几两催人老,心仍少。

皱纹悄然上眉中,浮生醉酒回梦里。 

青春人依旧,只叹时光太匆匆。

ABCZ——人生计划之"ABCZ"

A对于收入来讲是最稳定的,除了工作的稳定本身。

B给了自己主导权,做你喜欢的事情,也许有收入,但不一定稳定,没有人给你承诺,你需要努力,还需要运气。

Z需要本金和时间,静待花开。

C计划呢,你的理想、你的疯狂,你的梦。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现FFT运算器需要经过以下步骤: 1. 确定FFT的参数:FFT的点数N,蝶形运算的级数M。 2. 设计蝶形运算单元:蝶形运算单元是FFT的基本运算单元,可以采用Butterfly结构或Twiddle结构。 3. 设计FFT的流水线结构:FFT运算器需要流水线结构才能满足高速运算的需求。 4. 编写Verilog代码:根据设计好的蝶形运算单元和FFT流水线结构,编写Verilog代码。 以下是一个简单的FFT运算器的Verilog代码实现示例: ``` module fft ( input clk, // 时钟信号 input rst, // 复位信号 input [15:0] x_in[N], // 输入信号 output reg [15:0] x_out[N] // 输出信号 ); parameter N = 16; // FFT点数 parameter M = 4; // FFT级数 reg [15:0] x[N]; // 内部寄存器 reg [15:0] w[N/2]; // 旋转因子 reg [15:0] tw[N/2][M-1]; // Twiddle因子 // 初始化旋转因子和Twiddle因子 initial begin for (int i = 0; i < N/2; i = i + 1) begin w[i] = $realtobits(cos(2*PI*i/N)); tw[i][0] = $realtobits(cos(2*PI*i/N)); tw[i][1] = $realtobits(cos(2*PI*i/N/2)); tw[i][2] = $realtobits(cos(2*PI*i/N/4)); end end // FFT流水线结构 always @(posedge clk) begin if (rst) begin for (int i = 0; i < N; i = i + 1) begin x[i] <= 0; end end else begin // 输入数据 for (int i = 0; i < N; i = i + 1) begin x[i] <= x_in[i]; end // 蝶形运算 for (int n = 0; n < M; n = n + 1) begin int b = 1 << n; for (int i = 0; i < N; i = i + 1) begin if ((i & b) == 0) begin int j = i + b; reg [15:0] t = x[j] * w[i%(N/2)]; x[j] = x[i] - t; x[i] = x[i] + t; end end end // 输出数据 for (int i = 0; i < N; i = i + 1) begin x_out[i] <= x[i]; end end end endmodule ``` 在这个代码中,我们定义了FFT的点数N和级数M,以及输入和输出信号的宽度。我们还定义了内部寄存器和旋转因子以及Twiddle因子,并在initial块中初始化了它们。在always块中,我们实现了FFT的流水线结构,包括输入数据、蝶形运算和输出数据。具体实现过程可以参考代码中的注释。 需要注意的是,以上示例代码实现的是一个16点FFT运算器,若需要实现其他点数的FFT运算器,需要相应地修改代码中的参数。另外,为了简化代码,该示例中使用了固定的旋转因子和Twiddle因子,实际应用中需要根据FFT的点数和级数进行计算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI量化投资实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值