Пример #1
0
def analyze(stock_code, date, period1, period2):
    signal = ""
    score = 0.0
    recent_high_price = bd.getHighPriceInPeriod("CLOSE_TODAY", stock_code, date, period1)
    recent_low_price = bd.getLowPriceInPeriod("CLOSE_TODAY", stock_code, date, period1)
    close_today = bd.getBasicData("CLOSE_TODAY", stock_code, date)
    BBI = getBBI(stock_code, date)

    if (abs(close_today - recent_high_price) / recent_high_price <= HIGH_OFFSET / 100) and (BBI > close_today):
        score = score - 1
        signal = signal + "[-1]股价在高价区以收市价跌破多空线为卖出信号;"

    if (abs(close_today - recent_low_price) / recent_low_price <= LOW_OFFSET / 100) and (BBI < close_today):
        score = score + 1
        signal = signal + "[1]股价在低价区以收市价突破多空线为买入信号;"

    BBIs = getBBIs(stock_code, date, period2)
    K = mu.getPoly(BBIs, 1)[0]

    if (K > 0) and (BBI > close_today):
        score += 1
        signal += "[1]多空指数由下向上递增,股价在多空线上方,表明多头势强,可以继续持股;"

    if (K < 0) and (BBI < close_today):
        score -= 1
        signal += "[-1]多空指数由上向下递减,股价在多空线下方,表明空头势强,一般不宜买入;"

    print score
    print signal.decode("utf-8").encode("gbk")
    bd.updateAnalysisData("BBI", str(score) + ";" + signal, stock_code, date)
    return [score, signal]
Пример #2
0
def calcWR(stock_code, date, period):
    close_today = bd.getBasicData("CLOSE_TODAY", stock_code, date)
    high_today = bd.getHighPriceInPeriod("HIGH_TODAY", stock_code, date, period)
    low_today = bd.getLowPriceInPeriod("LOW_TODAY", stock_code, date, period)
    WR = 100 - (close_today - low_today) / (high_today - low_today) * 100
    return round(WR, 3)