# contract.currency = "HKD" # # req = Request.new_request() # # client.cli.reqTickByTickData(req.req_id, contract, "AllLast", 0, False) # # client.cli.reqContractDetails(req.req_id, contract) # client.cli.reqMktData(req.req_id, contract, '', False, False, None) code = 'CL_FUT_USD_NYMEX_202104' # code = 'GSX_STK_USD_SMART' dp: DataPortal = DataPortal(is_backtest=False, ts_type_name_for_current_price='ibMarketData', subscribe_codes=[code]) # cp = dp.current_price([code], Timestamp.now(tz='Asia/Shanghai')) # print("cp:{}".format(cp)) class MySub(TimeSeriesSubscriber): def on_data(self, data: TSData): print(str(data.__dict__)) ts_repo: TimeSeriesRepo = BeanContainer.getBean(TimeSeriesRepo) ts: TimeSeries = ts_repo.find_one('ibMarketData') ts.subscribe(MySub(), ['CL_FUT_USD_NYMEX_202104']) while True: import time time.sleep(2) cp = ts.func.current_price([code]) if code in cp: print("当前价格:{}".format(cp[code].__dict__))
from trading_calendars import get_calendar from se import config, BeanContainer, AccountRepo from se.domain2.engine.engine import Engine, Scope from se.infras.td import TDAccount from st import SPCEStrategy engine = Engine() scope = Scope(["SPCE_STK_USD_SMART"], trading_calendar=get_calendar("NYSE")) strategy = SPCEStrategy(scope) account_name = "td_local_spce" repo: AccountRepo = BeanContainer.getBean(AccountRepo) acc: TDAccount = repo.find_one(account_name) if not acc: acc = TDAccount(account_name, 100) acc.with_order_callback(strategy).with_client( config.get("td_account", "client_id"), config.get("td_account", 'redirect_url'), config.get("td_account", 'credentials_path'), config.get("td_account", 'account_id')) acc.start_save_thread() engine.run(strategy, acc)