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'])
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])