VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 11
声望: 0

如题请问如何调用呢?谢谢

Member
avatar
加入于:
帖子: 4684
声望: 285

可以自行计算

Member
avatar
加入于:
帖子: 420
声望: 173

战略性聊天 wrote:

如题请问如何调用呢?谢谢

1. 对ArrayManager进行如下扩展:

class NewArrayManager(ArrayManager):

    def __init__(self, size: int = 100):
        """"""
        super().__init__(size)  

    def VWAP(self, n:int = 20, array: bool = True) -> Union[Tuple[float, float, float], np.ndarray]:
        """
        定义VWAP指标
        """

        close = self.close
        vol   = self.volume

        vwap, vwap10, vwap20 = bnlib.VWAP(close, vol, n, array)

        if array:
            return vwap, vwap10, vwap20
        else:
            return vwap[-1], vwap10[-1], vwap20[-1]

2. 在策略中使用NewArrayManager创建数组管理器:

2.1 通常在策略的init中如下创建数组管理器:

    self.am = NewArrayMannager()

2.2 在on_bar()或者on_xmin_bar()中如下调用VWAP:

       vwap, vwap10, vwap20 = self.am.VWAP(n=20)

那么 vwap, vwap10, vwap20 就分别表示20周期的vwap,vwap10表示10周期的vwap平均值,vwap20表示20周期的vwap平均值。

Member
avatar
加入于:
帖子: 4
声望: 0

请问 bnlib.VWAP(close, vol, n, array) 这个函数是你自己写的吗?

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】