三十分鐘輕鬆自製即時股票串流報價

文章推薦指數: 80 %
投票人數:10人

我經常在網上的討論區看見一些股民查詢那裡有免費即時股票串流報價, 有一些答覆更建議 ... 其實, 製作即時股票串流報價是十分容易及簡單的, 不費分毫, 不需要任何軟件, ... 股票分析軟件及工具 29 三十分鐘輕鬆自製即時股票串流報價 我經常在網上的討論區看見一些股民查詢那裡有免費即時股票串流報價,有一些答覆更建議可以不斷Refresh瀏覽器。

據我了解,很多小投資者真的不斷用滑鼠Refresh瀏覽器以達到即時報價的效果。

這樣不單縮短電腦、顯示器及滑鼠壽命,最重要是傷神及嚴重損害眼睛,從而傷害健康。

其實,製作即時股票串流報價是十分容易及簡單的,不費分毫,不需要任何軟件,只要使用視窗(Windows)內的記事本(NotePad)或其他免費的文字編寫器TextEditor編寫一些十分簡單的JavaScript便可以了,在三十分鐘內輕鬆的完成。

自己製作即時股票串流報價還有一個最大好處,就是可以按喜好隨意設計及編排畫面,最重要的是可以按需要隨意加入一些功能,例如:到價提示、同時監察多個所需股票,等等…..。

一些買賣活躍的股民會使用證券行或銀行的即時股票串流報價服務, 一般的平均月費大約為港幣三百多塊。

對於經濟比較富裕的股民,這當然不是問題。

但是,大部份的股票散户都是一些小投資者, 投資金額不多,而且買賣次數不多,使用這些即時股票串流報價並不划算,以下是一簡單例子。

假設某證券行的即時股票串流報價月費是港幣350.00,一年的費用便是港幣4,200.00。

如果你的投資金額是港幣50,000.00,那麼,股票串流報價費用便佔了投資金額的9%了;假設那年是賺錢,單是股票串流報價費用便佔去了利率的9%,如果連同手續費,你每年的投資回報必須要超過12%,否則實際上是虧本。

我今天就簡略的介紹製作的過程。

第一步:準備執行串流報價程式平台 製作完成後的串流報價程式需要一個平台來執行的,一般有兩個方法,都是十分簡單及容易: 在自己的電腦中執行 在網頁寄存戶口(WebHostingAccount)執行 現在就續一介紹這兩個方法。

i)在自己的電腦中執行串流報價程式 要在自己的電腦中執行串流報價程式,便需要將電腦變成一個簡單的網存伺服器(WebServer)。

不用擔心,不會影響電腦任何功能,也不會妨礙電腦工作。

要將電腦變成一個簡單的伺服器,只要安裝網存伺服器程式。

安裝十分簡單,一般只需二分鐘。

互聯網上有很多免費的網存伺服器程式,最容易安裝及使用的應該是XAMPP。

以下網站有安裝XAMPP的詳細視像教材(VideoTutorials): 如何在電腦設立網存伺服器視像教材 只要參考前三個視像教材便可以了: InstallXAMPPServeronLocalComputer(在電腦安裝XAMPP程式) CheckStatusofXAMPPServer(檢查XAMPP伺服器的狀態) WebDocumentRootofXAMPPServer(存放文件的根目錄) ii)在網頁寄存戶口執行串流報價程式 如果你害怕安裝程式,又或者不想在電腦安裝額外程式,這方法是最簡單的。

只需將串流報價程式上載到網頁寄存戶口,便可以立即使得了。

這方法還有一個好處,就是可以在任何地方的上網電腦使用,及可以在智能手機上使用。

網頁寄存十分便宜,很多信譽良好的網頁寄存公司,年費都是在港幣一百元以下。

第二步: 編寫串流報價程式 串流報價程式其實十分簡單,只要使用記事本(NotePad)編寫一些十分簡短及簡單的JavaScript便可以了。

今天只討論程式的結構,日後有機會才詳細的討論如何編寫程式。

串流報價程式如何工作及結構: i)命令程式每x秒瀏覽某股票即時報價網站。

ii)接著程式將整個網頁內容找回來,然後篩選所需要的數據。

iii)最後程式只更新串流報價畫面上變動的數據欄,無需Refresh整個畫面。

所以使用者只看到串流報價畫面上一些變動數據的跳動轉變。

下圗解釋整個串流報價程式的工作程序: 以下視頻簡單介紹完成後的即時股票串流報價程式: 其實程式的結構十分簡單,而且十分簡短,日後有機會才詳細討論程式的內容。

Nextstory自己製作免費即時股票串流報價(二) Previousstory新股(IPO)招股時間表 29Responses Comments29 Pingbacks0 stanleysays: May15,2014at3:56pm 你好 請問怎樣編寫程式?? 我已照著做了XAMPP了 懇請賜教 Stanley Reply Alexsays: May20,2014at1:16pm HiStanley, 最近忙於幾個教育動畫的工作,遲了回覆。

其實程式十分簡單,稍後有時間和大家分享。

Reply Trumansays: July20,2014at5:14am 你好Alax,我看到你的文章介紹自製即時股票串流報價,我在自製過程中出現困難,請問你是如何把網頁數據攝取的?是攝取PHP還是HTMLSource然後進行篩選?還是使用jQuery的get()Method?謝謝 Reply Alexsays: July20,2014at1:03pm HiTruman, 我是用getJSON()method的,即是用AJAXHTTPGETrequest抽取JSONdata,如下: //webExtract.php就是用來從網站抽取數據 //$stockNumber是輸入的股票號碼 $.getJSON(‘webExtract.php’,{id:‘‘},function(data){ …………………………………… …….處理從網站抽取回來的數據……….. …………………………………… } //網頁每幾秒自動更新數據欄,無需Refresh整個畫面。

