Exemplo n.º 1
0
def AVG_DECLINE(xt, y, covered=22):
    mranges = decline_ranges(y, covered)
    mperiods = decline_periods(y, covered)
    #print 'ranges,periods:',mranges,mperiods
    avg_range = np.sum(mranges) / np.sum(greater(mranges))
    avg_period = np.sum(mperiods) / np.sum(greater(mperiods))
    return int(avg_range), int(avg_period)
Exemplo n.º 2
0
def AVG_DECLINE(xt,y,covered=22):
    mranges = decline_ranges(y,covered)
    mperiods = decline_periods(y,covered)
    #print 'ranges,periods:',mranges,mperiods
    avg_range = np.sum(mranges) / np.sum(greater(mranges))
    avg_period = np.sum(mperiods) / np.sum(greater(mperiods))
    return int(avg_range),int(avg_period)
Exemplo n.º 3
0
def scover(source,covered=1):
    ''' 信号覆盖
        对信号日开始的covered日内进行信号覆盖
        原始序列以>0为有信号
        输出序列以1为有信号
    '''
    ss = greater(source,0)
    mss = msum2(ss,covered)
    #print ss,mss    
    return greater(mss,0)
Exemplo n.º 4
0
def scover(source, covered=1):
    ''' 信号覆盖
        对信号日开始的covered日内进行信号覆盖
        原始序列以>0为有信号
        输出序列以1为有信号
    '''
    ss = greater(source, 0)
    mss = msum2(ss, covered)
    #print ss,mss
    return greater(mss, 0)
Exemplo n.º 5
0
 def finishing(self, stock, sbuy, ssell):
     Mediator.finishing(self, stock, sbuy, ssell)
     #平滑掉两个最大值
     stock.mfe_sum, stock.mae_sum = mm_sum_smooth(sbuy,
                                                  stock.mfe,
                                                  stock.mae,
                                                  smooth=2)
     stock.mm_count = int(np.sum(greater(sbuy)))
Exemplo n.º 6
0
def opendayofweek(weekdays):    #周开盘日
    #特定情形下会不正确,如某周一交易日后,下一个交易日正好是下周二,则该周二不会被识别为周开盘日. 好在错误对称。
    #另,第一个交易日也被识别为周开盘日
    return greater(lesser_equals(weekdays-rollx(weekdays)) + equals(weekdays,1)) 
Exemplo n.º 7
0
def closedayofweek(weekdays): #周收盘日
    #特别特殊的情形下会不正确,如某周一交易日后,下一个交易日正好是下周二,则该周一不会被识别为周收盘日
    #另,最后一个交易日也被识别为周收盘日
    return greater(greater_equals(weekdays-rollx(weekdays,-1)) + equals(weekdays,5))
Exemplo n.º 8
0
def psy(source,length=12):
    ''' 心理线PSY:COUNT(CLOSE>REF(CLOSE,1),N)/N*100
    '''
    s = greater(source,rollx(source))
    rev = (msum(s,length) * BASE + length/2)/ length
    return rev
Exemplo n.º 9
0
 def finishing(self,stock,sbuy,ssell):
     Mediator.finishing(self,stock,sbuy,ssell)
     #平滑掉两个最大值
     stock.mfe_sum,stock.mae_sum = mm_sum_smooth(sbuy,stock.mfe,stock.mae,smooth=2)  
     stock.mm_count = int(np.sum(greater(sbuy)))
Exemplo n.º 10
0
def opendayofweek(weekdays):  #周开盘日
    #特定情形下会不正确,如某周一交易日后,下一个交易日正好是下周二,则该周二不会被识别为周开盘日. 好在错误对称。
    #另,第一个交易日也被识别为周开盘日
    return greater(
        lesser_equals(weekdays - rollx(weekdays)) + equals(weekdays, 1))
Exemplo n.º 11
0
def closedayofweek(weekdays):  #周收盘日
    #特别特殊的情形下会不正确,如某周一交易日后,下一个交易日正好是下周二,则该周一不会被识别为周收盘日
    #另,最后一个交易日也被识别为周收盘日
    return greater(
        greater_equals(weekdays - rollx(weekdays, -1)) + equals(weekdays, 5))
Exemplo n.º 12
0
def psy(source, length=12):
    ''' 心理线PSY:COUNT(CLOSE>REF(CLOSE,1),N)/N*100
    '''
    s = greater(source, rollx(source))
    rev = (msum(s, length) * BASE + length / 2) / length
    return rev