这是第三十天!!!
到目前为止的范例程序码就在这个 repo
https://github.com/MoonAndEye/ITIronMan_2021/tree/main/D29/ITIronMan
到目前,这一份程序已经具备下面几项功能
如果要拿去上架,将 UI 改成美美的,就可以了。
接下来,我们对台股申购,进行功能的扩充,D7~D11
这次铁人赛,我们在 D7~D11 的文章,做出了台股申购的功能。
我们回顾一下依照当时拿到的公开资料,可以拿到的是 [抽签日期]、[证券名称]、[申购开始日]、[申购结束日]、[承销价(元)]、[实际承销价(元)]、[拨券日期(上市、上柜日期)]、[申购股数]、[中签率]。
如果想知道抽中,「大概」可以赚到多少,上面这些资讯是无法知道的,因为这些资讯少了 [收盘价]。如果能获得收盘价,那 ( [收盘价(拨券日)] - [承销价] ) * 张数 就可以预估这次申购,如果抽到,会不会赔钱。
证交所有个股的开、高、低、收,下载的页面如下。
https://www.twse.com.tw/zh/page/trading/exchange/STOCK_DAY.html
而每一档下载的位置,可以在「CSV 下载」的按钮中,看到。
https://www.twse.com.tw/en/exchangeReport/STOCK_DAY?response=csv&date=20210928&stockNo=2330
要更换的参数,就是 date=20210928 再输入 stockNo=2330,就可以得到 2330 这一档的当月的开高低收。
依照之前设计的 UI,我们可以这样设计发动 API (但不建议,原因後述)。
在 UITabelViewDelegate 中的 tableView(_:willDisplay:forRowAt:),发动 API。
UITableViewDelegate 的文件
https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614883-tableview
所以逻辑如下
1- 在 willDisplay 中,用 row 的 indexPath 去问 Model,这一个的 data model 是什麽,拿出股票代号。
2.a - 如果这个股票代号的资料,有存在记忆体或是 UserDefaults 中,那就直接显示在 cell 上,也把价差,价差百分比算出,显示在 cell 上。
2.b - 如果这个股票袋号没有之前的资料,那就用上面的网址,发动 URLRequest,去拿当月的 CSV 档
3- 将上述的 CSV 档离今天最近日期的 row 拿出
4- 将 row 的资料转成 data model,存入记忆体或 UserDefaults 中。
5- 将 data model 传回 ViewController,并将资料显示在 Cell 上。
但…下一篇会说明,为什麽不要这样做。
<<: Android Studio初学笔记-Day25-ExpandableListVIew(1)
>>: Day25 来人上菜! 给我来点Cookie and Session
设计大纲 设计CTA的用意一方面是让结尾不会来得太突然,另一方面是想在网页的最後再来一个「Call ...
阵列 阵列是一群具有相同名称或资料型态的变数集合。 由於整个阵列中的变数均具有相同的名称,因此若要存...
无论你是安卓系统还是苹果系统,将照片传到笔电只需跟着下面这四招。保证有一招可以帮你解决问题,简单又方...
reset 回推 使用Git的一大好处就是,当我的程序在改动的过程中发生了难以修复的错误,我们可以透...
前面几天我们介绍了如何用 .NET 从零开始实作一个简单的 API 专案,不过截至目前为止,我们的 ...