账户封装

工欲善其事,必先利其器。上篇布林带——泡泡玛特中,大量笔墨耗费在了“账户”和“交易”之上,而二者在量化交易中,几乎时时刻刻都要用到。接下来,会花两篇文章分别将二者封装。

什么叫封装?

好比一辆汽车,它的组成元素有很多。发动机、变速器、刹车系统、电路系统、悬挂系统……这些所有的零部件经过精密的组装,最终形成了一辆汽车。那么,组装的过程就叫“封装”,而组装而成的汽车就等同于“账户”或者“交易”。

为什么要封装?

想想看,如果没有封装,岂不是每一次想驾车出行,都得把零部件汇集后给它组装好才能出发。

“账户”和“交易”也是如此,总不能每次用它的时候,都怼上一堆繁琐的代码,耗时耗力不说,还会让文章变得十分冗余。

一旦将其封装,只需掌握它的接口,知道怎么用就够了。对于汽车而言,方向盘、档位、刹车、油门……这些就是接口,只要掌握这些接口,就掌握了汽车的使用。

言归正传,上篇谈到用3个DataFrame数据描述一个账户,分别表示资产详情、持仓、订单记录。

一个账户的相关信息,是随着行情波动及交易不断变化的,为保证代码复用,本着面向对象编程的原则,将有关账户的所有操作进行封装,代码如下:

"""
Account类,实现对账户的管理
"""
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

class Account(object):

  def __init__(self, capital):
    # capital 账户初始本金 
    self.capital = capital
    self.init_account()

  def init_account(self):
    ## 初始化账户
    # 资产详情 (日期、总资产、现金、股票资产、收益、收益率)
    self.asset = pd.DataFrame(
      columns = ['date','total', 'cash', 'stock', 'profit', 'profit_rate'])
    self.asset = self.asset.append({
      'date' : np.nan,
      'total' : self.capital, 
      'cash
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值