from haohaninfo import GOrder # 匯入模組 Broker = 'Simulator' # Yuanta(元大證券)、Capital(群益證券)、Capital_Future(群益期貨)、Kgi(凱基證券)、Kgi_Future(凱基期貨)、Simulator(虛擬期貨) Kind = 'match' # match(成交資訊)、commission(委託資訊)、updn5(上下五檔資訊) Prod = 'TXFJ9' # 商品代碼(GOrder內需先訂閱該商品) lastTime = None # 存放上一筆資料的時間 Close = [] # 存放每分鐘的收盤價 MA_List = [] # 存放每分鐘的MA值 MA = None # 定義MA值 N = 5 # 定義MA期數 # 串接GOrder即時報價 GO = GOrder.GOQuote() for i in GO.Describe(Broker, Kind, Prod): time = i[0] # 時間 minute = time[14:16] # 分鐘 price = float(i[2]) # 價格 if time == lastTime: # 同一分鐘 Close[-1] = price # 不斷更新最近一根K棒的收盤價 else: # 不同分鐘 Close.append(price) # 新增一根K棒的收盤價 if len(Close) >= N: # 陣列裡的收盤價數量足夠就可以開始計算MA指標 MA = sum(Close[-N:]) / N # 期數為N期的MA指標 if time == lastTime: # 同一分鐘 MA_List[-1] = MA # 不斷更新最近一根K棒的MA值 else: # 不同分鐘 MA_List.append(MA) # 新增一根K棒的MA值
# Yuanta(元大證券)、Capital(群益證券)、Capital_Future(群益期貨)、Kgi(凱基證券)、Kgi_Future(凱基期貨)、Simulator(虛擬期貨) Broker = 'Masterlink_Future' PriceOffer = 'Simulator' # match(成交資訊)、commission(委託資訊)、updn5(上下五檔資訊) Kind = 'match' # 取即時報價的商品代碼(GOrder內需先訂閱該商品) Prod = 'TXFA0' # 取得當天日期 Date = datetime.datetime.now().strftime("%Y/%m/%d") # 定義報價指令的物件 GOQ = GOrder.GOQuote() # 定義下單指令的物件 GOC = GOrder.GOCommand() endTime = datetime.datetime.strptime('2020/1/3 16:33:10', '%Y/%m/%d %H:%M:%S') import tick2OHLC A = tick2OHLC.tick2OHLC() for row in GOQ.Describe(PriceOffer, Kind, Prod): time = datetime.datetime.strptime(row[0], '%Y/%m/%d %H:%M:%S.%f') price = float(row[2]) print(time, price) A.put(time, price) # if time >= endTime: # GOQ.EndDescribe()