Skip to content

Latest commit

 

History

History
53 lines (44 loc) · 1.4 KB

File metadata and controls

53 lines (44 loc) · 1.4 KB

【backtrader 源码解析 27】signal.py 源码解析(枯燥,仅供参考)

原文:https://yunjinqi.blog.csdn.net/article/details/124560335

signal.py 是和 SignalStrategy 紧密相关的一个类。文件中的代码比较少,解析起来也特别简单

from __future__ import (absolute_import, division, print_function,
                        unicode_literals)

import backtrader as bt

# 创建不同的 SIGNAL 类型
(

    SIGNAL_NONE,
    SIGNAL_LONGSHORT,
    SIGNAL_LONG,
    SIGNAL_LONG_INV,
    SIGNAL_LONG_ANY,
    SIGNAL_SHORT,
    SIGNAL_SHORT_INV,
    SIGNAL_SHORT_ANY,
    SIGNAL_LONGEXIT,
    SIGNAL_LONGEXIT_INV,
    SIGNAL_LONGEXIT_ANY,
    SIGNAL_SHORTEXIT,
    SIGNAL_SHORTEXIT_INV,
    SIGNAL_SHORTEXIT_ANY,

) = range(14)

# 不同的信号类型
SignalTypes = [
    SIGNAL_NONE,
    SIGNAL_LONGSHORT,
    SIGNAL_LONG, SIGNAL_LONG_INV, SIGNAL_LONG_ANY,
    SIGNAL_SHORT, SIGNAL_SHORT_INV, SIGNAL_SHORT_ANY,
    SIGNAL_LONGEXIT, SIGNAL_LONGEXIT_INV, SIGNAL_LONGEXIT_ANY,
    SIGNAL_SHORTEXIT, SIGNAL_SHORTEXIT_INV, SIGNAL_SHORTEXIT_ANY
]

# 继承指标,创建一个 signal 指标
class Signal(bt.Indicator):
    # 信号类型
    SignalTypes = SignalTypes
    # 创建了一个 signal 的 line
    lines = ('signal',)
    # 初始化
    def __init__(self):
        self.lines.signal = self.data0.lines[0]
        self.plotinfo.plotmaster = getattr(self.data0, '_clock', self.data0)