Exemple #1
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'multi'

        # 策略参数
        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 60  # 初始化数据所用的天数
        self.minx = 'min5'

        self.atrValue = 0
        self.atrWindow = 20
        self.atr_x = 8
        self.dual = 10

        self.gap = 30
        self.gap_base = self.gap
        self.gap_min = 15
        self.gap_max = 40

        self.price_duo_list = []
        self.price_kong_list = []
        self.duo_adjust_price = 0
        self.kong_adjust_price = 0

        # 策略临时变量
        self.can_buy = False
        self.can_short = False
        self.pnl = 0
        self.first = True

        Signal.__init__(self, portfolio, vtSymbol)

        self.backtest = True if self.portfolio.engine.type == 'backtest' else False
Exemple #2
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'kong'

        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 20  # 初始化数据所用的天数
        self.minx = 'day'

        # 策略参数
        self.bollWindow = 10  # 布林通道窗口数
        self.bollDev = 2.4  # 布林通道的偏差
        self.atrValue = None
        self.atrWindow = 10
        self.slMultiplier = 1.5  # CF
        self.hard_stop_ratio = 0.005

        # 策略临时变量
        self.bollUp = 0  # 布林通道上轨
        self.bollDown = 0  # 布林通道下轨
        self.stop = 0  # 多头止损
        self.hard_stop = 100E4  # 硬止损
        self.intraTradeHigh = 0
        self.intraTradeLow = 100E4

        self.can_short = False
        self.can_cover = False

        # 需要持久化保存的变量
        self.cost = 0

        Signal.__init__(self, portfolio, vtSymbol)
Exemple #3
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'multi'

        # 策略参数
        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 60  # 初始化数据所用的天数
        self.minx = 'min5'

        self.atrValue = 0
        self.atrWindow = 30
        self.atr_x = 8

        self.gap = 30
        self.gap_base = self.gap
        self.gap_min = 15
        self.gap_max = 40
        self.price_min = 2600
        self.price_max = 3100

        self.price_duo_list = []
        self.price_kong_list = []

        # 策略临时变量
        self.can_buy = False
        self.can_short = False
        self.pnl = 0

        Signal.__init__(self, portfolio, vtSymbol)
Exemple #4
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'kong'

        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 50  # 初始化数据所用的天数
        self.minx = 'day'

        # 策略参数
        self.er_length = 20
        self.filter_ratio = 0.45
        self.atrWindow = 10
        self.slMultiplier = 0.5  # CF

        # 策略临时变量
        self.stop = 0  # 多头止损
        self.intraTradeHigh = 0
        self.intraTradeLow = 100E4

        self.can_short = False
        self.can_cover = False

        # 需要持久化保存的变量
        self.cost = 0

        Signal.__init__(self, portfolio, vtSymbol)
Exemple #5
0
    def __init__(self, portfolio, vtSymbol):
        Signal.__init__(self, portfolio, vtSymbol)

        # 策略参数
        self.initBars = 90  # 初始化am所用的数目
        self.fixedSize = 1  # 每次交易的数量
        self.singlePosition = 3E4

        # 策略参数
        self.bollWindow = 20  # 布林通道窗口数
        self.bollDev = 2  # 布林通道的偏差

        # 策略变量
        self.bollUp = None  # 布林通道上轨
        self.bollDown = None  # 布林通道下轨

        # 需要持久化保存的参数
        self.buyPrice = 0
        self.intraTradeLow = 100E4  # 持仓期内的最低点
        self.longStop = 100E4  # 多头止损

        # 载入历史数据,并采用回放计算的方式初始化策略数值
        initData = self.portfolio.engine._backcall_loadInitBar(
            self.vtSymbol, self.initBars)
        for bar in initData:
            if not self.am.inited:
                self.onBar(bar)
