系统源代码发布v2.4供下载,带年化32.1%策略,简化GUI逻辑

年化42.86%,比基准的12.86高出不少,回撤才9.43%,还是比较稳健的。

图片

图片策略核心代码如下:我们使用KNN算法,大家可以考虑替换成SVM,或者树模型lightGBM。

class MLTrainOnceStrategy(Strategy):
    price_delta = .004  # 0.4%

    def init(self):
        # Init our model, a kNN classifier
        self.clf = KNeighborsClassifier(7)

        # Train the classifier in advance on the first N_TRAIN examples
        df = self.data.df.iloc[:N_TRAIN]
        X, y = get_clean_Xy(df)
        self.clf.fit(X, y)

        # Plot y for inspection
        self.I(get_y, self.data.df, name='y_true')

        # Prepare empty, all-NaN forecast indicator
        self.forecasts = self.I(lambda: np.repeat(np.nan, len(self.data)), name='forecast')

    def next(self):
        # Skip the training, in-sample data
        if len(self.data) < N_TRAIN:
            return

        # Proceed only with out-of-sample data. Prepare some variables
        high, low, close = self.data.High, self.data.Low, self.data.Close
        current_time = self.data.index[-1]

        # Forecast the next movement
        X = get_X(self.data.df.iloc[-1:])
        forecast = self.clf.predict(X)[0]

        # Update the plotted "forecast" indicator
        self.forecasts[-1] = forecast

        # If our forecast is upwards and we don't already hold a long position
        # place a long order for 20% of available account equity. Vice versa for short.
        # Also set target take-profit and stop-loss prices to be one price_delta
        # away from the current closing price.
        upper, lower = close[-1] * (1 + np.r_[1, -1] * self.price_delta)

        if forecast == 1 and not self.position.is_long:
            self.buy(size=.2, tp=upper, sl=lower)
        elif forecast == -1 and not self.position.is_short:
            self.sell(size=.2, tp=lower, sl=upper)

        # Additionally, set aggressive stop-loss on trades that have been open
        # for more than two days
        for trade in self.trades:
            if current_time - trade.entry_time > pd.Timedelta('2 days'):
                if trade.is_long:
                    trade.sl = max(trade.sl, low)
                else:
                    trade.sl = min(trade.sl, high)

数据格式如下,同代码一起打包已经发布至星球:

图片

图片

代码说明:

本周我们深度调研了vnpy, ctpbee, backtesting,还看了pyalgotrade。

结合之前的backtrader, pybroker和qlib。

quantlab2.x的底层引擎之前是pybroker,3.0引用了大量的backtesting的代码,原因如下:

1、pybroker做空部分不好理解,对于后续接实盘带来麻烦,这块需要重写。

2、vnpy和ctpbee的设计思路,回测引擎与实盘过于“追求相似”,各种send_order和order_request。其实从回测切换到实盘,从onbar开始解耦就好了。

实盘我们还会使用ctpbee的部分代码。

吾日三省吾身

在高度不确定的当下,没有人可以预测未来,更不用说资本市场。

但我们仍然可以做很多事情。

反脆弱的系统设计,所谓“守正出奇”。

寻找“局部”最优解,持续迭代,总能突破。

 这是当下的力量。

我们能拥用的只有当下。

往你能掌控的最优的步骤,多走一步,看到更多的信息,得到进一步的反馈,再优化我们的系统。

图片

图片

12.1系统原代码发布

1、趋势策略更新:年化32.1%。 

2、简化了gui,把策略task优化成通用的bug。

3、修正一些已知的bug。

下一步计划:端对端的基于深度学习和强化学习的因子挖掘框架搭建。

没错,我们即将启动DeepAlphaGen的框架研发。

星球里留给大家的作业,感谢很多同学的积极参与。

我总结了下,几个方面:

打通实盘的诉求,期货和股票一半一半。

比如下面一个问题以及我的答复:

图片

吾日三省吾身

“你在凝望深渊的时候,深渊也是凝望你”。

放下情绪,追逐自己的成长。

人脉如此。

曾经我们多么渴望接近一些东西,可能带来安全感。

然而,人脉讲求对称性。你的价值决定人脉的质量。

实力不够,圈子不要硬挤,没有意义。

要搞很多人际关系的生意,肯定不是好的生意。——老俞。

最近策略与文章:

想进入财富自由快车道,要找到自己”天生喜欢和擅长“的领域,去积累专长。

十年年化20%-29.6%的策略集:覆盖动量、风险平价,波动率(系统+策略集代码+数据)

稳健的绝对型收益策略:长期年化10.6%的风险平价策略(代码+数据)

十二年年化21.4%的大小盘(沪深300vs创业板ETF)轮动策略,简单而有效(代码+数据下载)

创业板单标的择时策略,年化20.6%,投资只要你有耐心,守纪律,年化20%+并不难。(代码+数据)

实盘SAAS化策略:长期年化29.6%,代码发布,请下载更新

我们有两个星球:

 AI量化实验室,关注AI量化投资,开发&开源共享20%+的策略集,数据集。多因子,AI模型,量化框架等。

财富自由践行社:10%低风险投资组合+财富自由快车道的心法,践行手册,主要不聊投资,谈储蓄,复利,成长, 人生意义与幸福。

【星球优惠券】AI量化实验室&财富自由践行社

最近策略与文章:

想进入财富自由快车道,要找到自己”天生喜欢和擅长“的领域,去积累专长。

十年年化20%-29.6%的策略集:覆盖动量、风险平价,波动率(系统+策略集代码+数据)

稳健的绝对型收益策略:长期年化10.6%的风险平价策略(代码+数据)

十二年年化21.4%的大小盘(沪深300vs创业板ETF)轮动策略,简单而有效(代码+数据下载)

创业板单标的择时策略,年化20.6%,投资只要你有耐心,守纪律,年化20%+并不难。(代码+数据)

实盘SAAS化策略:长期年化29.6%,代码发布,请下载更新

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

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

相关推荐

发表回复

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