示例#1
0
                if len(self.lmacd) >= self.sizemamacd:
                    mamacd = sum(
                        self.lmacd[-self.sizemamacd:]) / self.sizemamacd
                    if macd > mamacd:
                        if self.state == 0:
                            if self.signal == -1:
                                orders.append(Order(event.instrument, 100, 0))
                                orders.append(Order(event.instrument, 100, 0))
                            if self.signal == 0:
                                orders.append(Order(event.instrument, 100, 0))
                            self.signal = 1
                            self.state = 1
                    elif macd < mamacd:
                        if self.state == 1:
                            if self.signal == 1:
                                orders.append(Order(event.instrument, -100, 0))
                                orders.append(Order(event.instrument, -100, 0))
                            if self.signal == 0:
                                orders.append(Order(event.instrument, -100, 0))
                            self.signal = -1
                            self.state = 0
                del self.prices[0]
        return orders


files = os.listdir('./PETR4-2018-08')
for file in files:
    print(evaluateTick(MACDRSI(), {'PETR4': f'./PETR4-2018-08/{file}'}))
    print(evaluateTick(MACD(), {'PETR4': f'./PETR4-2018-08/{file}'}))
示例#2
0
            self.prices.append(price)
            orders = []
            if len(self.prices) == self.size:
                std = np.array(self.prices).std()
                mavg = sum(self.prices) / self.size

                if price >= mavg + std:
                    if self.signal == 1:
                        orders.append(Order(event.instrument, -100, 0))
                        orders.append(Order(event.instrument, -100, 0))
                    if self.signal == 0:
                        orders.append(Order(event.instrument, -100, 0))
                    self.signal = -1
                elif price <= mavg - std:
                    if self.signal == -1:
                        orders.append(Order(event.instrument, 200, 0))
                    if self.signal == 0:
                        orders.append(Order(event.instrument, 100, 0))
                    self.signal = 1

                del self.prices[0]

            return orders
        return []


#print(evaluateTick(BuynHoldTick(), {'PETR4': '2018-03-07.csv'}))
#print(evaluateTick(MAVGTick(), {'PETR4': '2018-03-07.csv'}))
#print(evaluateTick(CrazyGambler(), {'PETR4': '2018-03-07.csv'}))
print(evaluateTick(MonkeyTrade(), {'PETR4': '2018-03-07.csv'}))
示例#3
0
            if tinyrollingmean > upperband:
                prob = 100
            elif tinyrollingmean < lowerband:
                prob = 0
            else:
                prob = ((tinyrollingmean - lowerband)/(upperband - lowerband))*100
            
            if ((10 > prob)):
                if (prob == 0):
                    orders.append(Order(event.instrument, 1, 0))
                orders.append(Order(event.instrument, 1, 0))

            if ((70 < prob)):
                if (prob == 1):
                    orders.append(Order(event.instrument, -1, 0))
                orders.append(Order(event.instrument, -1, 0))

        if len(orders) > 0:
            for order in orders:
                print(order.print())

        return orders

    def fill(self, id, instrument, price, quantity, status):
        super().fill(id, instrument, price, quantity, status)
        self.side += quantity
        print(self.position)

print(evaluateTick(BrainyApeTrade(), {'PETR4': '2018-03-07.csv'}))
示例#4
0
        if event.type == Event.TRADE:
            price = event.price
            self.prices.append(price)
            orders = []
            if len(self.prices) == self.size:
                std = np.array(self.prices).std()
                mavg = sum(self.prices) / self.size

                if price >= mavg + std:
                    if self.signal == 1:
                        orders.append(Order(event.instrument, -100, 0))
                        orders.append(Order(event.instrument, -100, 0))
                    if self.signal == 0:
                        orders.append(Order(event.instrument, -100, 0))
                    self.signal = -1
                elif price <= mavg - std:
                    if self.signal == -1:
                        orders.append(Order(event.instrument, 200, 0))
                    if self.signal == 0:
                        orders.append(Order(event.instrument, 100, 0))
                    self.signal = 1

                del self.prices[0]

            return orders
        return []


print(evaluateTick(BuynHoldTick(), {'PETR4': '2018-03-07.csv'}))
print(evaluateTick(MAVGTick(), {'PETR4': '2018-03-07.csv'}))
示例#5
0
文件: macd.py 项目: eduardotp1/macd
                self.macd_hist.append(macd)

                if len(self.macd_hist) == self.size:
                    if self.exp_mm is None:
                        self.exp_mm = sum(self.macd_hist) / self.size
                    else:
                        new_mm = self.exp_mm
                        a = 2 / (self.size + 1)
                        self.exp_mm = (1 - a) * new_mm + a * self.macd_hist[-1]
                    diff = macd - self.exp_mm

                    if self.signal != 1 and diff > 0.001:
                        if self.signal == -1:
                            # print(orders)
                            orders.append(Order(event.instrument, 1, 0))
                        orders.append(Order(event.instrument, 1, 0))
                        self.signal = 1

                    elif self.signal != -1 and diff < -0.001:
                        if self.signal == 1:
                            # print(orders)
                            orders.append(Order(event.instrument, -1, 0))
                        orders.append(Order(event.instrument, -1, 0))
                        self.signal = -1
                    del self.macd_hist[0]
                del self.hist[0]
        return orders


print(evaluateTick(MACD(), {'PETR4': '2018-03-07.csv'}))