示例#1
0
def test_MOM():
    values = np.array([90.0, 88.0, 89.0])
    result = func.MOM(values, timeperiod=1)
    assert_np_arrays_equal(result, [np.nan, -2, 1])
    result = func.MOM(values, timeperiod=2)
    assert_np_arrays_equal(result, [np.nan, np.nan, -1])
    result = func.MOM(values, timeperiod=3)
    assert_np_arrays_equal(result, [np.nan, np.nan, np.nan])
    result = func.MOM(values, timeperiod=4)
    assert_np_arrays_equal(result, [np.nan, np.nan, np.nan])
示例#2
0
def get_technical_indicators(dataset):
    # Create 7 and 21 days Moving Average
    dataset['ma5'] = dataset['Close'].rolling(window=5).mean()
    dataset['ma10'] = dataset['Close'].rolling(window=10).mean()
    
    # Create MACD
    dataset['26ema'] = func.EMA(dataset['Close'],26)
    dataset['12ema'] = func.EMA(dataset['Close'],12)
    dataset['MACD'] = (dataset['12ema']-dataset['26ema'])

    # Create Bollinger Bands
    dataset['10sd'] = dataset['Close'].rolling(10).std()
    dataset['upper_band'] = dataset['ma5'] + (dataset['10sd']*2)
    dataset['lower_band'] = dataset['ma10'] - (dataset['10sd']*2)
    
    
    # Create Exponential moving average
    dataset['ema'] = dataset['Close'].ewm(com=0.5).mean()
    
    # Create Momentum
    dataset['momentum'] = func.MOM(dataset['Close'],20)
    
    # ROC
    dataset['roc'] = func.ROC(dataset['Close'],10)
    
    # Willam
    dataset['wpr'] = func.WILLR(dataset['High'], dataset['Low'], dataset['Close'], timeperiod=14)
    
    # ATR
    dataset['atr'] = func.ATR(dataset['High'], dataset['Low'], dataset['Close'], timeperiod=14)
    
    return dataset
示例#3
0
bb_low = (ma5 - sd_10 * 2)['2007-02-08':]
print(sum(sum(np.isnan(bb_low.values))))
bb_low_open = (ma5_open - sd_10_open * 2)['2007-02-08':]
print(sum(sum(np.isnan(bb_low_open.values))))

ema = Close.ewm(com=0.5).mean()['2007-02-08':]
print(sum(sum(np.isnan(ema.values))))
ema_open = Open.ewm(com=0.5).mean()['2007-02-08':]
print(sum(sum(np.isnan(ema_open.values))))

roc = Close.apply(lambda x: func.ROC(x, 10), axis=0)['2007-02-08':]
print(sum(sum(np.isnan(roc.values))))
roc_open = Open.apply(lambda x: func.ROC(x, 10), axis=0)['2007-02-08':]
print(sum(sum(np.isnan(roc_open.values))))

mom = Close.apply(lambda x: func.MOM(x, 20), axis=0)['2007-02-08':]
print(sum(sum(np.isnan(mom.values))))
mom_open = Open.apply(lambda x: func.MOM(x, 20), axis=0)['2007-02-08':]
print(sum(sum(np.isnan(mom_open.values))))

Close = Close['2007-02-08':]
Open = Open['2007-02-08':]
High = High['2007-02-08':]
Low = Low['2007-02-08':]

#%%


def KalmanFilterAverage(x):
    # Construct a Kalman filter
示例#4
0
def test_input_wrong_type():
    a1 = np.arange(10, dtype=int)
    with assert_raises(Exception):
        func.MOM(a1)