iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0

REF

需求分析及調查

  • 昨天研究了使用 Plotly 畫圖的話,主要是透過 Python 執行程式碼後,產出一個固定的圖。 如果有新的行情進來後,就要重畫一次。 對於一秒鐘可能會有上百筆資料的狀況來說,似乎不太合用。
  • 所以我試圖去看有沒有可以即時產出技術圖表的工具。
  • 另外還需要思考一個問題:「用 Fugle WebSocket 去收聽資料的話,針對 Developer 的權限,只能有一條 WebSocket。」
  • 意味如果我寫好一段程式碼,要去拿行情,究竟是要從 Server 去建立 Socket 連線?
  • 還是終端裝置(使用者瀏覽器)建立連線?
  • 這似乎沒得選唷! 肯定是要從 Server 收的啊!! 那些交易的行情,一整天下來,我希望他們都被記錄起來,等我有空再來看和整理,所以不可能把他們都收到我的手機或電腦裡。

行情要從 Server 收。
圖,也就只能從我的 Server 上執行的 Redis 取得資訊後再來畫。

實作

  1. 在開發裝置上先安裝 pandas 和 pandas_ta
❯ pip install pandas_ta
Collecting pandas_ta
  Downloading pandas_ta-0.3.14b.tar.gz (115 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 115.1/115.1 kB 1.6 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting pandas (from pandas_ta)
  Downloading pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl.metadata (89 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.9/89.9 kB 2.9 MB/s eta 0:00:00
Collecting numpy>=1.26.0 (from pandas->pandas_ta)
  Downloading numpy-2.1.1-cp312-cp312-macosx_14_0_x86_64.whl.metadata (60 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.9/60.9 kB 2.1 MB/s eta 0:00:00
Requirement already satisfied: python-dateutil>=2.8.2 in /Users/nipapa/.pyenv/versions/3.12.3/lib/python3.12/site-packages (from pandas->pandas_ta) (2.9.0.post0)
Collecting pytz>=2020.1 (from pandas->pandas_ta)
  Downloading pytz-2024.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting tzdata>=2022.7 (from pandas->pandas_ta)
  Downloading tzdata-2024.2-py2.py3-none-any.whl.metadata (1.4 kB)
Requirement already satisfied: six>=1.5 in /Users/nipapa/.pyenv/versions/3.12.3/lib/python3.12/site-packages (from python-dateutil>=2.8.2->pandas->pandas_ta) (1.16.0)
Downloading pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl (12.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.5/12.5 MB 25.3 MB/s eta 0:00:00
Downloading numpy-2.1.1-cp312-cp312-macosx_14_0_x86_64.whl (6.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.6/6.6 MB 21.9 MB/s eta 0:00:00
Downloading pytz-2024.2-py2.py3-none-any.whl (508 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 508.0/508.0 kB 13.7 MB/s eta 0:00:00
Downloading tzdata-2024.2-py2.py3-none-any.whl (346 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 346.6/346.6 kB 11.3 MB/s eta 0:00:00
Building wheels for collected packages: pandas_ta
  Building wheel for pandas_ta (pyproject.toml) ... done
  Created wheel for pandas_ta: filename=pandas_ta-0.3.14b0-py3-none-any.whl size=218909 sha256=32738fb0f43e724300610cced89d9f7c1e264b63518f5e302d07e9b71165e385
  Stored in directory: /Users/nipapa/Library/Caches/pip/wheels/fd/ed/18/2a12fd1b7906c63efca6accb351929f2c7f6bbc674e1c0ba5d
Successfully built pandas_ta
Installing collected packages: pytz, tzdata, numpy, pandas, pandas_ta

Successfully installed numpy-2.1.1 pandas-2.2.3 pandas_ta-0.3.14b0 pytz-2024.2 tzdata-2024.2
  1. 我們先前在開發機(MacOS)上開發,後來裝了 Linux 主機 (Ubuntu Server),現在有兩個環境。
  2. 因為主機只有我自己在用,所以我就直接 scp -i 主機金鑰.pem -r <開發目錄> ubuntu@遠端IP:/遠端目錄路徑 扔上去了。
  3. 然後程式碼會有三份,另一份是放在 GitHub 上的開源原始碼。 管理上,我的一些金鑰和憑證是不會進到 Git 版控的。
  4. 上述的手法,雖然簡單俐落,但是沒辦法處理一件事情,那便是套件。 套件的安裝,要各自裝,還無法進到版控裡面。
  5. 所以在開發機上裝好套件,要再透過 pipenv install 進行一次 Pipenv 套件清單的更新。

上一篇
【Day 20】 準備儀表板 / Deploy Django on Ubuntu server
下一篇
【Day 22】 四巫日 (Quadruple Witching Day)
系列文
從一萬元開始交易:收割韭菜三十天,量化交易工具製作31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言