# 簡易程式運行

# Python 範例

# 第一步:下載安裝登入 OpenD

請參考 這裏,完成 OpenD 的下載、安裝和登入。

# 第二步:下載 Python API

  • 方式一:在 cmd 中直接使用 pip 安裝。

    • 初次安裝:Windows 系統 $ pip install futu-api,Linux/Mac系統 $ pip3 install futu-api
    • 二次升級:Windows 系統 $ pip install futu-api --upgrade,Linux/Mac系統 $ pip3 install futu-api --upgrade
  • 方式二:點擊下載最新版本的 Python API 安裝包。

# 第三步:建立新專案

打開 PyCharm,在 Welcome to PyCharm 視窗中,點擊 New Project。如果你已經建立了一個專案,可以選擇打開該專案。

demo-newproject

# 第四步:建立新檔案

在該專案下,建立新 Python 檔案,並把下面的範例程式碼複製到檔案裏。
範例程式碼功能包括查看行情快照、模擬交易下單。

from futu import *

quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)  # 建立行情對象
print(quote_ctx.get_market_snapshot('HK.00700'))  # 獲取港股 HK.00700 的快照數據
quote_ctx.close() # 關閉對象,防止連接條數用盡


trd_ctx = OpenSecTradeContext(host='127.0.0.1', port=11111)  # 建立交易對象
print(trd_ctx.place_order(price=500.0, qty=100, code="HK.00700", trd_side=TrdSide.BUY, trd_env=TrdEnv.SIMULATE))  # 模擬交易,下單(如果是真實環境交易,在此之前需要先解鎖交易密碼)

trd_ctx.close()  # 關閉對象,防止連接條數用盡
1
2
3
4
5
6
7
8
9
10
11

# 第五步:運行檔案

右鍵點擊運行,可以看到運行成功的返回資訊如下:

2020-11-05 17:09:29,705 [open_context_base.py] _socket_reconnect_and_wait_ready:255: Start connecting: host=127.0.0.1; port=11111;
2020-11-05 17:09:29,705 [open_context_base.py] on_connected:344: Connected : conn_id=1; 
2020-11-05 17:09:29,706 [open_context_base.py] _handle_init_connect:445: InitConnect ok: conn_id=1; info={'server_version': 218, 'login_user_id': 7157878, 'conn_id': 6730043337026687703, 'conn_key': '3F17CF3EEF912C92', 'conn_iv': 'C119DDDD6314F18A', 'keep_alive_interval': 10, 'is_encrypt': False};
(0,        code          update_time  last_price  open_price  high_price  ...  after_high_price  after_low_price  after_change_val  after_change_rate  after_amplitude
0  HK.00700  2020-11-05 16:08:06       625.0       610.0       625.0  ...               N/A              N/A               N/A                N/A              N/A

[1 rows x 132 columns])
2020-11-05 17:09:29,739 [open_context_base.py] _socket_reconnect_and_wait_ready:255: Start connecting: host=127.0.0.1; port=11111;
2020-11-05 17:09:29,739 [network_manager.py] work:366: Close: conn_id=1
2020-11-05 17:09:29,739 [open_context_base.py] on_connected:344: Connected : conn_id=2; 
2020-11-05 17:09:29,740 [open_context_base.py] _handle_init_connect:445: InitConnect ok: conn_id=2; info={'server_version': 218, 'login_user_id': 7157878, 'conn_id': 6730043337169705045, 'conn_key': 'A624CF3EEF91703C', 'conn_iv': 'BF1FF3806414617B', 'keep_alive_interval': 10, 'is_encrypt': False};
(0,        code stock_name trd_side order_type order_status  ... dealt_avg_price  last_err_msg  remark time_in_force fill_outside_rth
0  HK.00700       騰訊控股      BUY     NORMAL   SUBMITTING  ...             0.0                                 DAY              N/A

[1 rows x 16 columns])
2020-11-05 17:09:32,843 [network_manager.py] work:366: Close: conn_id=2
(0,        code stock_name trd_side      order_type order_status  ... dealt_avg_price  last_err_msg  remark time_in_force fill_outside_rth
0  HK.00700       騰訊控股      BUY  ABSOLUTE_LIMIT    SUBMITTED  ...             0.0                                 DAY              N/A

[1 rows x 16 columns])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20