Exemple #6
0
    def __init__(self, portfolio, vtSymbol):
        Signal.__init__(self, portfolio, vtSymbol)

        # 策略参数
        self.atrLength = 22  # 计算ATR指标的窗口数
        self.atrMaLength = 10  # 计算ATR均线的窗口数
        self.rsiLength = 5  # 计算RSI的窗口数
        self.rsiEntry = 16  # RSI的开仓信号
        self.trailingPercent = 0.3  # 百分比移动止损
        self.initBars = 90  # 初始化数据所用的天数
        self.fixedSize = 1  # 每次交易的数量

        # 策略变量
        self.atrValue = 0  # 最新的ATR指标数值
        self.atrMa = 0  # ATR移动平均的数值
        self.rsiValue = 0  # RSI指标的数值

        # 需要持久化保存的参数
        self.buyPrice = 0
        self.intraTradeHigh = 0  # 移动止损用的持仓期内最高价
        self.intraTradeLow = 100E4  # 持仓期内的最低点
        self.longStop = 100E4  # 多头止损
        self.cost = 0

        # 初始化RSI入场阈值
        self.rsiBuy = 50 + self.rsiEntry
        self.rsiSell = 50 - self.rsiEntry

        # 载入历史数据,并采用回放计算的方式初始化策略数值
        initData = self.portfolio.engine._bc_loadInitBar(
            self.vtSymbol, self.initBars)
        for bar in initData:
            self.bar = bar
            self.am.updateBar(bar)
Exemple #7
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'one'

        # 策略参数
        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 100  # 初始化数据所用的天数
        self.minx = 'min5'

        self.atrValue = 0
        self.atrWindow = 30
        self.atr_x = 8

        self.gap = 30
        self.gap_min = 15
        self.gap_max = 40
        self.price_min_1 = 2600
        self.price_min_2 = 2730
        self.price_max_2 = 3000
        self.price_max_1 = 3100

        self.price_duo_list = []
        self.price_kong_list = []

        # 策略临时变量
        self.can_buy = False
        self.can_short = False
        self.pnl = 0

        # 需要持久化保存的变量

        Signal.__init__(self, portfolio, vtSymbol)
    def __init__(self, portfolio, vtSymbol):
        self.type = 'mix'

        # 策略参数
        self.entryWindow = 100  # 入场通道周期数
        self.exitWindow = 50  # 出场通道周期数
        self.atrWindow = 20  # 计算ATR周期数
        self.profitCheck = True  # 是否检查上一笔盈利

        self.initBars = 100  # 初始化数据所用的天数
        self.minx = 'min15'

        # 策略临时变量
        self.atrVolatility = 0  # ATR波动率
        self.entryUp = 0  # 入场通道
        self.entryDown = 0
        self.exitUp = 0  # 出场通道
        self.exitDown = 0

        self.longEntry1 = 0  # 多头入场位
        self.longEntry2 = 0
        self.longEntry3 = 0
        self.longEntry4 = 0
        self.longStop = 0  # 多头止损位

        self.shortEntry1 = 0  # 空头入场位
        self.shortEntry2 = 0
        self.shortEntry3 = 0
        self.shortEntry4 = 0
        self.shortStop = 0  # 空头止损位

        self.result_list = []

        Signal.__init__(self, portfolio, vtSymbol)
    def __init__(self, portfolio, vtSymbol):
        self.type = 'kong'

        # 策略参数
        self.bollWindow = 20  # 布林通道窗口数
        self.bollDev = 3.1  # 布林通道的偏差
        self.cciWindow = 10  # CCI窗口数
        self.atrWindow = 30  # ATR窗口数
        self.slMultiplier = 3  # 计算止损距离的乘数

        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 100  # 初始化数据所用的天数
        self.minx = 'min15'

        # 策略临时变量
        self.cciValue = 0  # CCI指标数值
        self.atrValue = 0  # ATR指标数值
        self.bollUp = 0
        self.bollDown = 0

        self.can_buy = False
        self.can_short = False

        # 需要持久化保存的变量
        self.cost = 0
        self.intraTradeHigh = 0  # 移动止损用的持仓期内最高价
        self.intraTradeLow = 0  # 持仓期内的最低点
        self.stop = 0  # 多头止损

        Signal.__init__(self, portfolio, vtSymbol)
