Example #1
0
 def process_order(self,order):
     try:
         if not(order['ticker'] in self.order_books.keys()):
             book = order_book.order_book()
             book.add_order(order)
             self.order_books[order['ticker']] = book
         else:
             # otherwise process to existing book
             self.order_books[order['ticker']].process_order(order)
     except:
         # Provided for debugging
         raise Exception("order %s not added to exchange" % order['id'])
Example #2
0
 def process_order(self, order):
     try:
         if not (order["ticker"] in self.order_books.keys()):
             # if ticker not available, initialize:
             book = order_book.order_book()
             book.add_order(order)
             self.order_books[order["ticker"]] = book
         else:
             # otherwise process to existing book
             self.order_books[order["ticker"]].process_order(order)
     except:
         print "could not add order %s to exchange" % order["id"]
         pass
def genData(quotefile, traded_time, tradeDir='short'):

    time_sec, time_millis, bid_price_1,bid_price_2,bid_price_3,bid_quantity_1,\
            bid_quantity_2,bid_quantity_3,ask_price_1,ask_price_2,ask_price_3,ask_quantity_1,\
            ask_quantity_2,ask_quantity_3 = order_book(quotefile)

    time_second, time_second_basic = time_transform(time_sec, time_millis)

    time_second_basic, [time_second, \
    bid_price_1,bid_price_2,bid_price_3,bid_quantity_1,bid_quantity_2,bid_quantity_3, \
    ask_price_1,ask_price_2,ask_price_3,ask_quantity_1,ask_quantity_2,ask_quantity_3] \
        = extract_by_sec_basic([[0, TIME_INTV_1_15], [TIME_INTV_1_30, TIME_INTV_2_30], \
        [TIME_INTV_4_30, TIME_INTV_6_00]], time_second_basic,[time_second, \
         bid_price_1,bid_price_2,bid_price_3,bid_quantity_1,bid_quantity_2,bid_quantity_3, \
         ask_price_1,ask_price_2,ask_price_3,ask_quantity_1,ask_quantity_2,ask_quantity_3])

    before_time = 60.0 * 6
    rise_ratio_ask_1 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 6 + 30
    rise_ratio_ask_2 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 7
    rise_ratio_ask_3 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 7 + 30
    rise_ratio_ask_4 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 8
    rise_ratio_ask_5 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 8 + 30
    rise_ratio_ask_6 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 9
    rise_ratio_ask_7 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 9 + 30
    rise_ratio_ask_8 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 10
    rise_ratio_ask_9 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 10 + 30
    rise_ratio_ask_10 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 11
    rise_ratio_ask_11 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 11 + 30
    rise_ratio_ask_12 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 12
    rise_ratio_ask_13 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 12 + 30
    rise_ratio_ask_14 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 13
    rise_ratio_ask_15 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 13 + 30
    rise_ratio_ask_16 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 14
    rise_ratio_ask_17 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 14 + 30
    rise_ratio_ask_18 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 15
    rise_ratio_ask_19 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 15 + 30
    rise_ratio_ask_20 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 16
    rise_ratio_ask_21 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 16 + 30
    rise_ratio_ask_22 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 17
    rise_ratio_ask_23 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 17 + 30
    rise_ratio_ask_24 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 18
    rise_ratio_ask_25 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 18 + 30
    rise_ratio_ask_26 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 19
    rise_ratio_ask_27 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 19 + 30
    rise_ratio_ask_28 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 20
    rise_ratio_ask_29 = rise_ask(ask_price_1, time_second_basic, before_time)
    before_time = 60.0 * 20 + 30
    rise_ratio_ask_30 = rise_ask(ask_price_1, time_second_basic, before_time)

    #Weight Depth
    w1, w2, w3 = [100.0, 0.0, 0.0]
    W_AB_100 , W_A_B_100 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [0.0, 100.0, 0.0]
    W_AB_010 , W_A_B_010 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [0.0, 0.0, 100.0]
    W_AB_001 , W_A_B_001 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [90.0, 10.0, 0.0]
    W_AB_910 , W_A_B_910 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [80.0, 20.0, 0.0]
    W_AB_820 , W_A_B_820 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [70.0, 30.0, 0.0]
    W_AB_730 , W_A_B_730 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [60.0, 40.0, 0.0]
    W_AB_640 , W_A_B_640 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [50.0, 50.0, 0.0]
    W_AB_550 , W_A_B_550 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [70.0, 20.0, 10.0]
    W_AB_721 , W_A_B_721 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [50.0, 30.0, 20.0]
    W_AB_532 , W_A_B_532 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [1.0, 1.0, 1.0]
    W_AB_111 , W_A_B_111 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [10.0, 90.0, 1.0]
    W_AB_190 , W_A_B_190 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [20.0, 80.0, 0.0]
    W_AB_280 , W_A_B_280 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [30.0, 70.0, 0.0]
    W_AB_370 , W_A_B_370 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [40.0, 60.0, 0.0]
    W_AB_460 , W_A_B_460 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [10.0, 20.0, 70.0]
    W_AB_127 , W_A_B_127 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)
    w1, w2, w3 = [20.0, 30.0, 50.0]
    W_AB_235 , W_A_B_235 = weight_pecentage(w1,w2,w3,ask_quantity_1,ask_quantity_2,ask_quantity_3,\
                     bid_quantity_1,bid_quantity_2,bid_quantity_3)

    data_DF =\
    feature_DataFrame(traded_time,time_second_basic,bid_price_1,ask_price_1,rise_ratio_ask_1,\
                         rise_ratio_ask_2,rise_ratio_ask_3,rise_ratio_ask_4,rise_ratio_ask_5,\
                         rise_ratio_ask_6,rise_ratio_ask_7,rise_ratio_ask_8,rise_ratio_ask_9,\
                         rise_ratio_ask_10,rise_ratio_ask_11,rise_ratio_ask_12,rise_ratio_ask_13,\
                         rise_ratio_ask_14,rise_ratio_ask_15,rise_ratio_ask_16,rise_ratio_ask_17,\
                         rise_ratio_ask_18,rise_ratio_ask_19,rise_ratio_ask_20,rise_ratio_ask_21,\
                         rise_ratio_ask_22,rise_ratio_ask_23,rise_ratio_ask_24,rise_ratio_ask_25,\
                         rise_ratio_ask_26,rise_ratio_ask_27,rise_ratio_ask_28,rise_ratio_ask_29,\
                         rise_ratio_ask_30,W_AB_100, W_A_B_100, W_AB_010, W_A_B_010, W_AB_001,\
                         W_A_B_001, W_AB_910, W_A_B_910, W_AB_820, W_A_B_820, W_AB_730 , W_A_B_730,\
                         W_AB_640, W_A_B_640, W_AB_550, W_A_B_550,W_AB_721, W_A_B_721, W_AB_532,\
                         W_A_B_532, W_AB_111, W_A_B_111, W_AB_190, W_A_B_190, W_AB_280 , W_A_B_280,\
                         W_AB_370, W_A_B_370, W_AB_460, W_A_B_460, W_AB_127, W_A_B_127, W_AB_235, W_A_B_235,\
                         tradeDir)

    return data_DF, len(W_AB_111)

