使用InternetExplorer.Application物件與QueryTables的方法來抓取,上市股票的劵商分點交易資料,可參考如下的程式碼
我是Amin,喜好整合軟體之間的應用至數據分析,如Excel VBA、Python、C/C++、C#、JavaScript、Google Apps Script、Batch、MultiCharts的相互應用,歡迎各領域同好相互討論,創造人生精采的火花
最新消息
[公告2014/05/30] 如有需要將部落格中,任何一篇文章的程式碼使用在商業用途,請與我聯繫。
[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。
[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲。
[公告2019/01/08] 請注意:我再次重申,部落格文章的程式碼,是要提供各位參考與學習,一旦網頁改版請自行修改,別要求東要求西要我主動修改,你們用我寫東西賺錢了、交差了,請問有分我一杯羹嗎?既然賺錢沒分我,請問有什麼理由要求我修改,如果沒能力改,就花錢來找我上課。
[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。
[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲。
[公告2019/01/08] 請注意:我再次重申,部落格文章的程式碼,是要提供各位參考與學習,一旦網頁改版請自行修改,別要求東要求西要我主動修改,你們用我寫東西賺錢了、交差了,請問有分我一杯羹嗎?既然賺錢沒分我,請問有什麼理由要求我修改,如果沒能力改,就花錢來找我上課。
[公告2019/12/01] 若各位有 Excel VBA 案子開發需求,歡迎與我聯繫,可接案處理。
[公告2020/05/22] 頁面載入速度慢,起因為部分JS來源(alexgorbatchev.com)失效導致頁面載入變慢,目前已做調整,請多見諒。
[公告2020/05/22] 頁面載入速度慢,起因為部分JS來源(alexgorbatchev.com)失效導致頁面載入變慢,目前已做調整,請多見諒。
2012年10月17日 星期三
2012年10月14日 星期日
2012年10月13日 星期六
2012年10月9日 星期二
2012年10月8日 星期一
2012年10月5日 星期五
2012年9月29日 星期六
C/C++ 取得檔案大小
<方法一> 利用 ftell
<方法二>利用stat
<方法三>利用filelength 必須include< fcntl.h>
原型: long filelength(int fd)
<方法四> 利用Windows API GetFileSize & GetFileSizeEx
Large File Size 請使用 GetFileSizeEx函式。
<方法五>利用Windows API FindFirstFile()
/// For Windows:
資料來源參考:這裡
unsigned long GetFileLength1 (FILE * fileName) { unsigned long pos = ftell(fileName); unsigned long len = 0; fseek ( fileName, 0L, SEEK_END ); len = ftell ( fileName ); fseek ( fileName, pos, SEEK_SET ); return len; }
<方法二>利用stat
unsigned long GetFileLength2 (char * fileName) { struct stat buf; int i = stat ( fileName, &buf ); if (i !=0) MessageBox(NULL,"ERROR for STAT","ERROR",0); return buf.st_size; }
<方法三>利用filelength 必須include< fcntl.h>
原型: long filelength(int fd)
long GetFileLength3(char *fileName)
{
int fd = open(fileName,O_RDONLY | O_BINARY);
if(fd == -1 ) return -1;
long lsize = filelength(fd);
close(fd);
return lsize;
}
<方法四> 利用Windows API GetFileSize & GetFileSizeEx
Large File Size 請使用 GetFileSizeEx函式。
<方法五>利用Windows API FindFirstFile()
/// For Windows:
#include <windows.h> double dblFileSize(const char* fname) { if (!fname && !*fname) return 0.0; HANDLE h; WIN32_FIND_DATA info; if ((h=FindFirstFile(fname,&info)) != INVALID_HANDLE_VALUE) { FindClose(h); if ((info.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) == 0) // Is it a file? { union { struct { DWORD low, high; } lh; __int64 size; // MS large int extension } file; file.lh.low = info.nFileSizeLow; file.lh.high= info.nFileSizeHigh; return file.size; // will be casted to double } // It's a directory, not a file } return 0.0; // No such name. }方法 1~3都無法處理大檔案,要注意~
資料來源參考:這裡
識別檔案編碼UTF8與ANSI
開啟一個CSV的文字檔
以二進制的方式開起該文字檔
從上圖可以看出二進制檔的檔頭內容是EF BB BF,此即為UTF8編碼格式
若是在二進制檔的檔頭看不到EF BB BF,而是直接看到檔案的資料,則該檔即為ANSI編碼
其他的編碼原則如下表:
表格參考資料:維基
以二進制的方式開起該文字檔
從上圖可以看出二進制檔的檔頭內容是EF BB BF,此即為UTF8編碼格式
若是在二進制檔的檔頭看不到EF BB BF,而是直接看到檔案的資料,則該檔即為ANSI編碼
其他的編碼原則如下表:
編碼
|
表示 (十六進位)
|
表示 (十進位)
|
UTF-8
|
EF BB BF
|
239 187 191
|
UTF-16(大端序)
|
FE FF
|
254 255
|
UTF-16(小端序)
|
FF FE
|
255 254
|
UTF-32(大端序)
|
00 00 FE FF
|
0 0 254 255
|
UTF-32(小端序)
|
FF FE 00 00
|
255 254 0 0
|
UTF-7
|
2B
|
43 47 118和以下的一個位元組:[ 56 | 57 | 43 | 47 ]
|
en:UTF-1
|
F7 64
|
247 100 76
|
en:UTF-EBCDIC
|
DD 73 66 73
|
221 115 102 115
|
en:Standard Compression Scheme for Unicode
|
0E FE FF
|
14 254 255
|
en:BOCU-1
|
FB EE 28 及可能跟隨著FF
|
251 238 40 及可能跟隨著255
|
表格參考資料:維基
Batch教學--For使用
今天介紹使用Batch中的For指令
FOR /R – 列舉目前目錄下的全部子目錄名所有檔案
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
FOR /D %variable IN (set) DO command [command-parameters]
FOR /L %variable IN (start,step,end) DO command [command-parameters]
FOR /F ["options"] %variable in (file-set) do command [command-parameters]
FOR /F ["options"] %variable in ("string") do command [command-parameters]
FOR /F ["options"] %variable in ('command') do command [command-parameters]
file-set為一個或多個檔案名稱。/f 分析每個檔案的每一行,跳過空白行。"options" 關鍵字:
FOR /R – 列舉目前目錄下的全部子目錄名所有檔案
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
FOR /R %i IN (*) DO echo %iFOR /D – 列舉目前目錄下的子目錄名
FOR /D %variable IN (set) DO command [command-parameters]
FOR /D %i IN (*) DO echo %iFOR /L – 以增量形式從開始到結束一個數字序列
FOR /L %variable IN (start,step,end) DO command [command-parameters]
set sum=0 FOR /L %i IN (1, 1, 100) DO set /a sum=sum+%i echo %sum% >> 5050FOR /F – 做在一個檔案裡的指令
FOR /F ["options"] %variable in (file-set) do command [command-parameters]
FOR /F ["options"] %variable in ("string") do command [command-parameters]
FOR /F ["options"] %variable in ('command') do command [command-parameters]
file-set為一個或多個檔案名稱。/f 分析每個檔案的每一行,跳過空白行。"options" 關鍵字:
- eol=c 用來決定斷行符號,預設為 \n,但可換成其他字元(其中 c 只能是一個字元)
- skip=n 用來決定要先跳過幾層迴圈(也就是跳過前面幾行的意思)
- delims=xxx 用來決定欄位的分隔字元,預設為空白與TAB符號,並可自訂多個字元,多個字元時需用逗號(,)區隔開。
- tokens=x,y,m-n用來決定一次要取出幾個欄位,第一個欄位會存放在第一個自動變數,第二個欄位會存放在第二個自動變數裡,依此類推,說明如下。
- 第一個變數為%i並設並tokens=1-3,則後面將得到的變數為%%i、%%j、%%k
Set a=aaa_bbb_111-222-333 For /F "tokens=1-3 delims=_" %%i in ("%a%") do echo %%i %%j %%k >> aaa bbb 111-222-333
- 第一個變數為%i並設並tokens=2,3,則後面將得到的變數為%%i、%%j
Set a=aaa_bbb_111-222-333 For /F "tokens=1-3 delims=_" %%i in ("%a%") do echo %%i %%j >> bbb 111-222-333
2012年9月24日 星期一
Batch教學--變數使用
環境變數的使用,可以做到跟VC++中CString的用法類似,各位可以參考如下。
set A=1234567890 set B=%A% REM 從第3 字元後開始取2個字元 set B=%A:~3,2% echo %B% >>45 REM 從前面開始取5個字元 set B=%A:~,5% echo %B% >>12345 REM 從第3字元後開始取到後面。 set B=%A:~3% echo %B% >>4567890 REM 從後面開始取前5個字元。 set B=%A:~-5% echo %B% >>67890 REM 從開頭取到最後2個字元不取。 set B=%A:~0,-2% echo %B% >>12345678 REM 字元中有5的取代成sss。 set B=%A:5=sss% echo %B% >>1234sss67890其他常用系統變數
系統變數
|
描述
|
%n(%0、%1 ~ %9)
|
外部變數輸入所使用的變數代稱,如C/C++的Argv
|
%CMDEXTVERSION%
|
展開為目前的命令處理擴充功能的版本號碼
|
%CMDCMDLINE%
|
處理目前命令提示字元視窗命令的cmd.exe的完整路徑
|
%CD%
|
目前的工作資料夾
|
%DATE%
|
目前的系統日期
|
%ERRORLEVEL%
|
最近執行過的命令的錯誤碼;非零的值表示發生過的錯誤碼
|
%ProgramFiles%
|
應用程式目錄,預設是C:\Program
Files
|
%ProgramFiles(x86)%
|
應用程式目錄,預設是C:\Program
Files(x86)
|
%Path%
|
執行檔的搜尋路徑
|
%RANDOM%
|
顯示0到32767之間的十進位整數亂數
|
%SystemRoot%
|
系統根目錄,預設是C:\WINNT或C:\WINDOWS
|
%SystemDirectory%
|
系統目錄,預設是C:\WINNT\System32或C:\WINDOWS\System32
|
%TIME%
|
目前的系統時間
|
%Temp%、%Tmp%
|
暫存檔目錄
|
%USERNAME%
|
使用者帳號名稱
|
%WINDIR%
|
Windows目錄,預設是C:\WINNT或C:\WINDOWS
|
Python 圖表工具
如果要顯示結點關係圖,可選擇歷史最悠久的是Graphviz 透過pyDot生成DOT檔。
如果是需要生成統計圖,則pyChart可能更加適合。
如果要做三維的圖形,可考慮Dislin。
如果要一個歷史最悠久的,最受歡迎的,應該選擇Gnuplot可透過Gnuplot.py來訪問。
如果需要一個最前衛的,操作類似matlab的,則應該選擇matplotlib。
如果你想從最底層來,而且喜歡SVG格式,則可看看SVGDraw吧。
生成各種Python圖表chardir。
模組的高品質圖形輸出Python Matplotlib。
PyX - Python graphics package。
Eexcel VBA資料類型
一、資料類型
在Access中可用的資料類型分為3種:標準型、自定義型、物件型。
1.標準型,共有7種。
(1) 整數:尾碼符為"%"。
(2) 長整數:尾碼符為"&"。
(3) 單精確度:尾碼符為"!"。
(4) 雙精度:尾碼符為"#"。
(5) 貨幣:尾碼符為"@"。
(6) 字串:尾碼符為"$"。
(7) 變體:可用於任何資料類型。
二、變數定義
自定義型:它使用關鍵字Type來定義VBA產生新的資料類型,類似C/C++的結構,定義如下:
Type Point
X as Integer
Y as Integer
End Type
即定義了一個點(point )的資料結構,宣告與使用變數方式如下:
Dim pCurPoint as Point
PCurPoint.X=10
PCurPoint.Y=10
三、變數的作用域
在Access中可用的資料類型分為3種:標準型、自定義型、物件型。
1.標準型,共有7種。
(1) 整數:尾碼符為"%"。
(2) 長整數:尾碼符為"&"。
(3) 單精確度:尾碼符為"!"。
(4) 雙精度:尾碼符為"#"。
(5) 貨幣:尾碼符為"@"。
(6) 字串:尾碼符為"$"。
(7) 變體:可用於任何資料類型。
二、變數定義
自定義型:它使用關鍵字Type來定義VBA產生新的資料類型,類似C/C++的結構,定義如下:
Type Point
X as Integer
Y as Integer
End Type
即定義了一個點(point )的資料結構,宣告與使用變數方式如下:
Dim pCurPoint as Point
PCurPoint.X=10
PCurPoint.Y=10
三、變數的作用域
2012年9月20日 星期四
Batch教學--IF指令
條件判斷
IF [NOT] EXIST filename command
IF [NOT] EXIST filename (command) ELSE (command)
IF [/I] [NOT] item1==item2 command
IF item1 Compare-op item2 command
IF item1 Compare-op item2 (command) ELSE (command)
IF DEFINED variable command
Compare-op:
大小相同
區分大小寫
不區分大小寫
判斷檔案是否存在
如果環境變數是空,可在變數外加上特殊符號,以防止錯誤發生
確認環境變數是否存在
IF [NOT] EXIST filename command
IF [NOT] EXIST filename (command) ELSE (command)
IF [/I] [NOT] item1==item2 command
IF item1 Compare-op item2 command
IF item1 Compare-op item2 (command) ELSE (command)
IF DEFINED variable command
Compare-op:
EQU – 等於 NEQ – 不等於 LSS – 小於 LEQ – 小於或等於 GTR – 大於 GEQ – 大於或等於
大小相同
if "ABC"=="ABC" echo 大小寫相同
區分大小寫
if not "ABC"=="abc" echo 大小寫不同
不區分大小寫
if /I "ABC"=="abc" echo 兩者相同相等
判斷檔案是否存在
if NOT EXIST C:\text.txt echo c:\text.txt檔案不存在
如果環境變數是空,可在變數外加上特殊符號,以防止錯誤發生
IF "2" == "15" echo "bigger"
確認環境變數是否存在
IF DEFINED a echo 123 set a=5 IF DEFINED a echo 123 set a= IF DEFINED a echo 123
2012年9月18日 星期二
Batch教學--Set指令
顯示、計算環境變數
Set /a [expression]
Set /p variable=string
Set /p variable=<file
列出系統的所有環境變數
列出系統以'P'開頭環境變數
將Amin加入USER環境變數
清除環境變數
將C:\test加入PATH環境變數
環境變數的計算
等待使用者輸入數值或字串再設定至環境變數a
將檔案內容導入環境變數a
Set /a [expression]
Set /p variable=string
Set /p variable=<file
列出系統的所有環境變數
Set
列出系統以'P'開頭環境變數
Set P
將Amin加入USER環境變數
Set USER=Amin
清除環境變數
Set USER=
將C:\test加入PATH環境變數
Set PATH=C:\test;%PATH%
環境變數的計算
Set /a a+=1運算子 (依照運算優先順序由高到低排列)
() - 組成一群 ! ~ - - 一元運算符 * / % - 數字運算元 + - - 數字運算元 << >> - 邏輯位移 & - 位元運算 and ^ - 位元運算 exclusive or | - 位元運算 or = *= /= %= += –= - 指定 &= ^= |= <<= >>= , - 運算式分隔字元各進制計算
SET /A Result=020 REM 八進制進算 SET /A Result=16 REM 十進制進算 SET /A Result=0x10 REM 十六進制進算 SET /A Result=010+0x20-24 REM 混合進算
等待使用者輸入數值或字串再設定至環境變數a
Set /p a=
將檔案內容導入環境變數a
Set /p a=<file.txt
2012年9月17日 星期一
使用RW讀寫Smbus device
在網路上介紹透過RW或是RU來操作SMBus的資料很少,好不容易才找到可以參考的且實用的網頁,不過說明的又很有限,所以在此完整的說明操作流程。
1.下載安裝RWEverything,開啟RW中PCI Device table列表,找Smbus controller,如Intel PCH SMbus controoler: D31:F3,將預設以1 Byte顯示方式改為 4 Byte。
2.找到SMB_BASE的位置 , 如: offset 20h~23h。
3.右鍵點選”Open IO Space”, 開啟對應的IO Space table。
4.以下即開始介紹藉由IO操作SMBus讀寫Device的方法
(1)我們先來看幾個常用的暫存器。
(2)下面分別介紹Byte read、Word read、Block read讀取資料的步驟。
Byte read:
Step1:
清除暫存器狀態:SMB_BASE + 0x00 → Host Status。
填入0xFE清除暫存器狀態,數值變化的狀態0x40 → 0xFE → 0x00 → 0x40。
Step2:
填入裝置在SMBus的位址:SMB_BASE + 0x04 → Slave Address。
如Memory Slave Address 為0xA0~0xA6,Bit0=1代表read,所以填入0xA0 + 1 = 0xA1。
Step3:
指定欲讀取裝置內資訊擺放的起點:SMB_BASE + 0x03 → HOST Command。
讀取裝置內資訊的起始位置,從頭開始讀取,這裡先填0x00。
Step4:
選擇執行的方式與啟動:SMB_BASE + 0x02 → Host Control。
填入0x48,Bit6=1代表開始執行、Bit2~4代表選擇要使用的執行方式。
Step5:
讀取資料:SMB_BASE + 0x05 → Host Data0。
返回裝置內指定位置的資訊。
Word Read:
Step1:
清除暫存器狀態:SMB_BASE + 0x00 → Host Status。
填入0xFE清除暫存器狀態,數值變化的狀態0x40 → 0xFE → 0x00 → 0x40。
Step2:
填入裝置在SMBus的位址:SMB_BASE + 0x04 → Slave Address。
如Memory Slave Address 為0xA0~0xA6,Bit0=1代表read,所以填入0xA0 + 1 = 0xA1。
Step3:
指定欲讀取裝置內資訊擺放的起點:SMB_BASE + 0x03 → HOST Command。
讀取裝置內資訊的起始位置,從頭開始讀取,這裡先填0x00。
Step4:
選擇執行的方式與啟動:SMB_BASE + 0x02 → Host Control。
填入0x4C,Bit6=1代表開始執行、Bit2~4代表選擇要使用的執行方式。
SMB_BASE + 0x00 數值變化的狀態:0x40 → 0x42。
SMB_BASE + 0x02 數值變化的狀態:0x4C → 0x0C。
Step5:
讀取資料:SMB_BASE + 0x05 → Host Data0。
返回裝置內指定第一位置的資訊。
Step6:
讀取資料:SMB_BASE + 0x06 → Host Data1。
返回裝置內指定第二位置的資訊。
Block read:
Step1:
清除暫存器狀態:SMB_BASE + 0x00 → Host Status。
填入0xFE清除暫存器狀態,數值變化的狀態0x40 → 0xFE → 0x00 → 0x40。
Step2:
填入裝置在SMBus的位址:SMB_BASE + 0x04 → Slave Address。
如Memory Slave Address 為0xA0~0xA6,Bit0=1代表read,所以填入0xA0 + 1 = 0xA1。
Step3:
指定欲讀取裝置內資訊擺放的起點:SMB_BASE + 0x03 → HOST Command。
讀取裝置內數值的起始位置,從0x01頭開始讀取。
Step4:
選擇執行的方式與啟動:SMB_BASE + 0x02 → Host Control。
填入0x54,Bit6=1代表開始執行、Bit2~4代表選擇要使用的執行方式。
SMB_BASE + 0x00 數值變化的狀態:0x40 → 0xC1。
SMB_BASE + 0x02 數值變化的狀態:0x54 → 0x14。
Step5:
取得資料的長度:SMB_BASE + 0x05 → Host Data0。
回傳數值位元組數,該值也是愈讀取裝置啟始點的數值資料。
Step6:
SMB_BASE + 0x07 → HOST_BLOCK_DB。
返回block讀取的第一個位元組,該值為Step3指定起點 + 1數值。
Step7:
取得Block read全部數值:SMB_BASE + 0x00 → Host Status。
寫0xFF清除狀態位元,表示該筆資料已取走,通知SMBus傳回下一筆資料至offset 0x07的位置。
數值變化的狀態:0xC1 → 0xFE → 0x81 → 0xC1。
最後一筆資料顯示狀態:0xC1 → 0xFE → 0x82 → 0xC2。
以此類推,重複做Step7動作直到這個block讀完。
資料來源:怎樣在RU下讀寫Smbus device
1.下載安裝RWEverything,開啟RW中PCI Device table列表,找Smbus controller,如Intel PCH SMbus controoler: D31:F3,將預設以1 Byte顯示方式改為 4 Byte。
2.找到SMB_BASE的位置 , 如: offset 20h~23h。
3.右鍵點選”Open IO Space”, 開啟對應的IO Space table。
4.以下即開始介紹藉由IO操作SMBus讀寫Device的方法
(1)我們先來看幾個常用的暫存器。
(2)下面分別介紹Byte read、Word read、Block read讀取資料的步驟。
Byte read:
Step1:
清除暫存器狀態:SMB_BASE + 0x00 → Host Status。
填入0xFE清除暫存器狀態,數值變化的狀態0x40 → 0xFE → 0x00 → 0x40。
Step2:
填入裝置在SMBus的位址:SMB_BASE + 0x04 → Slave Address。
如Memory Slave Address 為0xA0~0xA6,Bit0=1代表read,所以填入0xA0 + 1 = 0xA1。
Step3:
指定欲讀取裝置內資訊擺放的起點:SMB_BASE + 0x03 → HOST Command。
讀取裝置內資訊的起始位置,從頭開始讀取,這裡先填0x00。
Step4:
選擇執行的方式與啟動:SMB_BASE + 0x02 → Host Control。
填入0x48,Bit6=1代表開始執行、Bit2~4代表選擇要使用的執行方式。
Step5:
讀取資料:SMB_BASE + 0x05 → Host Data0。
返回裝置內指定位置的資訊。
Word Read:
Step1:
清除暫存器狀態:SMB_BASE + 0x00 → Host Status。
填入0xFE清除暫存器狀態,數值變化的狀態0x40 → 0xFE → 0x00 → 0x40。
Step2:
填入裝置在SMBus的位址:SMB_BASE + 0x04 → Slave Address。
如Memory Slave Address 為0xA0~0xA6,Bit0=1代表read,所以填入0xA0 + 1 = 0xA1。
Step3:
指定欲讀取裝置內資訊擺放的起點:SMB_BASE + 0x03 → HOST Command。
讀取裝置內資訊的起始位置,從頭開始讀取,這裡先填0x00。
Step4:
選擇執行的方式與啟動:SMB_BASE + 0x02 → Host Control。
填入0x4C,Bit6=1代表開始執行、Bit2~4代表選擇要使用的執行方式。
SMB_BASE + 0x00 數值變化的狀態:0x40 → 0x42。
SMB_BASE + 0x02 數值變化的狀態:0x4C → 0x0C。
Step5:
讀取資料:SMB_BASE + 0x05 → Host Data0。
返回裝置內指定第一位置的資訊。
Step6:
讀取資料:SMB_BASE + 0x06 → Host Data1。
返回裝置內指定第二位置的資訊。
Block read:
Step1:
清除暫存器狀態:SMB_BASE + 0x00 → Host Status。
填入0xFE清除暫存器狀態,數值變化的狀態0x40 → 0xFE → 0x00 → 0x40。
Step2:
填入裝置在SMBus的位址:SMB_BASE + 0x04 → Slave Address。
如Memory Slave Address 為0xA0~0xA6,Bit0=1代表read,所以填入0xA0 + 1 = 0xA1。
Step3:
指定欲讀取裝置內資訊擺放的起點:SMB_BASE + 0x03 → HOST Command。
讀取裝置內數值的起始位置,從0x01頭開始讀取。
Step4:
選擇執行的方式與啟動:SMB_BASE + 0x02 → Host Control。
填入0x54,Bit6=1代表開始執行、Bit2~4代表選擇要使用的執行方式。
SMB_BASE + 0x00 數值變化的狀態:0x40 → 0xC1。
SMB_BASE + 0x02 數值變化的狀態:0x54 → 0x14。
Step5:
取得資料的長度:SMB_BASE + 0x05 → Host Data0。
回傳數值位元組數,該值也是愈讀取裝置啟始點的數值資料。
Step6:
SMB_BASE + 0x07 → HOST_BLOCK_DB。
返回block讀取的第一個位元組,該值為Step3指定起點 + 1數值。
Step7:
取得Block read全部數值:SMB_BASE + 0x00 → Host Status。
寫0xFF清除狀態位元,表示該筆資料已取走,通知SMBus傳回下一筆資料至offset 0x07的位置。
數值變化的狀態:0xC1 → 0xFE → 0x81 → 0xC1。
最後一筆資料顯示狀態:0xC1 → 0xFE → 0x82 → 0xC2。
以此類推,重複做Step7動作直到這個block讀完。
資料來源:怎樣在RU下讀寫Smbus device
2012年9月15日 星期六
使用Internet Explorer object下載每日上櫃交易明細
抓取上櫃交易明細需要使用POST來傳遞參數,在VBA中能使用的方法就是使用XmlHttp。
不過我們想嘗試使用其他Excel VBA抓取網頁數據的方法來抓取,於是選用了Internet Explorer物件來試著抓取上櫃交易明細。
如下使用Internet Explorer物件抓取上櫃交易明細
Option Explicit Sub ie_test_Navigate_PostData() Dim objIE As Object Dim bPostData() As Byte Dim xlURL As String Dim UrlHeaders As String xlURL = "http://www.gretai.org.tw/ch/stock/aftertrading/broker_trading/download_ALLCSV.php" UrlHeaders = "Content-Type: application/x-www-form-urlencoded" & vbCrLf bPostData = StrConv("stk_date=1010914&curstk=5349", vbFromUnicode) Set objIE = CreateObject("InternetExplorer.Application") With objIE .Visible = True .Navigate xlURL, , , bPostData, UrlHeaders While .ReadyState <> 4 Or .Busy = True DoEvents Wend End With End Sub雖然可以透過InternetExplorer物件來抓取上櫃交易明細,但當順利取得檔案時卻因需要點選下載檔案對話框,因此這裡可能就無法使用InternetExplorer物件抓取。
對於Navigate進階的使用可參考這裡。
VC++, JavaScript的日期函數使用
因工作要使用VC++時間處理函數,加上近期在研究Highstock也需要使用到JavaScript時間處理函數,所以將兩者處理時間的方法一起列出
以下是一個使用VC++時間處理類別CTime的範例
以下是一個使用JavaScript時間處理函數的範例
兩者的差異
以下是一個使用VC++時間處理類別CTime的範例
int main(int argc, TCHAR* argv[]) { CTime cTime = CTime::GetCurrentTime(); printf("Year : %d\n", cTime.GetYear()); printf("Month : %d\n", cTime.GetMonth()); printf("Day : %d\n", cTime.GetDay()); printf("Hour : %d\n", cTime.GetHour()); printf("Minute : %d\n", cTime.GetMinute()); printf("Second : %d\n", cTime.GetSecond()); printf("Time : %d\n", cTime.GetTime()); return 1; }執行結果
以下是一個使用JavaScript時間處理函數的範例
<html> <head> <title>JavaScript Test Date Function</title> <script type="text/javascript"> function run() { var CurrentTime = new Date(); document.write("Year : " + (CurrentTime.getYear() + 1900) + "<br>") document.write("Month : " + (CurrentTime.getMonth() + 1) + "<br>") document.write("Date : " + CurrentTime.getDate() + "<br>") document.write("Hours : " + CurrentTime.getHours() + "<br>") document.write("Minutes : " + CurrentTime.getMinutes() + "<br>") document.write("Seconds : " + CurrentTime.getSeconds() + "<br>") document.write("Time : " + CurrentTime.getTime() + "<br>") } </script> </head> <body onload = run();> </body> </html>執行結果
兩者的差異
VC++
|
JavaScript
|
|
Time
|
Second
|
Millisecond
|
Year
|
不加1900
|
需加1900
|
Month
|
以1為起點,範圍1~12
|
以0為起點,範圍0~11
|
2012年9月8日 星期六
使用Stored Procedure取得SQLyog的版本
透過SQLyog寫一個Stored Procedure(預存程序),來取得SQLyog版本資訊
取得SQLyog版本資訊前先初始化GetDBVersion預存程序
再下SQL指令取得版本
執行結果
DELIMITER // CREATE PROCEDURE `stock`.`GetDBVersion`(OUT VERSION VARCHAR(60),OUT DAY VARCHAR(60)) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN SELECT VERSION() INTO VERSION; SELECT CURDATE() INTO DAY; END// DELIMITER ;
取得SQLyog版本資訊前先初始化GetDBVersion預存程序
CALL GetDBVersion(@version,@day);
再下SQL指令取得版本
SELECT @version,@day;
執行結果
2012年9月7日 星期五
使用Stored Procedure列出交易日
透過SQLyog寫一個Stored Procedure(預存程序),來產生一個連續日期的序列
要產生時間序列前先初始化gen_time_sequence預存程序
取得時間序列產生的天數,執行以下SQL指令
執行結果
取得時間序列中的前10筆資料
執行結果
DELIMITER $$ CREATE PROCEDURE `stock`.`gen_time_sequence`(startstamp TIMESTAMP, endstamp TIMESTAMP, intval INTEGER, unitval VARCHAR(10)) BEGIN DECLARE thisStamp TIMESTAMP; DECLARE nextStamp TIMESTAMP; SET thisStamp = startstamp; -- Drop and Create the temp table DROP TEMPORARY TABLE IF EXISTS timestamp_sequence; CREATE TEMPORARY TABLE IF NOT EXISTS timestamp_sequence( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, TIME TIMESTAMP ); -- 迴圈, 每次增加間隔 REPEAT SELECT CASE unitval WHEN 'MICROSECOND' THEN TIMESTAMPADD(MICROSECOND, intval, thisStamp) WHEN 'SECOND' THEN TIMESTAMPADD(SECOND, intval, thisStamp) WHEN 'MINUTE' THEN TIMESTAMPADD(MINUTE, intval, thisStamp) WHEN 'HOUR' THEN TIMESTAMPADD(HOUR, intval, thisStamp) WHEN 'DAY' THEN TIMESTAMPADD(DAY, intval, thisStamp) WHEN 'WEEK' THEN TIMESTAMPADD(WEEK, intval, thisStamp) WHEN 'MONTH' THEN TIMESTAMPADD(MONTH, intval, thisStamp) WHEN 'QUARTER' THEN TIMESTAMPADD(QUARTER, intval, thisStamp) WHEN 'YEAR' THEN TIMESTAMPADD(YEAR, intval, thisStamp) END INTO nextStamp; -- 過濾週六,週日與特殊日子 IF DAYOFWEEK(thisStamp) <> 1 AND DAYOFWEEK(thisStamp) <> 7 OR DATE(thisStamp) = STR_TO_DATE('2012-08-02', '%Y-%m-%d') THEN INSERT INTO timestamp_sequence(Dateid, Weekdayid) SELECT DATE(thisStamp), DAYOFWEEK(thisStamp); ELSEIF DATE(thisStamp) = STR_TO_DATE('2012-03-03', '%Y-%m-%d') THEN INSERT INTO timestamp_sequence(Dateid, Weekdayid) SELECT DATE(thisStamp), DAYOFWEEK(thisStamp); END IF; SET thisStamp = nextStamp; UNTIL thisStamp >= endstamp END REPEAT; END$$ DELIMITER ;
要產生時間序列前先初始化gen_time_sequence預存程序
CALL gen_time_sequence('2012-01-01','2012-12-31', 1, 'DAY');
取得時間序列產生的天數,執行以下SQL指令
SELECT COUNT(1) FROM timestamp_sequence;
執行結果
取得時間序列中的前10筆資料
select * from timestamp_sequence limit 10;
執行結果
2012年8月31日 星期五
資訊站台
國外網站
綜合型(技術面+基本面)---部落格
基本面---部落格
基本面工具
- Dividend
- GuruFocus
- Stockcharts
- Morningstar
- Marketwatch
- Estimize - Crowdsourced earnings and economic estimates
- histock
- 聚財網
- 鉅亨網
- MoneyDJ
- 發達理財網
- MONEY LINK
- IEK產業情報網
- WantGoo 玩股網
- GOGOFUND.COM
- 經濟學人 - FT中文網
- Goodinfo!台灣股市資訊網
綜合型(技術面+基本面)---部落格
基本面---部落格
- 挖股誌
- 老方講股
- 便宜的台股
- USA STOCK
- 綠角財經筆記
- 食股誌的部落格
- 黃國華耕讀筆記
- 雷浩斯價值投資
- 巴菲特班 洪瑞泰
- 獵豹財務長郭恭克
- 小散戶的部落閣@台灣
- 股魚網-不看盤的投資術
- 投資的轉折--邏輯投資法
- 麥樹仁投資社群網站(Makssin)
- tivo168_的投資理財_Excel_應用教學
基本面工具
學習推薦
有投資課程
基本面書籍
Python參考書籍
基本面書籍
- 操盤人教你看財務報表 ISBN:9789867283245
- 一次就懂:怪老子帶你看懂財報選好股 ISBN:9789867283412
- 賺錢的邏輯你懂了!用大白話說的財務報表速讀術 ISBN:9789866316128
- 財報的秘密—探索財報數字內涵,掌握公司價值變化 ISBN:9789866511158
- 打敗外資賺大錢 ISBN:9789867615053(絕版書)
- 聰明買台股 ISBN:9789868346529(絕版書)
- 技術分析不設防:化繁為簡 ISBN:9789866366017
- PowerLanguage程式交易語法大全 ISBN:9789866320156
- multicharts快譯通 ISBN : 9789866320309
- 分析師關鍵報告:期貨交易篇 , ISBN:9789866320408
- 分析師關鍵報告2:張林忠教你程式交易 ISBN:9789866320743
- 股市的科學煉金術:程式交易全圖解 ISBN:9789867283528
Python參考書籍
- Python 入門 ISBN:9578247354 (絕版書)
- Python Web開發學習實錄 ISBN:9787302266334 (簡體書)
- Python 程式設計入門 (適用於 2.x 與 3.x 版) ISBN:9789864340057 (適合入門)
- 金融科技實戰:Python與量化投資 ISBN:9864342703 (適合入門)
- Python 入門邁向高手之路王者歸來 ISBN:9865000598 (適合入門)
- 超圖解Excel VBA 基礎講座 ISBN:9789574423439 (適合入門)
- 超圖解Excel VBA 應用講座 ISBN:9789574423996 (適合入門)
- 跟我學Excel VBA ISBN:9789862760352(適合入門)
- 跟我學Excel VBA:將複雜的操作用一個按鍵就搞定!(適用2016/2013/2010/2007) ISBN:9789862769843 (適合入門)
- Excel VBA 巨集的職場效率術:無痛學習 VBA程式×步驟式教學錄製巨集×200個範例立即套用 ISBN:9789864342839(適合入門)
- Excel VBA基礎必修課-增量版(適用Excel 2016/2013/2010) ISBN:9789864763948(適合入門)
- Excel VBA與巨集程式設計:新手入門就靠這一本 ISBN:9789862016909 (適合進階)
- Excel VBA一點都不難:一鍵搞定所有報表 ISBN:9789862017562 (適合進階)
- Excel VBA徹底研究 ISBN:9789575277239 (絕版書、適合進階)
- Excel與外部資料無縫整合:使用Excel VBA與SQL建置小型系統與資料分析,快速提昇辦公效率200問 ISBN:9789862015889
- 詳解Excel+Access的資料庫整合應用實務 ISBN:9789862012376
- Excel 2003 Power Programming with VBA
- amMap (繪圖)
- Highcharts (繪圖)
- jQuery Flot Tutorial
關於作者
About Me
個人背景
大學念電機系以C語言寫程式,碩士論文題目與生物資訊相關「DNA蛋白質摺疊結構預測」,以C++、Perl、Shell作為研究的使用語言,畢業後在工作上則以C/C++為主要語言,開發MFC Windows視窗,平時自己喜歡使用程式輔助在數據方面的分析與應用,主要語言以Python與Excel VBA為主。
在2012年建立個人網站《iInfo資訊交流》,主要分享網路爬蟲、C/C++、C#、Excel VBA、Python、Google Apps Script、Batch軟體整合應用等相關技術內容為主,歡迎各領域朋友相互交流。
專長
- C/C++、 Excel VBA、VBScript、Python、Google Apps Script、Batch、C#、MultiCharts
- 網路資料爬蟲 (Excel VBA、VBScript、Python、Google Apps Script)
個人網站與粉絲專頁
- iInfo 資訊交流 (本站) http://white5168.blogspot.com/
經歷
- 凱衛資訊專案副理 (2015/10 ~ 迄今)
- 桌機看盤軟體開發與維護。
- 券商軟體功能優化。
- Android手機看盤軟體開發與維護。
- Python台股盤後資料抓取與協助資料庫建置。
- Excel 與 MultiCharts 整合應用講師。
- 仁寶電腦高級軟體工程師 (2008/10 ~ 2015/09)
- 工廠產線測試軟體與硬體的維護與開發。
- 協助廠商開發ODM/OEM 測試軟體。
- C/C++為主,開發Console與GUI軟體,在Winpe、Windows、UEFI上運作。
- 台北碩士文化教育事業業務專員 (2003/09 ~ 2008/07)
- 協助大學生規劃研究所考試的課程內容與分析各類研究所出路。
- 大專院校校園行銷企劃與招生業務。
勞動部 - 產業人才投資計畫
2024年度課程 - 行政院勞動部勞動力發展署北基宜花金馬分署
- 臺灣職能訓練產業工會 台灣文創訓練中心
- 2025/01/05 ~ 2025/03/02 (週日整天) 「113-157266 Python網路爬蟲自動化實務班第01期 - 113年政策性計畫 - 45小時」連結、招生簡章。
- 2024/12/24 ~ 2025/02/18 (週二晚、週四晚) 「113-157263 Python量化分析交易策略與串接券商API實務班第01期 - 113年政策性計畫 - 45小時」連結、招生簡章。
- 2024/11/10 ~ 2024/12/22 (週日整天) 「113-157264 Python資料科學分析程式設計班第01期 - 113年政策性計畫 - 42小時」連結、招生簡章。
- 2024/11/05 ~ 2024/12/19 (週二晚、週四晚) 「113-157265 Python資料科學分析、視覺化呈現與資料庫實務班第01期- 113年政策性計畫 - 42小時」連結、招生簡章。
- 2024/09/03~2024/10/22 (週二晚、週四晚) 「113-157272 Python Line Bot機器人與資料庫整合實務班第01期- 113年政策性計畫 - 45小時」連結、招生簡章。
- 2024/09/01~2024/10/27 (週日整天) 「113-157260 Python大數據金融股票期貨網路爬蟲資料分析實務班第01期 - 113年政策性計畫 - 54小時」連結、招生簡章。
- 2024/08/31~2024/10/12 (週六整天、週日晚) 「113-157278 以Python融合AI ChatGPT打造Line Bot機器人大腦班第01期 - 113年政策性計畫 - 54小時」連結、招生簡章。
- 2024/06/14~2024/08/11 (週五晚、週日晚) 「113-157277 以Python融合AI ChatGPT打造Line Bot機器人大腦班第01期 - 113年政策性計畫 - 54小時」連結、招生簡章。
- 2024/02/03~2024/03/23 (週六整天) 「112- 150408 Python Line Bot機器人與資料庫整合實務班第01期 - 112年政策性計畫 - 42小時」連結、招生簡章。
- 2024/01/22~2024/03/13 (週一晚、週三晚) 「112-150405 Python資料科學分析程式設計進階班第01期 - 112年政策性計畫 - 42小時」連結、招生簡章。
- 臺灣勞動力服務人員職業工會聯合會
- 2025/01/06~2025/03/05 (週一晚、週三晚) 「113 - 157196 Python程式交易整合券商API應用實務班 - 113上半年計畫 - 42小時」連結、招生簡章
- 2024/09/13~2024/12/20 (週五晚) 「113 - 157195 Python網路爬蟲自動化實務班 - 113上半年計畫 - 42小時」連結、招生簡章。
- 2024/04/27~2024/06/22 (週六整天) 「113 - 155081 Python大數據程式設計與資料分析應用班 - 113上半年計畫 - 48小時」連結、招生簡章。
- 2024/04/15~2024/07/22 (週一晚) 「113- 155077 Python資料科學分析、視覺化呈現與資料庫班 - 113上半年計畫 - 42小時」連結、招生簡章。
- 文化大學推廣部
- 2024/12/21 ~ 2025/01/25 (週六整天)「113-157090 Python網路爬蟲進階與Scrapy爬蟲實務班- 113政策性計畫 - 36小時」連結、招生簡章。
- 2024/11/13 ~ 2024/12/30 (週六整天)「113-157087 Line Bot聊天機器人結合GhatGPT打造AI聊天機器人實務班- 113政策性計畫 - 42小時」連結、招生簡章。
- 2024/11/02 ~ 2024/12/07 (週六整天)「113-157086 Python網路爬蟲實務班 - 113政策性計畫 - 36小時」連結、招生簡章。
- 2024/09/30 ~ 2024/11/06 (週一晚、週三晚)「113-157079 Python資料分析及視覺化應用實務班 - 113政策性計畫 - 36小時」連結、招生簡章。
- 2024/08/05~2024/09/18 (週一晚、週三晚)「113 - 157066 Python量化分析交易策略整合券商API元件打造程式交易實務班 - 113政策性計畫 - 42小時」連結、招生簡章。
- 2024/07/02~2024/08/08 (週二晚、週四晚)「113 - 157055 Python AI程式設計與資料分析應用班 - 113政策性計畫 - 36小時」連結、招生簡章。
- 2024/03/03~2024/04/28 (週日整天) 「112 - 150203 Python AI金融數據爬蟲與量化分析應用實務班第01期 - 112政策性計畫 - 54小時」連結、招生簡章。
- 實踐大學推廣部
- 臺灣職能訓練產業工會 台灣文創訓練中心
- 2023/12/24~2024/02/18 (週日整天) 「112 - 150406 Python資料科學分析、視覺化呈現與資料庫實務班第01期 - 112年政策性計畫 - 42小時」連結、招生簡章。
- 2023/12/21~2024/02/29 (週二晚、週四晚) 「112 - 151819 以Python融合AI ChatGPT打造Line Bot機器人大腦班第01期 - 112年政策性計畫 - 54小時」連結、招生簡章。
- 2023/11/20~2024/01/08 (週一晚、週三晚) 「112 - 150407 Python網路爬蟲自動化班第01期 - 112年政策性計畫 - 42小時」連結、招生簡章。
- 2023/10/19~2023/12/19 (週二晚、週四晚) 「112 - 151811 以Python融合AI ChatGPT打造Line Bot機器人大腦班第01期 - 112年政策性計畫 - 54小時」連結、招生簡章。
- 2023/10/15~2023/12/10 (週日整天) 「112 - 150403 Python大數據金融股票期貨網路爬蟲資料分析實務班第01期 - 112年政策性計畫 - 54小時」連結、招生簡章。
- 2023/08/01~2023/09/14 (週二晚、週四晚) 「112 - 150404 Python量化分析交易策略與串接券商API實務班第01期 - 42小時」連結、招生簡章。
- 2023/05/14~2023/07/23 (週日整天) 「112 - 149823 Python大數據金融股票期貨網路爬蟲資料分析實務班第01期 - 54小時」 連結、招訓簡章。
- 臺灣勞動力服務人員職業工會聯合會
- 2023/08/30 ~ 2023/11/01 (週三晚) 「112 - 152374 Python網路爬蟲資料處理實務班 - 112年政策性計畫 - 30小時」 連結、招訓簡章。
- 2023/04/12 ~ 2023/07/12 (週三晚) 「112 - 147548 Python資料科學分析、視覺化呈現與資料庫班 - 42小時」 連結、招訓簡章。
- 文化大學推廣部
- 2023/12/02~2024/01/27 (週六整天) 「112 - 150201 Line Bot聊天機器人自動化應用實務班 - 112年政策性計畫 - 48小時」連結、招生簡章。
- 2023/10/07~2023/11/25 (週六整天) 「112 - 150198 Python大數據資料分析及視覺化呈現數據應用班 - 112年政策性計畫 - 48小時」連結、招生簡章。
- 2023/08/06~2023/09/24 (週日整天) 「112 - 150197 Python AI大數據程式設計與資料分析應用班 - 48小時」連結、招生簡章。
- 實踐大學推廣部
2021年度課程 - 行政院勞動部勞動力發展署北基宜花金馬分署
2020年課程 - 行政院勞動部勞動力發展署北基宜花金馬分署
2019年課程 - 行政院勞動部勞動力發展署北基宜花金馬分署
數位發展部 - AIGO計畫 x 文化大學
企業內訓
- 新光銀行「數位關鍵力系列課程 - Excel VBA 超入門實戰」2023/10/20、2023/10/25,連結。
- 師大推廣部
- 「Python網路爬蟲實務班(進階)」2024/06/15 - 2024/09/07 (週六晚),連結。
- 「Python程式設計入門班」2024/07/06~ 2024/08/17 (週六整天),連結。
- 輔大經濟系
- 經濟系大二「以GitHub打造個人數位履歷與個人網站」2024/06/07、2024/06/14、2024/06/21、2024/06/28,連結。
- 經濟系大二「Line 理財機器人」2024/05/06、2024/05/13、2024/05/20,連結。
- 社會學院「Line 行銷機器人」2024/05/05、2024/05/12、2024/05/19,連結。
- 大二「Excel VBA 網路爬蟲、金融數據與視覺化」2023/02/24、2023/03/03、2023/04/14、2023/04/21 。
- 大三、四「Python金融數據與視覺化」2022/11/08、2022/11/15、2022/11/22 。
- 大二「Excel/Excel VBA、Pwer BI整合應用」2022/09/23、2022/10/28、2022/11/11、2022/11/18 。
- 大二「Excel VBA 網路爬蟲、金融數據與視覺化」2022/04/22、2022/04/29、2022/05/06、2022/05/13。
- 大三、四「Python金融數據與視覺化」2021/11/16、2021/11/23、2021/11/30。
- 大三、四「Python金融大數據爬蟲課」2019/10 。
- 大三、四「Python抓取金融數據」2018/10 。
- 大三、四「Python網頁爬蟲」2017/10 。
- 成大資料分析社
- 「Excel商業數據分析與Excel VBA爬蟲」2021/11/06 ,部份課程內容影片。
- 東吳巨資系
- 「Excel VBA爬蟲」2017/12 。
其他講座
- Tibame 「Excel VBA智慧選股與股票財報分析」線上直播課程講師,2021/12/26、2022/03/26,連結。
- T客邦「Python 打造 LINE 股市小秘書,建構股票分析系統、擬定專屬交易策略」2019/12,連結。
- iInfo 「Excel VBA 基礎語法班」2019/07,連結。
- T客邦「Excel VBA 爬蟲實戰技巧,分析網站結構擷取資訊、運用VBA+爬蟲打造數據分析工具」2019/07,連結。
- 凱衛資訊「Excel與MultiCharts結合」2017/08 連結、2017/10 連結、2018/03 連結 。
演講與活動
- 2019/04 天瓏書局「Excel VBA 實戰技巧|金融數據x網路爬蟲」連結。
- 2019/04 高雄科技大學金資系「金融資訊專題講座」。
- 2018/08 凱基期貨台北總公司「摩台OI與台指對應策略」。
- 2018/04 群益期貨台北總公司「Python與台股盤後大數據應用」。
- 2018/02 群益期貨台北總公司「Excel與DDE應用」。
- 2016/Q2 凱衛資訊MultiCharts網聚講師。
- 2016/03 iInfo版聚主持人兼講師
證照
- 電腦軟體應用乙級技術士 (2006年 行政院勞工委員會發)
- 電腦硬體裝修乙級技術士 (2009年 行政院勞工委員會發)
- 冷凍空調裝修丙級技術士 (1998年 行政院勞工委員會發)
出版書籍
- 2019/03/29碁峰資訊出版《Excel VBA 實戰技巧|金融數據x網路爬蟲》 連結:Http://books.gotop.com.tw/v_ACI031700
- 本書榮獲 金石堂網路書店 2019年度百大暢銷書 第4名 連結、連結
- 本書榮獲 博客來書店 2019年度百大度暢銷書 第19名 連結、連結
- 本書榮獲 天瓏網路書店 2019年度百大度暢銷書 第46名 連結、連結
- 2021/03/26碁峰資訊出版《Python x Excel VBA x JavaScript|網路爬蟲 x 實戰演練》 連結:http://books.gotop.com.tw/v_ACD020100
工作作品
- 個股基本面分析
-
個股財報指標比較
- 2018/01~2018/03 C#結合Excel VBA開發台指期指標
- 2018/03 Excel抓期交所資料自動匯出CSV給MultiCharts https://youtu.be/c5lnSQEt5tE
- 2018/03 MultiCharts結合Excel爬蟲抓取未平倉量資料,再匯入MultiCharts https://youtu.be/R5Nddl66NqU
- 2018/03 Excel VBA 爬蟲抓期交所三大法人未平倉量 https://youtu.be/ZCe42oyHSeQ
- 2017/06 不產生CSV檔,直接使用 Excel 外資期貨未平倉量在MultiCharts以指標方式呈現 https://youtu.be/op7WUq6KRHk
- 2017/06 Excel VBA + Google Sheet + Google Apps Script 整合應用 https://youtu.be/q2cpO3Tg5N0
- 2017/03 透過Chrome取得 元大台灣卓越50基金 (0050) 成分股列表連結 https://youtu.be/yegOSwmkKWQ
- 2017/01 MultiChart結合Google推播傳送下單訊息 https://youtu.be/0HTuYTtAacU
- 2017/01 Line Notify應用:盤後資料通知 https://youtu.be/I4FBbrXX4sE
- 2017/06 Line Notify與Google Apps Script (GAS) 的結合應用 https://youtu.be/1_1xKeaSulA
- 2017/01 MultiCharts + DLL + Line Notify 做到盤中及時下單通知 https://youtu.be/0g7R1Xl-auA
- 2016/12 建立Line Notify傳送訊息環境與傳送文字 https://youtu.be/Pl8S8-dKwsA
- 2016/07 MultiCharts動態載入資料 https://youtu.be/Ojlsw5NyNYA
- 2016/04 同時開啟2個以上的Excel去抓取網頁資料 https://youtu.be/AAaGoJt5hiQ
- 2015/05使用Fiddler抓取網頁資料 https://youtu.be/xS2AkysEEDo
學術作品
- 研究所論文 2008/08 指導教授:陳倩瑜教授 (現從台大借調 台灣人工智慧實驗室 服務)
論文題目:使用ab initio結構預測方法建構蛋白質功能區結構模型之研究
Constructing Structural Model of Protein Functional Domains using ab initio Structure Prediction
連結:Https://hdl.handle.net/11296/29qskk
關於這個「iInfo 資訊交流」部落格
「iInfo 資訊交流」前身為2008年成立的「iInfo 愛資訊」,主要提供大學生考研究所所需的考情資訊網站,在2012年轉變為程式整合應用網站,希望藉由Python、Excel VBA、MySQL、C/C++、JavaScript、CSS、Batch、C#的程式語言,能在網路上結交各位程式愛好者,一起在投資方面創造出更近一步的應用。
訂閱:
文章 (Atom)