Exemple #10
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'kong'

        # 策略参数
        self.atrLength = 1  # 计算ATR指标的窗口数
        self.atrMaLength = 14  # 计算ATR均线的窗口数
        self.rsiLength = 5  # 计算RSI的窗口数
        self.rsiEntry = 16  # RSI的开仓信号
        self.trailingPercent = 0.7  # 百分比移动止损
        self.victoryPercent = 0.3
        self.fixedSize = 1  # 每次交易的数量
        self.ratio_atrMa = 0.8

        self.initBars = 60  # 初始化数据所用的天数
        self.minx = 'min5'
        # 初始化RSI入场阈值
        self.rsiBuy = 50 + self.rsiEntry
        self.rsiSell = 50 - self.rsiEntry

        # 策略临时变量
        self.atrValue = 0  # 最新的ATR指标数值
        self.atrMa = 0  # ATR移动平均的数值
        self.rsiValue = 0  # RSI指标的数值
        self.iswave = True

        self.can_buy = False
        self.can_short = False

        # 需要持久化保存的变量
        self.cost = 0
        self.intraTradeHigh = 0  # 移动止损用的持仓期内最高价
        self.intraTradeLow = 0  # 持仓期内的最低点
        self.stop = 0  # 多头止损

        Signal.__init__(self, portfolio, vtSymbol)
Exemple #11
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'kong'

        # 策略参数
        self.trailingPercent = 0.3  # 百分比移动止损
        self.victoryPercent = 0.3
        self.fixedSize = 1  # 每次交易的数量

        self.initBars = 90  # 初始化数据所用的天数
        self.minx = 'min5'

        # 策略临时变量
        self.can_buy = False
        self.can_short = False

        self.channel_up = 0
        self.channel_down = 0

        # 需要持久化保存的变量
        self.cost = 0
        self.intraTradeHigh = 0  # 移动止损用的持仓期内最高价
        self.intraTradeLow = 0  # 持仓期内的最低点
        self.stop = 0  # 多头止损

        Signal.__init__(self, portfolio, vtSymbol)
    def __init__(self, portfolio, vtSymbol):
        self.type = 'kong'

        # 策略参数
        self.fixedSize = 1           # 每次交易的数量
        self.initBars = 100           # 初始化数据所用的天数
        self.minx = 'min5'

        self.bollWindow = 60
        self.bollDev = 3
        self.atrValue = None
        self.atrWindow = 10
        self.slMultiplier = 1.5
        self.hard_stop_ratio = 0.001

        # 策略临时变量
        self.can_buy = False
        self.can_short = False

        self.bollUp = 0
        self.bollDown = 0

        # 需要持久化保存的变量
        self.cost = 0
        self.intraTradeHigh = 0                      # 移动止损用的持仓期内最高价
        self.intraTradeLow = 100E4                   # 持仓期内的最低点
        self.stop = 0                                # 多头止损
        self.hard_stop = 100E4                       # 硬止损
        self.dida = 0

        Signal.__init__(self, portfolio, vtSymbol)
