掃雷網站位址:
https://norn-minehunter.zmcx16.moe/
Github:
https://github.com/zmcx16/stock-minehunter
Illustrator:
超愛喝榛奶
Demo:
利用下班以及放假時間, 前端+後端大概花了兩個禮拜完成, 不過做完後還要等我哥把圖生出來, 4天連假除了打機戰T之外就想說來多實作幾個名人的策略, 主要是參考以下這兩個網站:
至於個股基本資料以及財報的取得, 目前主要是以下面兩個網站為主:
Finviz是個十分強大的選股網站, 除此之外他也提供查詢個股基本資料(ROE, EPS, P/E, Dividend...etc), 不過提供的資料都只是單一數據, 並沒有完整的季財報以及年財報, 完整財報部分我則是從Yahoo財經取得, 不過Yahoo財經只提供近四年的財報給免費用戶, 雖然有點少不過也算堪用了, 不如說也只能妥協..., 如果有人知道有哪個地方可以方便取得更久遠的財報的話希望可以分享一下 > <
網站架構方面, 當初設計這個網站時就是定位成單一功能的小網站, 並且打算把所有策略相關的設定跟掃描等功能都做到後端, 好處是這樣以後新增策略也只要改後端, 不用再改前端的code; 缺點就是排版很沒彈性, 會稍稍不美觀, 不過因為這網站是以功能導向為主, 而且我就是PM兼RD兼QA, 所以就這麼決定我說了算了WWW
另外來說個開發過程遇到的趣事(?), 在網站完成只差等我哥把圖畫完的時間, 我想說來做個performance test看看, 就一口氣丟了一堆策略給server看能不能正常work, 結果server吐回502 bad gateway回來...。 然後看了下自己的log沒異常, 看IIS log也是502沒錯, 而且我的unit test還有實際環境送少量策略都是能正常work的, 就覺得應該是Azure or IIS設定的問題, 之後開始Google找原因, 雖然找到了不少可能的原因, 可是怎麼試都沒有用, 就卡關卡了超久...。
後來卡關到受不了, 死馬當活馬醫開Windows event log來看, 結果發現dotnet.exe crash了..., 這就很神奇了, 因為我的web application有用一層try catch包起來, 要是跳exception應該會被捕捉到並寫log才對啊。 之後再研究一下, 發現crash的點是在我開thread去跟Yahoo Finance要財報的地方, 如果我1分鐘內打超過100個request, Yahoo Finance會直接回404給我, 然後我打request要資料的部分為了省時間, 是同時開好幾個thread去執行的, 如果crash的地方是在其他thread, 那外層的try-catch就捕捉不到, 所以才造成明明跳exception但是log卻沒有任何資訊的問題, 我一開始就往迷宮錯的地方GO了ㄚㄚ!!! 難怪怎麼找都找不到原因...。
找到問題解決方法就簡單了, 我直接在thread function用一個try catch包起來, 要是跳exception我就自定義錯誤傳給外面的程式就好, 一個簡單的問題就因為方向錯誤搞到早上五點半, 這時候也只能笑了(遠望 + 眼神死)
最後來個閒話家常, 網站的形象圖一樣是交給我哥畫, 至於小妖精的Loading畫面則是拿我大學時代修遊戲製作的課程時請他幫忙畫的NPC動作圖, 直接挖出來做成loading小動畫, 畢竟要是使用者輸入太多個股以及策略的話就得等待比較長的時間, 就決定用現有素材來自製個小loading動畫了, 結果做出來總有種滿滿的復古感WWW
如果有人喜歡這網站並且想分享自己的策略的話, 歡迎留言 or 寄信聯絡我, 我有空的話會實作並放到網站上給大家使用 :)
沒有留言:
張貼留言