Example #1
0
def prepare_hmacd(stock):
    #linelog('prepare hmacd:%s' % stock.code)    
    pdiff,pdea = cmacd(stock.hour)
    upcross_t = gand(cross(pdea,pdiff)>0,strend(pdiff)>0)     
    upcross = gand(upcross_t,pdiff<100) #<100才保险
    downcross = gand(cross(pdea,pdiff)<0,strend(pdiff)<0) 
    stock.hup_t = hour2day(upcross_t)
    stock.hup = hour2day(upcross)
    stock.hdown = hour2day(downcross)
    upcross2 = gand(cross(pdea,pdiff)>0,strend(pdiff)>0)
    dsub = rsub(pdiff,upcross2)
    csub = rsub(stock.hour,upcross2)
    stock.hdev = hour2day(band(greater(dsub),lesser(csub))) #小时线背离
    stock.mup_100 = hour2day(gand(pdiff>pdea,pdiff<100,strend(pdiff)>0,strend(pdea)>0))
    #stock.hgreater = hour2day4(pdiff>pdea)
    stock.xup = hour2day(gand(pdiff>pdea,strend(pdiff)>0,strend(pdea)>0))
Example #2
0
def decline_ranges(source,covered=22):    
    ''' 求以covered为顶/底点辐射半径所得到的高低点确定的衰落幅度
        covered默认为辐射半径为月
        返回衰落幅度数组
    '''
    peaks = xpeak_points(source,covered)
    prange = rsub(source,peaks)
    min_peaks = (peaks == -1)   #做选择下标必须是bool类型
    max_ranges = -prange[min_peaks]  #这里的值都是cur_min-pre_max,故此需要取反.
    return max_ranges
Example #3
0
def decline_ranges(source, covered=22):
    ''' 求以covered为顶/底点辐射半径所得到的高低点确定的衰落幅度
        covered默认为辐射半径为月
        返回衰落幅度数组
    '''
    peaks = xpeak_points(source, covered)
    prange = rsub(source, peaks)
    min_peaks = (peaks == -1)  #做选择下标必须是bool类型
    max_ranges = -prange[min_peaks]  #这里的值都是cur_min-pre_max,故此需要取反.
    return max_ranges
Example #4
0
def vdis(sopen, sclose, shigh, slow, svolume):
    """ 功率含义的比较,但是很难应用
        up,uf,dp,df = vdis(t[OPEN],t[CLOSE],t[HIGH],t[LOW],t[VOLUME])
    """
    su, sd = supdown(sopen, sclose, shigh, slow)
    x = f.xpeak_points_2(shigh, slow, 11)
    uv = svolume * su / (su + sd)
    dv = svolume - uv
    uvx = de.rsum2(uv, x)
    dvx = de.rsum2(dv, x)
    cl = np.log(sclose)
    clx = de.rsub(cl, x)
    dx = de.distance2(x)
    xd = np.where(x != 0)[0]
    # ue1 = (uv/clx/dx)[xd]
    # ue2 = (uv/clx/dx/dx)[xd]
    # de1 = (dv/clx/dx)[xd]
    # de2 = (dv/clx/dx/dx)[xd]
    # return xd,ue1,ue2,de1,de2
    # e1 = (np.abs((uv-dv))/clx/dx)[xd]
    # e2 = (np.abs((uv-dv))/clx/dx/dx)[xd]
    # return xd,e1,e2,uv-dv
    return (uv / dx)[xd], (uv / clx)[xd], (dv / dx)[xd], (dv / clx)[xd]
Example #5
0
def vdis(sopen, sclose, shigh, slow, svolume):
    ''' 功率含义的比较,但是很难应用
        up,uf,dp,df = vdis(t[OPEN],t[CLOSE],t[HIGH],t[LOW],t[VOLUME])
    '''
    su, sd = supdown(sopen, sclose, shigh, slow)
    x = f.xpeak_points_2(shigh, slow, 11)
    uv = svolume * su / (su + sd)
    dv = svolume - uv
    uvx = de.rsum2(uv, x)
    dvx = de.rsum2(dv, x)
    cl = np.log(sclose)
    clx = de.rsub(cl, x)
    dx = de.distance2(x)
    xd = np.where(x != 0)[0]
    #ue1 = (uv/clx/dx)[xd]
    #ue2 = (uv/clx/dx/dx)[xd]
    #de1 = (dv/clx/dx)[xd]
    #de2 = (dv/clx/dx/dx)[xd]
    #return xd,ue1,ue2,de1,de2
    #e1 = (np.abs((uv-dv))/clx/dx)[xd]
    #e2 = (np.abs((uv-dv))/clx/dx/dx)[xd]
    #return xd,e1,e2,uv-dv
    return (uv / dx)[xd], (uv / clx)[xd], (dv / dx)[xd], (dv / clx)[xd]