Exemple #13
0
    def __init__(self, portfolio, vtSymbol):
        Signal.__init__(self, portfolio, vtSymbol)

        # 策略参数
        self.bollWindow = 18  # 布林通道窗口数
        self.bollDev = 3.4  # 布林通道的偏差
        self.cciWindow = 10  # CCI窗口数
        self.atrWindow = 30  # ATR窗口数
        self.slMultiplier = 5.2  # 计算止损距离的乘数
        self.initBars = 90  # 初始化数据所用的天数
        self.fixedSize = 1  # 每次交易的数量

        # 策略变量
        self.bollUp = 0  # 布林通道上轨
        self.bollDown = 0  # 布林通道下轨
        self.cciValue = 0  # CCI指标数值
        self.atrValue = 0  # ATR指标数值

        # 需要持久化保存的参数
        self.counter = 0
        self.buyPrice = 0
        self.intraTradeHigh = 0  # 移动止损用的持仓期内最高价
        self.intraTradeLow = 100E4  # 持仓期内的最低点
        self.longStop = 100E4  # 多头止损
        self.shortStop = 0  # 空头止损

        # 载入历史数据,并采用回放计算的方式初始化策略数值
        initData = self.portfolio.engine._bc_loadInitBar(
            self.vtSymbol, self.initBars)
        for bar in initData:
            self.bar = bar
            self.am.updateBar(bar)
    def __init__(self, portfolio, vtSymbol):
        Signal.__init__(self, portfolio, vtSymbol)

        # 策略参数
        self.initBars = 90  # 初始化数据所用的天数
        self.fixedSize = 1  # 每次交易的数量

        # 策略变量
        self.cciWindow = 20
        self.cciLong = 100
        self.cciShort = -100
        self.cciValue = None

        # 需要持久化保存的参数
        self.counter = 0
        self.buyPrice = 0
        self.intraTradeHigh = 0  # 移动止损用的持仓期内最高价
        self.intraTradeLow = 100E4  # 持仓期内的最低点
        self.longStop = 100E4  # 多头止损

        # 载入历史数据,并采用回放计算的方式初始化策略数值
        initData = self.portfolio.engine._bc_loadInitBar(
            self.vtSymbol, self.initBars)
        for bar in initData:
            self.bar = bar
            self.am.updateBar(bar)
Exemple #15
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'kong'

        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 100  # 初始化数据所用的天数
        self.minx = 'day'

        # 策略参数
        self.cciWindow = 100  # CCI窗口数
        self.atrWindow = 10
        self.slMultiplier = 1.5  # CF
        self.hard_stop_ratio = 0.01

        # 策略临时变量
        self.cciValue = 0
        self.atrValue = None
        self.stop = 0  # 多头止损
        self.hard_stop = 100E4
        self.intraTradeHigh = 0
        self.intraTradeLow = 100E4

        self.can_short = False
        self.can_cover = False

        # 需要持久化保存的变量
        self.cost = 0

        Signal.__init__(self, portfolio, vtSymbol)
    def __init__(self, portfolio, vtSymbol):
        self.type = 'mix'

        # 策略参数
        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 0  # 初始化数据所用的天数
        self.minx = 'min15'

        # 策略临时变量
        self.can_buy = False
        self.can_short = False

        # 需要持久化保存的变量

        Signal.__init__(self, portfolio, vtSymbol)
    def __init__(self, portfolio, vtSymbol):

        # 策略参数
        self.bollWindow = 80  # 布林通道窗口数
        self.bollDev = 2  # 布林通道的偏差

        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 90  # 初始化数据所用的天数
        self.minx = 'min5'

        # 策略临时变量
        self.bollUp = 0  # 布林通道上轨
        self.bollDown = 0  # 布林通道下轨

        # 需要持久化保存的变量
        self.stop = 0  # 多头止损

        Signal.__init__(self, portfolio, vtSymbol)
