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)
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)
def scover(source,covered=1): ''' 信号覆盖 对信号日开始的covered日内进行信号覆盖 原始序列以>0为有信号 输出序列以1为有信号 ''' ss = greater(source,0) mss = msum2(ss,covered) #print ss,mss return greater(mss,0)
def scover(source, covered=1): ''' 信号覆盖 对信号日开始的covered日内进行信号覆盖 原始序列以>0为有信号 输出序列以1为有信号 ''' ss = greater(source, 0) mss = msum2(ss, covered) #print ss,mss return greater(mss, 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)))
def opendayofweek(weekdays): #周开盘日 #特定情形下会不正确,如某周一交易日后,下一个交易日正好是下周二,则该周二不会被识别为周开盘日. 好在错误对称。 #另,第一个交易日也被识别为周开盘日 return greater(lesser_equals(weekdays-rollx(weekdays)) + equals(weekdays,1))
def closedayofweek(weekdays): #周收盘日 #特别特殊的情形下会不正确,如某周一交易日后,下一个交易日正好是下周二,则该周一不会被识别为周收盘日 #另,最后一个交易日也被识别为周收盘日 return greater(greater_equals(weekdays-rollx(weekdays,-1)) + equals(weekdays,5))
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
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)))
def opendayofweek(weekdays): #周开盘日 #特定情形下会不正确,如某周一交易日后,下一个交易日正好是下周二,则该周二不会被识别为周开盘日. 好在错误对称。 #另,第一个交易日也被识别为周开盘日 return greater( lesser_equals(weekdays - rollx(weekdays)) + equals(weekdays, 1))
def closedayofweek(weekdays): #周收盘日 #特别特殊的情形下会不正确,如某周一交易日后,下一个交易日正好是下周二,则该周一不会被识别为周收盘日 #另,最后一个交易日也被识别为周收盘日 return greater( greater_equals(weekdays - rollx(weekdays, -1)) + equals(weekdays, 5))
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