前置工作:
請讀者需先閱讀完文章:五日線與十日線之策略、XQ之DDE策略觸發-以LINE Notify自動通知為例、Google試算表-以GoogleFinance為例
準備項目:
- Google(需登入)
前言
這篇Google試算表-以GoogleFinance為例,雖然可以透過Google 財經取得股票資訊,但是該資訊並非來自所有市場的即時資訊,延遲20分鐘之久。本文提供一種方式,可以取得最即時的資訊,不會延遲的問題,透過ImportXML與ImportHTML,可以抓到即時行情與歷史行情。本文以智原(3035)Yahoo股市為例製作即時行情,以鉅亨網-智原為例製作歷史行情之表單。
何謂ImportXML與ImportHTML
- ImportXML:
- 使用 IMPORTXML 函式,可以從 HTML 網頁中提取結構化的資料,例如 XML、HTML、CSV 和 RSS 等格式。
- 語法:IMPORTXML(網址, xpath_查詢, 語言代碼)。
- 網址:要檢查的網頁所在網址,包括通訊協定名稱(例如 http://)。網址的值必須放置在引號內,或者是一個含有適當文字的儲存格。
- XPATH 查詢:用於定位網頁中的特定元素。
- 語言代碼:可選參數,用於指定網頁的語言。
- 範例:假設你想從「Yahoo股市」抓取智原的股價資料,你可以使用以下公式:=IMPORTXML(“https://tw.stock.yahoo.com/quote/3035”, “//*[@id=’main-0-QuoteHeader-Proxy’]/div/div[2]/div[1]/div/span[1]”)
- 這返回智原的最新股價。
- ImportHTML:
- 使用 IMPORTHTML 函式,可以從 HTML 網頁中提取表格或清單中的資料。
- 語法:IMPORTHTML(網址, 查詢類型, 索引)。
- 網址:要檢查的網頁所在網址,包括通訊協定名稱(例如 http://)。網址的值必須放置在引號內,或者是一個含有適當文字的儲存格。
- 查詢類型:指定要提取的資料類型,可以是 “table” 或 “list”。
- 索引:可選參數,用於指定要提取的表格或清單的索引(從 0 開始)。
- 範例:假設你想從某個網頁中提取表格資料,你可以使用以下公式:=IMPORTHTML(“https://example.com”, “table”, 0)
- 這返回該網頁的第一個表格的內容。
A、利用現成Google試算表-範例檔案
準備項目:
開啟這個Google試算表-範例檔案,然後依序設定,
開啟此檔僅能讀取,需要登入自己Google帳號建立副本才能編輯。
設定1分重整,然後依據需求修改範本如B所示。
B、建立空白試算表並製作即時行情
第一列需自行手動輸入,本文以動作、股號、名稱、時間、成交價、均價、漲跌幅、成交量(張數)為例,讀者可自行增刪。
接著,於B2欄位手動輸入3035,如下圖所示:
至Yahoo股市搜尋3035,並點擊智原,如下圖所示:
C2欄位需要股票名稱,使其顯示的方式,步驟如下:
先於C2欄位輸入公式:=IMPORTXML(“網址”,”xpath_查詢”)
Yahoo股市中智原的網址反白並點擊右鍵複製,貼到公式中網址的部分,其文字取代。那因為先前在B2欄位時有手動輸入股號,為了方便日後可能會替換成其他股票,這邊筆者利用CONCATENATE函數整合Yahoo股市的網址前段與手動輸入股票代碼的B2欄位,日後若需替換其他股票,只需將B2欄位之股號替換即可,此時變成:=IMPORTXML(CONCATENATE(“https://tw.stock.yahoo.com/quote/”,B2),”xpath_查詢”)
回到Yahoo股市中智原之網頁,智原兩字反白並點擊右鍵檢查。
該藍色框框所代表的是反白區域,此時於藍色框框處點擊右鍵找到Copy中的Copy XPath後單擊。
然後回到Google試算表,將xpath_查詢之文字反白並按右鍵貼上,如下圖所示:
貼上後,原xpath為下圖所示:
需@id=內的雙引號改成單引號,才能夠成功傳回資料,如下圖所示:
若出現警告標示如下圖,請點擊允許存取。
此時便出現股票名稱傳回Google試算表了。
D2欄位之時間、E2欄位之成交價、F2欄位之均價、G2欄位之漲跌幅、H2欄位之成交量(張數),以此類推。
製作歷史行情
首先,手動輸入5日、10日、均價、均量以及股票代號,本文以A16輸入股票代號,B16輸入5日,B17輸入10日,F15輸入均價,I15輸入均量為例,其中股票代號可用公式:=B2抓取上方B2欄位已經輸入好的股票代碼,股票名稱可用公式:=C2抓取上方C2欄位已經抓取的股票名稱,若往後讀者需修改時,只需修改上方B2欄即可,下方的歷史行情會跟著B欄修改而改變。
接著,先於B18欄處輸入公式:=IMPORTHTML(“https://example.com”, “table”, 0),如下圖所示:
至鉅亨網-智原,網址反白並點擊右鍵複製,貼到網址的部分,https://example.com取代。那因為先前在B2欄位時有手動輸入股號,為了方便日後可能會替換成其他股票,這邊筆者利用CONCATENATE函數整合鉅亨網-智原的網址前段與手動輸入股票代碼的B2欄位,日後若需替換其他股票,只需B2欄位之股號替換即可。
ImportHTML的索引,尋找程式碼,輸入<table,恰為第1個,因此索引值輸入1。此時變成:=IMPORTHTML(CONCATENATE(“https://www.cnyes.com/twstock/ps_historyprice.aspx?code=”,B2),”table”,1),如下圖所示:
此時智原的歷史資料便可成功傳回,如下圖所示:
接著就要來計算5日均價、5日均量、10日均價、10日均量。
5日均價,公式為:=AVERAGE(F19:F23),如下圖所示:
5日均量,公式為:=AVERAGE(I19:I23),如下圖所示:
10日均價,公式為:=AVERAGE(F19:F28),如下圖所示:
10日均量,公式為:=AVERAGE(I19:I28),如下圖所示:
製作A欄動作
做完歷史資料後,就可以回來製作A欄的動作了!
A欄之判別動作的買賣訊號,根據文章五日線與十日線之策略和XQ之DDE策略觸發-以LINE Notify自動通知為例,其公式為:=IF(F16<F17,”Sell”,IF(H2>I16,”Buy”,”NO”)),當5日均價<10日均價時顯示Sell(賣),當5日均價>10日均價且總量>5日均量時顯示Buy(買),當5日均價>10日均價但總量≤5日均量時顯示NO(不操作)。
休息一下走的更遠
如上為本研究大數據分析,歡迎各先進來信批評指教。
最後希望本站對您能所幫助,您的來訪、分享、支持、打賞是本站成長進步最大的動力。
溫馨提示:本研究僅為教學研究,藉此成長進步,增長知識常識,請勿據此操作。