其實以上已經是整個串流報價程式的全部概念。

Reply Trumansays: July20,2014at5:37am 還有你是用哪method把數據加到頁面中? 我試過用.prepend不過之前的數據沒有被覆蓋,而是在舊數據之後加了新數據 Reply Alexsays: July20,2014at1:14pm HiTruman, 請參考對上的回覆。

從網站抽取回來的一串數據經處理後便可隨意顯示在網頁當中。

Reply Trumansays: July24,2014at6:41am HiAlax, 感謝你的回覆,小弟只在Yahoo同Sina找到json數據表,不過Y記數據延遲15分鐘,所以用了Sina的 無論如何,我試過用getJSONmethod,不過無法攝取伺服器以外的檔案(即是absoluteurl都不行), 附上一段code ...... functiongetData(){ varurl="http://finance.sina.com.hk/cgi-bin/api/stock.cgi?action=stock"; varsymbol=$("#symbol").val(); $.getJSON(url,'s='+symbol) ...... 會是伺服器不支援getJSON嗎?還是一些原因? Reply Alexsays: July24,2014at2:00pm HiTruman, 我的方法比你的簡單和直接很多。

我只是將即時報價的網頁抓回來,將所需要的資料轉成JSON形式的數據而已。

Reply Trumansays: July24,2014at6:46am 上面code打錯,更正: ...... functiongetData(){ varurl="http://finance.sina.com.hk/cgi-bin/api/stock.cgi"; varsymbol=$("#symbol").val(); $.getJSON(url,'?action=stock?s='+symbol) ...... Reply Alexsays: July24,2014at2:03pm HiTruman, 已於上貼子回覆。

如果你在Yahoo同Sina找到json數據表,理論上應該更方便快捷完成。

請問Sina同Sinajson數據表的URLs是什麼? Reply Trumansays: July24,2014at5:57pm http://finance.sina.com.hk/cgi-bin/api/stock.cgi?action=stock&s=%5Bsymbol%5D [symbol]打任何股票代號也可以 這是json數據表嗎?雖然是.cgifile,但內容格式跟json,xml無異 另外你提到將所需要的資料轉成JSON形式的數據,那是要用php和database嗎? ps.我是phpnewbie… Reply Alexsays: July25,2014at11:06am HiTruman, Sinaquery出來就是json數據表!我將資料整理好就比較容易明白了: { “Volume”:“2.91億”, “QuoteType”:“S”, “LotSize”:“1000”, “PrevClose”:“5.190”, “Last”:“5.200”, “Low”:“5.170”, “LastUpdate”:“2014-07-2516:01:06”, “ExpDate”:“”, “YearLow”:“4.330”, “YearHigh”:“5.660”, “ImpVol”:null, “Gearing”:null, “PctChange”:“0.193%”, “EntitlementRatio”:null, “TimeToMaturity”:null, “Currency”:“HKD”, “AskSpread”:“0.010”, “Suspension”:“N”, “ID”:“1398”, “Open”:“5.210”, “Premium”:null, “BullOrBear”:“”, “Turnover”:“15.14億”, “Moneyness”:null, “CallLevel”:null, “EffGearing”:null, “A-Share”:{ “Last”:“3.520”, “Currency”:“CNY”, “LastGenerationTime”:“2014-07-2515:44:52”, “Premium”:“17.355”, “Symbol”:“601398” }, “Desp”:“工商銀行”, “LastTradingDate”:“”, “CallOrPut”:“”, “WarrantType”:“”, “High”:“5.230”, “LinkID”:{}, “Yield”:“6.442”, “Change”:“0.010”, “MarketCap”:“4.51千億”, “BidSpread”:“0.010”, “ADR-Share”:{}, “lastmodify”:1406285757, “PERatio”:“5.417”, “OutstandingQty”:“0”, “Strike”:null, “Delta”:null } 你可以不必像我那麼將即時報價的網頁抓回來轉成JSON形式的數據。

可以直接使用Sinaquery出來的json數據!這樣程式處理的速度會快一些。

P.S.將所需要的資料轉成JSON形式的數據純粹用php就可以。

Reply Trumansays: July25,2014at8:53pm 但是我用過getJSONmethod無法抽取Sinaquery,我Google發現如果要做到跨域Ajax,要用JSONP,即在連結後加”?jsoncallback=”,但依然不行 Testing (function(){ varStock="http://finance.sina.com.hk/cgi-bin/api/stock.cgi?action=stock&s=1?jsoncallback=?"; $.getJSON(Stock) .done(function(data){ $.each(data,function(key,val){ $("#test").text(data); alert(data); }); }); })(); Reply Alexsays: July26,2014at9:11am HiTruman, 要用getJSONmethod從其他網站取json數據,其實我先前都說過。

方法是: 首先用PHP從其他網站取json數據,這樣json數據便在你伺服器的網站內。

接著才將json數據注入主網頁(即時股票串流報價網頁)。

這樣便解決了跨域的問題了。

Reply Trumansays: July28,2014at8:39am Hi 我用file_get_contents($url)去從其他網站取json數據 但還是卡在問題中,跨域不能解決 附上code,在網頁展示: http://truboy.altervista.org/stock/test/json.php Reply Alexsays: July29,2014at2:41pm HiTruman, 你附上的code已經works啦!請看我execute的情況: 錯誤應該是:



請為這篇文章評分?