(demo)交易所App開發功能|交易所繫統開發原始碼

丸子qy發表於2023-05-15

  

  區塊鏈是一種技術。簡單、通俗來說,區塊鏈技術就是人人記賬,或者分散式賬本。在網際網路時代,每個系統背後都有資料庫,這個資料庫可以看作是一個大的賬本,以往都是維護系統的人負責管理資料庫,記錄使用者的行為,也就是記賬,而區塊鏈“去中心化”,它讓系統中的每一個成員都參與其中,不僅人人記賬,而且透過連結,人人都能擁有完整的賬本  

系統開發對接唯:wwqqyy420

  

  

  行情資料簡介

  

  行情資料是交易過程中最基本、最重要的部分。一次完整的交易通常分為三個步驟:接收行情、分析行情(策略部分)、發出買賣指令併成交(演算法交易部分)。對於高頻交易和低延遲交易者,行情資料的精度和細度尤其重要。精度是指資料的準確性和能在多大程度上反映市場的真實情況,細度是指行情的推送頻率。

  

  行情資料分為兩部分:交易行情和訂單委託行情。交易行情就是交易資料,包括最新成交價、成交量、成交額、最高價、等欄位資訊;訂單委託行情就是買賣報價和委託量,根據委託價格的不同,可以分為一檔、五檔、十檔等行情;通常把交易行情和訂單委託行情結合在一起,形成TAQ(Trades and Quotes)行情。

  

  tick行情也稱逐筆行情,是完整記錄了市場所有資訊的資料,即會記錄市場每一個event,如發生一次交易或者增加一個新訂單,是最精細和最完整的行情資料。

  

  快照(snapshot)行情是對tick行情資料在時間維度上進行一定頻率切片後的統計資料,是一個時間截面上的統計資料。tick資料更為準確,快照行情根據時間頻率的不同準確度也不同。

  

  實現mysql儲存

  

  import pymysql as mysql

  

  import pandas as pd

  

  from sqlalchemy import create_engine

  

  from repoistory.base.repoistory import Repoistory

  

  import configEnv.config as conf

  

  class MysqlRepoistory(Repoistory):

  

  def getMysqlConn(self):

  

  return mysql.connect(

  

  host=conf.config.host,

  

  port=conf.config.port,

  

  user=conf.config.user,

  

  password=conf.config.password,

  

  database=conf.config.database,

  

  charset=conf.config.charset

  

  )

  

  def createMysqlEngine(self):

  

  return create_engine(conf.config.mysql_engine)

  

  def handle_cursor(self,func,args,*kwargs):

  

  connect=self.getMysqlConn()

  

  try:

  

  cursor_obj=connect.cursor()

  

  func(connect,cursor_obj,args,*kwargs)

  

  cursor_obj.close()

  

  finally:

  

  connect.close()

  

  def saveData(self,data:pd.DataFrame,repoistoryParam:dict):

  

  eng=self.createMysqlEngine()

  

  tableName=repoistoryParam.get('table_name')

  

  data.to_sql(name=tableName,con=eng,if_exists="append",index=False)

  

  def readData(self,repoistoryParam:dict)->pd.DataFrame:

  

  eng=self.createMysqlEngine()

  

  query_sql=repoistoryParam.get('query_sql')

  

  #index_col=repoistoryParam.get('index_col')

  

  return pd.read_sql(sql=query_sql,con=eng)

  

  if __name__=='__main__':

  

  mysql=MysqlRepoistory()

  

  repoistoryParam={"query_sql":"select*from trade_daily where stock_code='000002'"}

  

  db=mysql.readData(repoistoryParam)

  

  print(db)

  

  2.使用mysql儲存例項,將來換別的儲存方式只需新的儲存物件,然後替換掉

  

  程式碼如下(示例):

  

  if __name__=='__main__':

  

  mysql=MysqlRepoistory()

  

  repoistoryParam={"query_sql":"select*from trade_daily where stock_code='000002'"}

  

  db=mysql.readData(repoistoryParam)

  

  print(db)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70029396/viewspace-2951992/,如需轉載,請註明出處,否則將追究法律責任。

相關文章