if __name__ == '__main__':

    # sec_itvl_list = [[0.0, 3.0], [4.5, 5.5], [8, 10]]
    # time_second_basic = np.array([0.0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5])
    # seriesList = [np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),
    #               np.array(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't'])]
    #
    # time_second_array, resultList = extract_by_sec_basic(sec_itvl_list, time_second_basic, seriesList)
    # print(time_second_array)
    # print(resultList)

    time_sec, time_millis, bid_price_1,bid_price_2,bid_price_3,bid_quantity_1,\
            bid_quantity_2,bid_quantity_3,ask_price_1,ask_price_2,ask_price_3,ask_quantity_1,\
            ask_quantity_2,ask_quantity_3 = order_book('E:\\高频五档行情\\dce\\20170103\\m1705_20170103.csv')

    time_second, time_second_basic = time_transform(time_sec, time_millis)
    print(time_second_basic)
    print(time_second)
    print(bid_price_1)
    print(bid_quantity_1)
    print(ask_price_1)
    print(ask_quantity_1)
    time_second_basic, [time_second, \
    bid_price_1,bid_price_2,bid_price_3,bid_quantity_1,bid_quantity_2,bid_quantity_3, \
    ask_price_1,ask_price_2,ask_price_3,ask_quantity_1,ask_quantity_2,ask_quantity_3] \
        = extract_by_sec_basic([[0, TIME_INTV_1_15], [TIME_INTV_1_30, TIME_INTV_2_30], [TIME_INTV_4_30, TIME_INTV_6_00]],
        time_second_basic,[time_second, \
         bid_price_1,bid_price_2,bid_price_3,bid_quantity_1,bid_quantity_2,bid_quantity_3, \
         ask_price_1,ask_price_2,ask_price_3,ask_quantity_1,ask_quantity_2,ask_quantity_3])