def request_outright_market_data(self): outright_ticker_list = self.price_request_dictionary['outright'] self.nonfinished_bid_price_list.extend(outright_ticker_list) self.nonfinished_ask_price_list.extend(outright_ticker_list) self.nonfinished_bid_quantity_list.extend(outright_ticker_list) self.nonfinished_ask_quantity_list.extend(outright_ticker_list) for i in range(len(outright_ticker_list)): self.bid_price_dictionary[outright_ticker_list[i]] = np.nan self.ask_price_dictionary[outright_ticker_list[i]] = np.nan self.bid_quantity_dictionary[outright_ticker_list[i]] = np.nan self.ask_quantity_dictionary[outright_ticker_list[i]] = np.nan self.fair_price_dictionary[outright_ticker_list[i]] = np.nan outright_ib_contract = ib_contract.get_ib_contract_from_db_ticker( ticker=outright_ticker_list[i], sec_type='F') self.outright_contract_dictionary[ outright_ticker_list[i]] = outright_ib_contract self.market_data_ReqId_dictionary[ self.next_val_id] = outright_ticker_list[i] self.log.info('req id: ' + str(self.next_val_id) + ', outright_ticker:' + str(outright_ticker_list[i])) self.reqMktData(self.next_valid_id(), outright_ib_contract, "", False, False, [])
def request_historical_bar_data(self): ticker_list = self.ticker_list self.nonfinished_historical_data_list = ticker_list for i in range(len(ticker_list)): self.high_price_dictionary[ticker_list[i]] = [] self.low_price_dictionary[ticker_list[i]] = [] self.close_price_dictionary[ticker_list[i]] = [] self.open_price_dictionary[ticker_list[i]] = [] self.volume_dictionary[ticker_list[i]] = [] self.bar_date_dictionary[ticker_list[i]] = [] outright_ib_contract = ib_contract.get_ib_contract_from_db_ticker( ticker=ticker_list[i], sec_type='F') self.bar_data_ReqId_dictionary[self.next_val_id] = ticker_list[i] print('req id: ' + str(self.next_val_id) + ', outright_ticker:' + str(ticker_list[i])) self.reqHistoricalData(reqId=self.next_valid_id(), contract=outright_ib_contract, endDateTime='', durationStr=self.durationStr, barSizeSetting='5 mins', whatToShow='TRADES', useRTH=0, formatDate=1, chartOptions=[], keepUpToDate=False)
def main_run(self): ticker_list = self.ticker_list self.nonfinished_ticker_list = cpy.deepcopy(ticker_list) for i in range(len(ticker_list)): contract_i = ib_contract.get_ib_contract_from_db_ticker(ticker=ticker_list[i], sec_type='F') self.contractDetailReqIdDictionary[self.next_val_id] = ticker_list[i] self.nonfinished_contract_detail_ReqId_list.append(self.next_val_id) self.reqContractDetails(self.next_valid_id(), contract_i)
def main_run(self): position_frame = self.position_frame for i in range(len(position_frame.index)): if position_frame.loc[i, 'instrument'] == 'F': contract_i = ib_contract.get_ib_contract_from_db_ticker( ticker=position_frame.loc[i, 'ticker'], sec_type='F') elif position_frame.loc[i, 'instrument'] == 'O': contract_i = ib_contract.get_ib_contract_from_db_ticker( ticker=position_frame.loc[i, 'ticker'], sec_type='OF', option_type=position_frame.loc[i, 'option_type'], strike=float(position_frame.loc[i, 'strike_price'])) elif position_frame.loc[i, 'instrument'] == 'S': contract_i = ib_contract.get_ib_contract_from_db_ticker( ticker=position_frame.loc[i, 'ticker'], sec_type='S') self.contractDetailReqIdDictionary[self.next_val_id] = i self.nonfinished_contract_detail_ReqId_list.append( self.next_val_id) self.reqContractDetails(self.next_valid_id(), contract_i)
def main_run(self): vcs_pairs = self.vcs_pairs proxy_ticker_list = list( set(vcs_pairs['proxy_ticker1'].unique()) | set(vcs_pairs['proxy_ticker2'].unique())) self.nonfinished_bid_price_list.extend(proxy_ticker_list) self.nonfinished_ask_price_list.extend(proxy_ticker_list) for i in range(len(proxy_ticker_list)): print('id:' + str(self.next_val_id) + ', ' + proxy_ticker_list[i]) self.market_data_ReqId_dictionary[ self.next_val_id] = proxy_ticker_list[i] outright_ib_contract = ib_contract.get_ib_contract_from_db_ticker( ticker=proxy_ticker_list[i], sec_type='F') self.reqMktData(self.next_valid_id(), outright_ib_contract, "", False, False, [])
def req_option_chains(self): vcs_pairs = self.vcs_pairs self.option_ticker_list = list( set(vcs_pairs['ticker1'].unique()) | (set(vcs_pairs['ticker2'].unique()))) for i in range(len(self.option_ticker_list)): self.contractDetailReqIdDictionary[ self.next_val_id] = self.option_ticker_list[i] ib_option_contract = ib_contract.get_ib_contract_from_db_ticker( ticker=self.option_ticker_list[i], sec_type='OF') self.nonfinished_contract_detail_ReqId_list.append( self.next_val_id) print('id:' + str(self.next_val_id) + ', ' + self.option_ticker_list[i]) self.reqContractDetails(self.next_valid_id(), ib_option_contract)
def request_outright_market_data(self): outright_ticker_list = self.price_request_dictionary['outright'] self.nonfinished_bid_price_list.extend(outright_ticker_list) self.nonfinished_ask_price_list.extend(outright_ticker_list) self.nonfinished_bid_quantity_list.extend(outright_ticker_list) self.nonfinished_ask_quantity_list.extend(outright_ticker_list) for i in range(len(outright_ticker_list)): if self.num_messages>=30: tm.sleep(2) self.num_messages = 0 outright_ib_contract = ib_contract.get_ib_contract_from_db_ticker(ticker=outright_ticker_list[i], sec_type='F') self.market_data_ReqId_dictionary[self.next_val_id] = outright_ticker_list[i] self.log.info('req id: ' + str(self.next_val_id) + ', outright_ticker:' + str(outright_ticker_list[i])); self.reqMktData(self.next_valid_id(), outright_ib_contract, "", False, False, []) self.num_messages += 1
def request_market_data(self): ticker_list = self.ticker_list self.nonfinished_bid_price_list.extend(ticker_list) self.nonfinished_ask_price_list.extend(ticker_list) self.nonfinished_bid_quantity_list.extend(ticker_list) self.nonfinished_ask_quantity_list.extend(ticker_list) self.nonfinished_historical_data_list.extend(ticker_list) for i in range(len(ticker_list)): self.bid_price_dictionary[ticker_list[i]] = np.nan self.ask_price_dictionary[ticker_list[i]] = np.nan self.bid_quantity_dictionary[ticker_list[i]] = np.nan self.ask_quantity_dictionary[ticker_list[i]] = np.nan self.current_high_price_dictionary[ticker_list[i]] = np.nan self.current_low_price_dictionary[ticker_list[i]] = np.nan self.long_breakout_price_dictionary[ticker_list[i]] = np.nan self.short_breakout_price_dictionary[ticker_list[i]] = np.nan self.long_stop_price_dictionary[ticker_list[i]] = np.nan self.short_stop_price_dictionary[ticker_list[i]] = np.nan self.long_target_price_dictionary[ticker_list[i]] = np.nan self.short_target_price_dictionary[ticker_list[i]] = np.nan self.long_trade_possible_dictionary[ticker_list[i]] = False self.short_trade_possible_dictionary[ticker_list[i]] = False self.stop_adjustment_possible_dictionary[ticker_list[i]] = False self.trade_entry_price_dictionary[ticker_list[i]] = np.nan outright_ib_contract = ib_contract.get_ib_contract_from_db_ticker( ticker=ticker_list[i], sec_type='F') self.ib_contract_dictionary[ticker_list[i]] = outright_ib_contract self.market_data_ReqId_dictionary[ self.next_val_id] = ticker_list[i] self.log.info('req id: ' + str(self.next_val_id) + ', outright_ticker:' + str(ticker_list[i])) self.reqMktData(self.next_valid_id(), outright_ib_contract, "", False, False, [])