Exemple #18
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'duo'

        # 策略参数
        self.bollWindow = 10  # 布林通道窗口数
        self.bollDev = 2.4  # 布林通道的偏差

        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 20  # 初始化数据所用的天数
        self.minx = 'day'

        # 策略临时变量
        self.bollUp = 0  # 布林通道上轨
        self.bollDown = 0  # 布林通道下轨
        self.stop = 0  # 多头止损

        # 需要持久化保存的变量

        Signal.__init__(self, portfolio, vtSymbol)
    def __init__(self, portfolio, vtSymbol):
        self.type = 'mix'

        # 策略参数
        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 10  # 初始化数据所用的天数
        self.minx = 'min5'

        # 策略临时变量
        self.can_buy = False
        self.can_sell = False
        self.can_short = False
        self.can_cover = False

        # 需要持久化保存的变量
        self.cost = 0
        self.ins_list = []

        Signal.__init__(self, portfolio, vtSymbol)
    def __init__(self, portfolio, vtSymbol,
                 entryWindow, exitWindow, atrWindow,
                 profitCheck=False):
        """Constructor"""
        Signal.__init__(self, portfolio, vtSymbol)

        # 策略参数
        self.initBars = 60           # 初始化数据所用的天数
        self.entryWindow = entryWindow  # 入场通道周期数
        self.exitWindow = exitWindow    # 出场通道周期数
        self.atrWindow = atrWindow      # 计算ATR周期数
        self.profitCheck = profitCheck  # 是否检查上一笔盈利

        # 策略变量
        self.atrVolatility = 0          # ATR波动率
        self.entryUp = 0                # 入场通道
        self.entryDown = 0
        self.exitUp = 0                 # 出场通道
        self.exitDown = 0

        self.longEntry1 = 0             # 多头入场位
        self.longEntry2 = 0
        self.longEntry3 = 0
        self.longEntry4 = 0
        self.longStop = 0               # 多头止损位

        self.shortEntry1 = 0            # 空头入场位
        self.shortEntry2 = 0
        self.shortEntry3 = 0
        self.shortEntry4 = 0
        self.shortStop = 0              # 空头止损位

        # 需要持久化保存的参数
        self.unit = 0                   # 信号持仓
        self.result = None              # 当前的交易
        self.resultList = []            # 交易列表

        # 载入历史数据,并采用回放计算的方式初始化策略数值
        initData = self.portfolio.engine._bc_loadInitBar(self.vtSymbol, self.initBars)
        for bar in initData:
            self.bar = bar
            self.am.updateBar(bar)
Exemple #21
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'kong'

        # 策略参数
        self.fixedSize = 10  # 每次交易的数量
        self.initBars = 60  # 初始化数据所用的天数
        self.minx = 'day'

        # 策略临时变量
        self.can_buy = False
        self.can_sell = False
        self.can_short = False
        self.can_cover = False

        # 需要持久化保存的变量
        self.cost = 0

        size_am = 100
        assert self.initBars <= size_am
        Signal.__init__(self, portfolio, vtSymbol)
    def __init__(self, portfolio, vtSymbol):
        self.type = 'duo'

        # 策略参数
        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 240  # 初始化数据所用的天数
        self.minx = 'min30'

        # 策略临时变量
        self.can_short = False
        self.can_cover = False

        self.target = ''
        self.opt = True

        # 需要持久化保存的变量
        self.cost = 0

        size_am = 300
        assert self.initBars <= size_am
        Signal.__init__(self, portfolio, vtSymbol, size_am)
Exemple #23
0
    def __init__(self, portfolio, vtSymbol):
        Signal.__init__(self, portfolio, vtSymbol)

        # 策略变量
        self.bollUp = None                          # 布林通道上轨
        self.bollDown = None                        # 布林通道下轨

        # 需要持久化保存的参数
        self.buyPrice = 0
        self.intraTradeLow = 100E4                   # 持仓期内的最低点
        self.longStop = 100E4                        # 多头止损

        # 初始化RSI入场阈值
        self.rsiBuy = 50 + self.rsiEntry
        self.rsiSell = 50 - self.rsiEntry

        # 载入历史数据,并采用回放计算的方式初始化策略数值
        initData = self.portfolio.engine.loadInitBar(self.vtSymbol, self.initBars)
        for bar in initData:
            if not self.am.inited:
                self.onBar(bar)
Exemple #24
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'duo'

        # 策略参数
        self.bollWindow = 80  # 布林通道窗口数
        self.bollDev = 2  # 布林通道的偏差

        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 90  # 初始化数据所用的天数
        self.minx = 'min5'

        # 策略临时变量
        self.bollUp = 0  # 布林通道上轨
        self.bollDown = 0  # 布林通道下轨

        # 需要持久化保存的变量
        self.stop = 0  # 多头止损
        self.intraTradeHigh = 0
        self.trailingPercent = 0.8

        Signal.__init__(self, portfolio, vtSymbol)
