海龟交易系统所代表的传统CTA策略是不是过时了?

大家感受一下海龟交易系统的代码——只有在这种场景下,也就是精细化的仓位管理,比如向上突破一次,加仓多少个ATR这样的逻辑。

ize = 0
    self.buy_count = 0
    # 海龟交易法则中的唐奇安通道和平均波幅ATR        
    self.H_line = bt.indicators.Highest(self.data.high(-1), period=self.p.long_period)
    self.L_line = bt.indicators.Lowest(self.data.low(-1), period=self.p.short_period)
    self.TR = bt.indicators.Max((self.data.high(0) - self.data.low(0)), \
                                abs(self.data.close(-1) - self.data.high(0)), \
                                abs(self.data.close(-1) - self.data.low(0)))
    self.ATR = bt.indicators.SimpleMovingAverage(self.TR, period=14)
    # 价格与上下轨线的交叉      
    self.buy_signal = bt.ind.CrossOver(self.data.close(0), self.H_line)
    self.sell_signal = bt.ind.CrossOver(self.data.close(0), self.L_line)

def next(self):
    if self.order:
        return
        # 入场:价格突破上轨线且空仓时        
    if self.buy_signal > 0 and self.buy_count == 0:

        self.buy_size = self.broker.getvalue() * 0.01 / self.ATR
        self.buy_size = int(self.buy_size / 100) * 100
        self.sizer.p.stake = self.buy_size
        self.buy_count = 1
        print('空仓时买入', self.buy_size)
        self.order = self.buy()
        # 加仓:价格上涨了买入价的0.5ATR且加仓次数少于3次(含)        
    elif self.data.close > self.buyprice + 0.5 * self.ATR[0] and self.buy_count > 0 and self.buy_count <= 4:
        print('加仓买入')
        self.buy_size = self.broker.getvalue() * 0.01 / self.ATR
        self.buy_size = int(self.buy_size / 100) * 100
        self.sizer.p.stake = self.buy_size
        self.order = self.buy()
        self.buy_count += 1
        # 离场:价格跌破下轨线且持仓时        
    elif self.sell_signal < 0 and self.buy_count > 0:
        print('平仓信号卖出')
        self.order = self.sell()
        self.buy_count = 0
        # 止损:价格跌破买入价的2ATR且持仓时        
    elif self.data.close < (self.buyprice - 2 * self.ATR[0]) and self.buy_count > 0:
        print('止损信号卖出')
        self.order = self.sell()
        self.buy_count = 0

        # 交易记录日志(默认不打印结果)

def log(self, txt, dt=None, doprint=False):
    if self.params.printlog or doprint:
        dt = dt or self.datas[0].datetime.date(0)
        print(f'{dt.isoformat()},{txt}')

# 记录交易执行情况(默认不输出结果)
def notify_order(self, order):
    # 如果ordersubmitted/accepted,返回空
    if order.status in [order.Submitted, order.Accepted]:
        return
    # 如果orderbuy/sell executed,报告价格结果
    if order.status in [order.Completed]:
        if order.isbuy():
            self.log(f'买入:\n价格:{order.executed.price},\
            成本:{order.executed.value},\
            手续费:{order.executed.comm}')

            self.buyprice = order.executed.price
            self.buycomm = order.executed.comm
        else:
            self.log(f'卖出:\n价格:{order.executed.price},\
            成本: {order.executed.value},\
            手续费{order.executed.comm}')

        self.bar_executed = len(self)

        # 如果指令取消/交易失败, 报告结果
    elif order.status in [order.Canceled, order.Margin, order.Rejected]:
        self.log('交易失败')
    self.order = None

# 记录交易收益情况(可省略,默认不输出结果)
def notify_trade(self, trade):
    if not trade.isclosed:
        return
    self.log(f'策略收益:\n毛收益 {trade.pnl:.2f}, 净收益 {trade.pnlcomm:.2f}')

def stop(self):
    self.log(f'(组合线:{self.p.long_period},{self.p.short_period})\
    期末总资金: {self.broker.getvalue():.2f}', doprint=True)

图片

这种策略多见过传统的CTA策略,但AI量化里,多因子、排序、轮动是主角,仓位管理更多通过投资组合来完成,而非这种仓位分配和管理。

吾日三省吾身

昨天一同事过来聊天,说打算创业做点事情。

我第一反应是, 这个时候去创业,怎么考虑的。

尽管我基本明白背后的逻辑,应该是工作上出现的状况。

同事说,年初换了一家公司,觉得很谈得来,在二选一中选择了前者,结果半年不到,公司放弃了原定的规划,同事只能离开。

再尝试到找工作,面试机会倒是有——其实已经挺不容易了——但年龄的坎不好过去了。

肉少狼多,企业自然有的挑。

年轻人有冲劲,还没能家庭负担。

可能,这是多数职场人的归宿吧,或早或迟而已。

另外一个年轻的朋友说,现在公司卷着,说暂时肯定不动了,能不出来就不出来,至少把房贷清了,再积累一些资本,这样稳妥。

同事说,心理建设了1个多月,其实客观看,也不是什么大事,没能房贷,生活成本不高,没有负债,之前的成本也可以确保好多年财务安全。

只不过,习惯了,就得有一个工作,这是一种安全感的来源了吧。

国外很多人,很自然给自己安排一年的空窗期,就是工作一年,休息一年,去看世界,做自己喜欢的事情,而且还没有储蓄,似乎也很自然,但我们就会觉得特别没有安全感。

但事情就这么发生了,也总会有办法。

山重水复疑无路,柳暗花明又一村。

我们都得开始重新思考对孩子的教育观念,理财,写作以及一门硬技能。比如AI,智能体开发等。

如果你不需要通过一个组织去谋生,那学历就不是刚需。

财富自由不是你想不想的问题,而是必须去做的事情。

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

(0)
股市刺客的头像股市刺客
上一篇 27分钟前
下一篇 2024 年 8 月 16 日

相关推荐

发表回复

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