量化合約系統開發(詳解開發)丨合約量化系統開發(說明及案例)

MrsFu123發表於2022-05-30

量化交易原始碼分析二:


 #將提取的資料處理成表格資料


  df_words=df['words'][10:]


  date=[]


  price=[]


  buy_ratio_tj=[]


  buy_ratio_trader=[]


  sell_ratio_tj=[]


  sell_ratio_trader=[]


  for i in range(0,len(df_words.tolist()),6):


  date.append(df_words.tolist()<i>)


  price.append(df_words.tolist()[i+1])


  buy_ratio_tj.append(df_words.tolist()[i+2])


  buy_ratio_trader.append(df_words.tolist()[i+3])


  sell_ratio_tj.append(df_words.tolist()[i+4])


  sell_ratio_trader.append(df_words.tolist()[i+5])


  now_df=pd.DataFrame({'時間':date,'結算價格':price,'買入投機比例':buy_ratio_tj,'買入交易比例':buy_ratio_trader,


  '賣出投資比例':sell_ratio_tj,'賣出交易比例':sell_ratio_trader})


  print(now_df)


  now_df.to_excel(r'C:UsersAdministratorDesktop期貨交易結算套保.xlsx')


  pyttsx3.speak('期貨結算套保資料提取成功')


  #識別升貼書資料


  def up_down_data():


  '''


  利用百度進行期貨升貼水資料識別,處理


  '''


  #點選合約資料


  pyautogui.click(x=969,y=51)


  #資訊截圖


  time.sleep(1)


  #點選升貼書


  pyautogui.click(x=1053,y=149)


  #截圖


  pyautogui.screenshot(r'C:UsersAdministratorDesktop期貨交易升貼水.png',region=(553,771,1672-553,954-771))


  options={'language':'chn_eng'}


  aipcor=AipOcr(app_id,api_key,secret_key)


  image=open(r'C:UsersAdministratorDesktop期貨交易升貼水.png','rb')


  image1=image.read()


  text_list=aipcor.general(image1,options=options)


  df1=pd.json_normalize(text_list['words_result'])


  df1.to_excel(r'C:UsersAdministratorDesktop期貨交易升貼水.xlsx')


  #將識別的資料處理excel資料


  df=pd.read_excel(r'C:UsersAdministratorDesktop期貨交易升貼水.xlsx')


  df_words=df['words']


  data=[]


  #現貨價格


  new_price=[]


  #合約程式碼


  code=[]


  #合約價格


  price=[]


  new_cha=[]


  new_ratio=[]


  #主力程式碼


  stock=[]


  main_price=[]


  mian_new_cha=[]


  mian_new_ratio=[]


  for i in range(0,len(df_words.tolist()),10):


  data.append(df_words.tolist()<i>)


  new_price.append(df_words.tolist()[i+1])


  code.append(df_words.tolist()[i+2])


  price.append(df_words.tolist()[i+3])


  new_cha.append(df_words.tolist()[i+4])


  new_ratio.append(df_words.tolist()[i+5])


  stock.append(df_words.tolist()[i+6])


  main_price.append(df_words.tolist()[i+7])


  mian_new_cha.append(df_words.tolist()[i+8])


  mian_new_ratio.append(df_words.tolist()[i+9])


  now_df=pd.DataFrame({'時間':data,'現貨價格':new_price,'合約程式碼':code,'合約價格':price,'期貨現差':new_cha,


  '期貨現差比例':new_ratio,'主力合約程式碼':stock,'主力合約價格':main_price,'主力合約現差':mian_new_cha,'主力合約現差比例':mian_new_ratio})


  print(now_df)


  now_df.to_excel(r'C:UsersAdministratorDesktop期貨交易升貼水.xlsx')


  pyttsx3.speak('期貨升貼水資料處理成功')


  #實時期貨資料獲取,識別


  def real_account_data():


  '''


  利用百度對賬戶進行實時資料識別獲取


  '''


  #返回交易介面


  #return_trader()


  #點選交易資金


  pyautogui.click(x=732,y=520)


  time.sleep(1)


  #截圖分析


  pyautogui.screenshot(r'C:UsersAdministratorDesktop期貨交易實時期貨賬戶資料.png',region=(429,543,1092-429,895-543))


  options={'language':'chn_eng'}


  aipcor=AipOcr(app_id,api_key,secret_key)


  image=open(r'C:UsersAdministratorDesktop期貨交易實時期貨賬戶資料.png','rb')


  image1=image.read()


  text_list=aipcor.general(image1,options=options)


  df1=pd.json_normalize(text_list['words_result'])


  df1.to_excel(r'C:UsersAdministratorDesktop期貨交易實時期貨賬戶資料.xlsx')


  df=pd.read_excel(r'C:UsersAdministratorDesktop期貨交易實時期貨賬戶資料.xlsx')


  df_words=df['words']


  #列


  clo=[]


  #資料


  data=[]


  for i in range(0,len(df_words.tolist())):


  if i%2==0:


  clo.append(df_words.tolist()<i>)


  else:


  data.append(df_words.tolist()<i>)


  del clo[-1]


  new_df=pd.DataFrame(data[:20],clo)


  new_df.to_excel(r'C:UsersAdministratorDesktop期貨交易實時期貨賬戶資料.xlsx')


  #期貨鎖倉,進行反手操作,及賣出多頭,同時買進空頭


  def featurns_buy_lock(stock='ni2205',num='1'):


  '''


  看多鎖倉,期貨鎖倉,進行反手操作,及賣出多頭,同時買進空頭


  看跌同理


  stock='期貨程式碼'


  num=買入的手數


  '''


  #點選輸入


  pyttsx3.speak('期貨多頭開始鎖倉')


  pyautogui.click(x=320,y=649)


  #清楚資料


  pyttsx3.speak('開始清除')


  for i in range(6):


  pyautogui.press('backspace')


  pyttsx3.speak('清除完成')


  pyautogui.typewrite(stock,interval=0.1)


  pyttsx3.speak('開始輸入')


  pyautogui.press('enter')


  pyttsx3.speak('輸入完成')


  #輸入買入手數


  #開始清楚


  pyautogui.click(x=470,y=641)


  pyttsx3.speak('開始清除')


  for i in range(6):


  pyautogui.press('backspace')


  pyttsx3.speak('清除完成')


  pyttsx3.speak('開始輸入')


  pyautogui.typewrite(num,interval=0.1)


  pyautogui.press('enter')


  pyttsx3.speak('輸入完成')


  time.sleep(1)


  pyautogui.click(x=651,y=304)


  #點選鎖倉


  pyautogui.click(x=463,y=669)


  featurns_trader_stats()


  #賣出期貨多頭


  def featurns_buy_sell(stock='cu2205',num='1'):


  '''


  賣出期貨多頭


  stock='期貨程式碼'


  num=買入的手數


  '''


  #點選輸入


  pyttsx3.speak('開始平多')


  pyautogui.click(x=320,y=649)


  #清楚資料


  pyttsx3.speak('開始清除')


  for i in range(6):


  pyautogui.press('backspace')


  pyttsx3.speak('清楚完成')


  pyttsx3.speak('開始輸入')


  pyautogui.typewrite(stock,interval=0.1)


  pyautogui.press('enter')


  pyttsx3.speak('輸入完成')


  #輸入買入手數


  #開始清楚


  pyautogui.click(x=470,y=641)


  pyttsx3.speak('開始清除')


  for i in range(6):


  pyautogui.press('backspace')


  pyttsx3.speak('清除完成')


  pyautogui.typewrite(num,interval=0.1)


  pyttsx3.speak('開始輸入')


  pyautogui.press('enter')


  pyttsx3.speak('輸入完成')


  time.sleep(1)


  #點選平多


  pyautogui.click(x=598,y=723)


  featurns_trader_stats()


  #空頭交易


  def featurns_sell_buy_add_featuns(stock='ni2205',num='1'):


  '''


  期貨空頭增加多頭,及對沖


  stock='期貨程式碼'


  num=買入的手數


  '''


  #點選輸入


  pyttsx3.speak('期貨空頭開始加多建倉')


  pyautogui.click(x=320,y=649)


  #清楚資料


  pyttsx3.speak('開始清除')


  for i in range(6):


  pyautogui.press('backspace')


  pyttsx3.speak('清楚完成')


  pyttsx3.speak('開始輸入')


  pyautogui.typewrite(stock,interval=0.1)


  pyautogui.press('enter')


  pyttsx3.speak('輸入完成')


  #輸入買入手數


  #開始清楚


  pyautogui.click(x=470,y=641)


  pyttsx3.speak('開始清除')


  for i in range(6):


  pyautogui.press('backspace')


  pyttsx3.speak('清除完成')


  pyautogui.typewrite(num,interval=0.1)


  pyttsx3.speak('開始輸入')


  pyautogui.press('enter')


  pyttsx3.speak('輸入完成')


  time.sleep(1)


  #點選買入/加多


  pyautogui.click(x=325,y=729)


  featurns_trader_stats()


  #期貨空頭繼續加空


  def featurns_sell_add_sell_futurns(stock='ni2205',num='1'):


  '''


  期貨空頭加多


  stock='期貨程式碼'


  num=買入的手數


  '''


  #點選輸入


  pyttsx3.speak('期貨空頭開始加多')


  pyautogui.click(x=320,y=649)


  #清楚資料


  pyttsx3.speak('開始清除')


  for i in range(6):


  pyautogui.press('backspace')


  pyttsx3.speak('清除完成')


  pyautogui.typewrite(stock,interval=0.1)


  pyttsx3.speak('開始輸入')


  pyautogui.press('enter')


  pyttsx3.speak('輸入完成')


  #輸入買入手數


  #開始清楚


  pyautogui.click(x=470,y=641)


  pyttsx3.speak('開始清除')


  for i in range(6):


  pyautogui.press('backspace')


  pyttsx3.speak('清除完成')


  pyttsx3.speak('開始輸入')


  pyautogui.typewrite(num,interval=0.1)


  pyautogui.press('enter')


  pyttsx3.speak('輸入完成')


  time.sleep(1)


  pyautogui.click(x=651,y=304)


  #點選鎖倉


  pyautogui.click(x=463,y=669)


  featurns_trader_stats()


  #期貨空頭平空


  def featurns_sell_sell_featurns(stock='ni2205',num='1'):


  '''


  期貨空頭平空,賣出期貨空頭


  stock='期貨程式碼'


  num=買入的手數


  '''


  #點選輸入


  pyttsx3.speak('開始平空')


  pyautogui.click(x=320,y=649)


  #清楚資料


  pyttsx3.speak('開始清除')


  for i in range(6):


  pyautogui.press('backspace')


  pyttsx3.speak('清楚完成')


  pyttsx3.speak('開始輸入')


  pyautogui.typewrite(stock,interval=0.1)


  pyautogui.press('enter')


  pyttsx3.speak('輸入完成')


  #輸入買入手數


  #開始清楚


  pyautogui.click(x=470,y=641)


  pyttsx3.speak('開始清除')


  for i in range(6):


  pyautogui.press('backspace')


  pyttsx3.speak('清除完成')


  pyautogui.typewrite(num,interval=0.1)


  pyttsx3.speak('開始輸入')


  pyautogui.press('enter')


  pyttsx3.speak('輸入完成')


  time.sleep(1)


  #點選平多


  pyautogui.click(x=598,y=723)


  featurns_trader_stats()


  #期貨多頭和期貨多頭進行比例平倉


  def featurns_buy_and_sell_ratio(stock='ni2205',num='1',ratio='30'):


  '''


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

相關文章