Exemple #25
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'multi'

        # 策略参数
        self.fixed_size_dict = {10:1, 20:2, 30:3}            # 每次交易的数量
        self.initBars = 60            # 初始化数据所用的天数
        self.minx = 'min5'

        self.atrValue = 0
        self.atrWindow = 20
        self.atr_x = 8
        self.dual = 10
        self.atr_h = 5
        self.adjust_bp = 0
        self.price_tick = get_contract(vtSymbol).price_tick

        self.gap = 30
        self.gap_base = self.gap
        self.gap_min = 15
        self.gap_max = 40

        self.price_duo_list =  []
        self.price_kong_list = []
        self.duo_adjust_price = 0
        self.kong_adjust_price = 0
        self.size_duo_list =  []
        self.size_kong_list = []

        # 策略临时变量
        self.can_buy = False
        self.can_short = False
        self.pnl = 0
        self.first = True

        self.counter = 0

        Signal.__init__(self, portfolio, vtSymbol)

        self.backtest = True if self.portfolio.engine.type == 'backtest' else False
Exemple #26
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'one'

        # 策略参数
        self.fixedSize = 6  # 每次交易的数量
        self.initBars = 100  # 初始化数据所用的天数
        self.minx = 'min30'

        # 策略临时变量
        self.can_buy = False
        self.can_sell = False
        self.can_short = False
        self.can_cover = False

        self.ma_short_arr = None
        self.ma_mid_arr = None
        self.ma_long = None

        # 需要持久化保存的变量
        self.cost = 0

        Signal.__init__(self, portfolio, vtSymbol)
    def __init__(self, portfolio, vtSymbol):

        # 策略参数
        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 100  # 初始化数据所用的天数
        self.minx = 'min5'

        self.atrValue = 0
        self.atrWindow = 30

        self.gap = 30
        self.price_duo_list = []
        self.price_kong_list = []

        # 策略临时变量
        self.can_buy = False
        self.can_short = False
        self.pnl = 0

        # 需要持久化保存的变量

        Signal.__init__(self, portfolio, vtSymbol)
Exemple #28
0
    def __init__(self, portfolio, vtSymbol):
        self.type = 'duo'

        # 策略参数
        self.rsiLength = 5  # 计算RSI的窗口数
        self.rsiEntry = 16  # RSI的开仓信号
        self.trailingPercent = 0.7  # 百分比移动止损
        self.victoryPercent = 0.3
        self.fixedSize = 1  # 每次交易的数量

        self.initBars = 100  # 初始化数据所用的天数
        self.minx = 'min5'
        # 初始化RSI入场阈值
        self.rsiBuy = 50 + self.rsiEntry
        self.rsiSell = 50 - self.rsiEntry

        # 策略临时变量
        self.atr_short = 0
        self.atr_mid = 0
        self.atr_long = 0

        self.rsi_value = 0  # RSI指标的数值
        self.rsi_ma = 0
        self.can_buy = False
        self.can_short = False

        self.bollUp = 0
        self.bollDown = 0

        self.gap = 100
        self.dida = 0

        # 需要持久化保存的变量
        self.cost = 0
        self.intraTradeHigh = 0  # 移动止损用的持仓期内最高价
        self.intraTradeLow = 0  # 持仓期内的最低点
        self.stop = 0  # 多头止损

        Signal.__init__(self, portfolio, vtSymbol)
    def __init__(self, portfolio, vtSymbol):
        self.type = 'kong'

        # 策略参数
        self.fixedSize = 1  # 每次交易的数量
        self.initBars = 100  # 初始化数据所用的天数
        self.minx = 'min30'

        # 策略临时变量
        self.can_buy = False
        self.can_sell = False
        self.can_short = False
        self.can_cover = False

        # 需要持久化保存的变量
        self.cost = 0

        size_am = 100
        assert self.initBars <= size_am
        Signal.__init__(self, portfolio, vtSymbol)

        self.bm_bar = None
        self.bm = ArrayManager(60)
        self.init_bm()
Exemple #30
0
 def __init__(self, portfolio, vtSymbol):
     Signal.__init__(self, portfolio, vtSymbol)