找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 300|回復: 0

Shioaji 入門教學

[複製鏈接]

301

主題

10

回帖

1312

積分

金牌會員

積分
1312
發表於 2024-6-18 14:38:28 | 顯示全部樓層 |閱讀模式
本帖最後由 issac 於 2024-6-18 14:45 編輯

使用環境:python 3.10.10

永豐期貨開戶教學

1.更新到最新
  1. pip install update
複製代碼

  1. pip install upgrade
複製代碼


2.服務條款線上簽署


3.Token登入金鑰申請


4.一定要先引用套件
  1. import shioaji as sj
複製代碼


5.使用套件,決定是否要開啟模擬環境(意思是可以獲取即時資料,但是你下虛擬單)
  1. api = sj.Shioaji(simulation=True)
複製代碼


6.必備的5樣東西
  1. api_key="透過申請Token獲得"
  2. secret_key="透過申請Token獲得"
  3. ca_path="Sinopac.pfx"  #憑證位置,我放在跟程式同一個目錄下所以直接這樣寫,這個憑證我是用電腦版eleader登入後下載的,下載後會再某一個資料夾下,把檔案複製過來或者指向目錄位置就可以了
  4. ca_passwd="身分證號" #憑證密碼,預設是身分證號,看你下載時有沒有改
  5. person_id="身分證號"
複製代碼


7.登入function
  1. api.login(
  2.     api_key=api_key,
  3.     secret_key=secret_key,
  4. )
複製代碼




8.訂閱標的-會一直自動回傳tick資料(要配合第9項)
  1. api.quote.subscribe(
  2.     api.Contracts.Futures.MXF.MXFR1,
  3.     quote_type = sj.constant.QuoteType.Tick,
  4.     version = sj.constant.QuoteVersion.v1,
  5. )
複製代碼
  1. api.quote.subscribe(api.Contracts.Futures.MXF.MXFR1,quote_type = sj.constant.QuoteType.Tick,version = sj.constant.QuoteVersion.v1)
複製代碼


9.改寫quote_callback功能,可以在這個地方加上要用來判斷的附加程式,
  1. def quote_callback(exchange:Exchange, tick:TickFOPv1):
  2.     global 價格
  3.     print(f"Exchange: {exchange}, Tick: {tick.close}") #這個函式會回傳 {exchange},  {tick.close}兩個值,我是只有拿tick.close來用
  4.     價格=tick.close
  5.     clear_output(wait=True) #我自己加的,因為用notebook會一直洗出tick資料,清空用
複製代碼


10.獲得Kbar資料-但是都是1分K(已經轉DataFrame)
  1. kbars = api.kbars(
  2.     contract=api.Contracts.Stocks["2330"],
  3.     start="2023-01-15",
  4.     end="2023-01-16",
  5. )
  6. kbars
複製代碼


11.把1分K轉成日資料,延續上面的程式碼,就可以轉成日K來看,只是會包含假日欄位
  1. df.set_index('ts',inplace=True)
  2. daily_df = df.resample('D').agg({
  3.     'Open':'first',
  4.     'High':'max',
  5.     'Low':'min',
  6.     'Close':'last',
  7.     'Volume':'sum',
  8.     'Amount':'sum',
  9. })
  10. daily_df
複製代碼




12.商品檔代號
  1. api.Contracts.Indexs.TSE["001"] #指數不可下單

  2. api.Contracts.Stocks["2330"] #股票
  3. api.Contracts.Futures["TXFA3"] #期貨
  4. api.Contracts.Options["TXO18000R3"] #選擇權

  5. api.Contracts.Futures.MXF.MXFR1 #小台指近
  6. api.Contracts.Futures.TXF.TXFR1 #大台指近
複製代碼



差不多到這邊,應該就可以寫出自己的策略了






777
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|沈長緣

GMT+8, 2024-11-1 09:31 , Processed in 0.068351 second(s), 19 queries .

Powered by shen - ♪♫*•♪!

© 2023- shen! ♪♫*•♪!.

快速回復 返回頂部 返回列表