예제 #1
0
파일: psar.py 프로젝트: hubbs5/pyalgotrade
    def __init__(self, type_indicator, init_acceleration_factor, acceleration_factor_step, max_acceleration_factor, previous_day, period):
        assert(period > 0)
        super(PSAREventWindow, self).__init__(windowSize=2) 
        self.__value = None 
        self.__numDays = 0 
        self.type_indicator = type_indicator

        self.init_acceleration_factor = init_acceleration_factor 
        self.acceleration_factor = init_acceleration_factor
        self.acceleration_factor_step = acceleration_factor_step
        self.max_acceleration_factor = max_acceleration_factor
        self.previous_day = previous_day 

        self.high_prices_trend = []
        self.low_prices_trend = []

        self.high_prices_window = collections.NumPyDeque(period, float)
        self.low_prices_window = collections.NumPyDeque(period, float)

        self.extreme_point = None 

        self.trend_type = None 
        
        self.reversal_toUptrend = False 
        self.reversal_toDowntrend = False 
예제 #2
0
    def testNumPyDequeResize(self):
        d = collections.NumPyDeque(10)

        self.assertEqual(len(d), 0)
        for i in range(20):
            d.append(i)
        self.assertEqual(d[0], 10)
        self.assertEqual(d[9], 19)
        self.assertEqual(d[-1], 19)
        self.assertEqual(len(d), 10)

        d.resize(5)
        self.assertEqual(len(d), 5)
        self.assertEqual(d[-0], 10)
        self.assertEqual(d[4], 14)
        self.assertEqual(d[-1], 14)

        d.resize(10)
        self.assertEqual(len(d), 5)
        self.assertEqual(d[-0], 10)
        self.assertEqual(d[4], 14)
        self.assertEqual(d[-1], 14)

        d.append(15)
        self.assertEqual(len(d), 6)
        self.assertEqual(d[5], 15)
        self.assertEqual(d[-1], 15)
예제 #3
0
 def __init__(self, windowSize, dtype=float, skipNone=False):
     assert (windowSize > 0)
     assert (isinstance(windowSize, int))
     #self.__multiplier = (2.0 / (windowSize + 1))
     self.__values = collections.NumPyDeque(windowSize, dtype)
     #self.__weights = collections.NumPyDeque(windowSize, dtype)
     self.__windowSize = windowSize
     self.__skipNone = skipNone
예제 #4
0
    def testNumPyDeque(self):
        d = collections.NumPyDeque(10)
        self.assertEqual(len(d), 0)

        for i in range(10):
            d.append(i)
        self.assertEqual(d[0], 0)
        self.assertEqual(d[9], 9)
        self.assertEqual(d[-1], 9)
        self.assertEqual(d[-2], 8)
        self.assertEqual(d[0:3].sum(), 3)

        for i in range(3):
            d.append(i)
        self.assertEqual(len(d), 10)
        self.assertEqual(d[0], 3)
        self.assertEqual(d[9], 2)
        self.assertEqual(d[-1], 2)
        self.assertEqual(d[-2], 1)
예제 #5
0
    def testSum(self):
        d = collections.NumPyDeque(10)

        for i in range(10):
            d.append(i)
        self.assertEqual(d[0:3].sum(), 3)
예제 #6
0
 def buildCollection(self, maxLen):
     return collections.NumPyDeque(maxLen)
예제 #7
0
 def __init__(self, windowSize):
     assert (windowSize > 1)
     technical.EventWindow.__init__(self, windowSize)
     self.__timestamps = collections.NumPyDeque(windowSize)
예제 #8
0
 def __init__(self, windowSize):
     assert (windowSize > 1)
     super(LeastSquaresRegressionWindow, self).__init__(windowSize)
     self.__timestamps = collections.NumPyDeque(windowSize)
예제 #9
0
 def __init__(self, windowSize, dtype=float, skipNone=True):
     assert (windowSize > 0)
     assert (isinstance(windowSize, types.IntType))
     self.__values = collections.NumPyDeque(windowSize, dtype)
     self.__windowSize = windowSize
     self.__skipNone = skipNone