Quantlab3.0便捷实现海龟策略(策略代码)

底层替换了pybroker,其实我们仅依赖pandas(numpy),大家读起代码更容易了。

现在我们要把传统一些经典的规则策略和系统实现一下。

有同学问,为何为直接把gplearn整合进来,deepalphagen端对端因子挖掘整合进来。

这是一个递进的过程。

机器学习时代,不意味着传统规则量化就完全失效了。

咱们的框架这么写指标,我们支持大家引入ta-lib或者tulipy(这个可以直接使用pip安装)

def SMA(arr: pd.Series, n: int) -> pd.Series:
"""
Returns `n`-period simple moving average of array `arr`.
"""
return pd.Series(arr).rolling(n).mean()


def HIGH(arr: pd.Series, n: int) -> pd.Series:
return pd.Series(arr).shift(1).rolling(n).max()


def LOW(arr: pd.Series, n: int) -> pd.Series: return pd.Series(arr).shift(1).rolling(n).min() import tulipy as ti def ATR(high: pd.Series, low: pd.Series, close: pd.Series, n: int) -> pd.Series: hi, lo, c_prev = pd.Series(high).shift(1), pd.Series(low).shift(1),pd.Series(close).shift(1) tr = np.max([hi - lo, (c_prev - hi).abs(), (c_prev - lo).abs()], axis=0) atr = pd.Series(tr).rolling(n).mean().bfill() return atr

类似于tradingview,指标可以直接可视化显示出来,这个还是非常方便的。

图片

简单的海龟策略的代码——这里仅实现了“突破”买入卖出:

from backtesting import Backtest, Strategy
from backtesting.lib import crossover

from backtesting.test import *


class TurtleStrategy(Strategy):
    def init(self):

        price = self.data.Close
        self.high = self.I(HIGH, price, 20)
        self.low = self.I(LOW, price, 10)
        self.atr = self.I(ATR, self.data.High, self.data.Low, price, 20)
        print(self.atr)

    def next(self):
        if self.data.Close[-1] > self.high[-1]:
            self.buy()
        if self.data.Close[-1] < self.low[-1]:
            self.sell()


bt = Backtest(GOOG, TurtleStrategy, commission=.002,
              exclusive_orders=True)
stats = bt.run()
print(stats)
bt.plot()

大家可以前往星球下载最新版本代码:

quantlab3.0系统代码预发布:附年化42%+的机器学习策略案例(小时级数据+代码下载)

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

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

相关推荐

发表回复

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