2010年12月20日 星期一

2011年台期所期貨最後交易日檔(結算日)

2010-12-21

每年都要補的內容,最後交易日也就是結算日, 期交所每年定訂,在程式交易中會用到, 是得到當月期貨及換倉重要參考。

2011(中華民國100年)台期所期貨最後交易日檔(結算日)

資訊來源 - 期貨交易所 - 交易制度 - 台灣行事曆



20101117
20101215
20110119
20110216
20110316
20110420
20110518
20110615
20110720
20110817
20110921
20111019
20111116
20111221





-
--
-

2010年6月25日 星期五

AutoHotKey補一個月的轉檔主程式

這支程式是用AutoHotKey寫的,用來補前幾天(前30天)沒有做轉檔, 要配合
台指期轉檔程式 - part4(懶人包), 自動取得交易檔, 轉Tick及1分K線。

程式中用到他人的 SimpleArray.ahk 要放在同個資料夾(目錄)下。下載SimpleArray.zip, 下載後要解zip檔。

getTick.ahk程式碼


;
; AutoHotkey Version: 1.0.0
; Platform: Win XP
; Author: R.J
; Date : 2010/6/11
; Script Function:
; Get Tick
;
#Include SimpleArray.ahk

; 1 2 3 4 5 6 7 8 9 10 11 12
Month = 31|28|31|30|31|30|31|31|30|31|30|31

PerlExe = c:\perl\bin\perl.exe
plGetTick = c:\tick\prg_perl3w\gettick3w.pl
plProc3wTick = c:\tick\prg_perl3w\proc3w_tick.pl

ToDay = %A_YYYY%-%A_MM%-%A_DD%

if (%A_MM% == 1 ){
sStartMonth := 12 ; 前月
} else {
sStartMonth := A_MM + 99
sStartMonth := SubStr(sStartMonth, 2, 2) ; 前月
}

sStartDay = %A_YYYY%-%sStartMonth%-%A_DD%
sStopDay = %A_YYYY%-%A_MM%-%A_DD%


Gui, Font, S12,
Gui, Add, Text, x10 y25 w70 h20 , Start Date :
Gui, Add, Text, x10 y85 w70 h20 , Stop Date :
Gui, Add, Edit, x90 y23 w90 h20 r1 vStartEdit, %sStartDay%
Gui, Add, Edit, x90 y83 w90 h20 r1 vStopEdit, %sStopDay%
Gui, Add, Button, x220 y18 w46 h29 , Start
Gui, Show, x300 y150 h250 w320, Get Future Daily-Trade from TAIFEX
Return

GuiClose:
ExitApp


ButtonStart:
Gui, Submit
stopDate := StopEdit

stYYYY := SubStr(StartEdit, 1, 4)
stMM := SubStr(StartEdit, 6, 2)
stDD := SubStr(StartEdit, 9, 2)

WorkDate = %stYYYY%-%stMM%-%stDD%

; While (stopDate >= WorkDate) {
While (WorkDate <= stopDate) {
if (stDD > SA_Get(Month, stMM)) {
; 換月
stDD -= SA_Get(Month, stMM)
if (stDD < 10) {
stDD += 100
stDD := SubStr(stDD, 2, 2)
}
stMM += 1
if (stMM > 12) {
stMM := 01
stYYYY += 1
} else if (stMM < 10) {
stMM += 100
stMM := SubStr(stMM, 2, 2)
}
}
WorkDate = %stYYYY%-%stMM%-%stDD%

RunWait, %comspec% /c date %WorkDate%, , min
sleep, 1000

if (A_WDay >= 2 and A_WDay <= 6) {
RunWait, %PerlExe% %plGetTick%
RunWait, %PerlExe% %plProc3wTick%
}

stDD += 1
if (stDD < 10) {
stDD += 100
stDD := SubStr(stDD, 2, 2)
}
WorkDate = %stYYYY%-%stMM%-%stDD%
}

RunWait, %comspec% /c date %ToDay%, , min ;; Reset Today DateTime
Return


-

2010年6月17日 星期四

2010年台期所期貨最後交易日檔

2010-06-18

2010台期所期貨最後交易日檔


20100120
20100217
20100317
20100421
20100519
20100616
20100721
20100818
20100915
20101020
20101117
20101215


參考 - 台灣期貨交易所 - 行事曆

-
--
-

2010年5月17日 星期一

perl程式 - 取出今天K線匯入TS

目的:為了即時補上斷線後的資料, 再匯入策略軟體(TS), 將看盤軟體匯出的一分K線, 只取出今天的K線, 且去除不完整的最後一筆(時間沒到)。

輸入 - C:\tmp\1.csv
輸出 - C:\tickhist\txf.csv

再配合 autoit 或 AutoHotKey , 就可以按一下自動補上今日K線資料

today1k.pl 程式


#!C:\Perl\bin\perl.exe

# 取出今天的K線, 去除最後一筆

# 輸入一分K線檔 - C:\tmp\1.csv
# 輸出一分K線檔 - C:\tickhist\txf.csv

use POSIX qw(strftime);
use integer;

$src_k1m = 'C:\\tmp\\1.csv'; # 1mk source file
$tmpfile = 'C:\\tickhist\\tmp001.csv'; # tmp file
$tar_k1m = 'C:\\tickhist\\txf.csv'; # 1mk target file

$today = strftime "%Y/%m/%d", localtime;

print "Process $today Today 1 Minute K To : $tar_k1m.\n";


open(infile, $src_k1m) || die("Cannot open $src_k1m.\n");
open(tempfile, ">$tmpfile");

$rec_no=0;
;

while(my $k1m_record = )
{
chomp $k1m_record;
# $k1m_record =~ s/ //g;
# ($kDate, $kTime, $kOpen, $kHigh, $kLow, $kClose, $kVol)=split(/, / , $k1m_record);
($kDateTime, $kOpen, $kHigh, $kLow, $kClose, $kVol)=split(/,/ , $k1m_record);
($kDate, $kTime)=split(/ / , $kDateTime);

if ($kDate eq $today ){
print tempfile "$kDate,$kTime,$kOpen,$kHigh,$kLow,$kClose,$kVol\n";
$rec_no = $rec_no + 1;
}
}

close(tempfile);
close(infile);

open(tmp_file, $tmpfile) || die("Cannot open $tmpfile.\n");
open(outfile, ">$tar_k1m");

print outfile "Date,Time,Open,High,Low,Close,Vol\n";

for ( $i=1; $i<$rec_no; $i++ ) {
my $tmp_record = ;
print outfile $tmp_record;

# print "$i\n";
}

close(tmp_file);
close(outfile);

# 刪除暫存檔
unlink $tmpfile;



註:
1.其時用附屬工具 grep 來做會更精簡。
2.看盤軟體"康和全都賺"匯出一分K, 會有將近三個月的K線資料。

---

linux 版的 TeamViewer

2010-05-18

TeamViewer 終於有 linux 版了

在金融業使用最多的遠端連線軟體 TeamViewer , 最近出了 linux 版, 這是一個好用的軟體, 現在在 linux 及 mac 下也可以安裝了 , 不必用wine來安裝使用。

http://www.teamviewer.com/ 提供的 linux 版本
  • .deb(debian/ubuntu)
  • .rpm(Red Hat, Fedora, Suse, Mandriva)
  • .tar.gz
下載位置 http://www.teamviewer.com/download/


在 Arch Linux 官方套件 - Arch Linux TeamViewer

---

2010年4月28日 星期三

康和全都賺轉出1分鐘K線

康和全都賺轉(匯)出300筆(近3個月)的1分鐘K線

  1. 開技術分析。
  2. 選一分K線。
  3. 滑鼠右鍵->重新回補資料。
  4. 滑鼠右鍵->瀏覽歷史資料。
  5. 儲存到CSV檔。


註:
  • 資料開頭會多兩行, 第一行瀏覽歷史資料名稱, 第二行是抬頭, 在TS匯入時要先刪除。
  • 若是在盤中轉(匯)出, 要刪除最後一筆, (很可能時間還沒到, 最後一筆還不完整)。

2010年4月27日 星期二

2010年4月20日 星期二

台指期轉檔程式 - part4

因為我比較懶, 用K線轉檔機還要按按鈕, 所以用 CRONw 排程, 自行到期交所抓當日的成交檔, 分類 tick, 再轉K線...

最近在 win XP sp3 下安裝
  • perl - ActivePerl-5.8.2.808-MSWin32-x86.msi
  • CRONw - CRONw_2.0.zip
  • tool - wget.exe unzip.exe
  • perl 轉檔程式
之前的操作忘了, 這次記錄一下。



1. perl
ActivePerl-5.8.2.808-MSWin32-x86.msi
2. CRONw
CRONw_2.0.zip
a.unzip CRONw_2.0.zip
b. CRONw -> C:\CRONw
3. tool.zip
a.unzip put at c:\tool\
b.file
1. c:\tool\wget.exe
2. c:\tool\unzip.exe
3. c:\tool\unzip32.dll
4. tick.zip (perl script)
a. unzip put at c:\tick
b.file
1. c:\tick\prg_perl3w\gettick3w.bat
2. c:\tick\prg_perl3w\proc3w_tick.bat
3. c:\tick\prg_perl3w\gettick3w.pl
4. c:\tick\prg_perl3w\proc3w_tick.pl
5. c:\tick\prg_perl3w\last-trading-days
6. c:\tick\prg_perl3w\movefile2dir.pl
(其他-手動補之前的K線)
7. c:\tick\ext\make_kline
8. c:\tick\ext\win_crontab.txt
9. c:\tick\ext\user_proc3w_tick.ba
10. c:\tick\ext\tick2kline.pl
c. 排程時間 copy c:\tick\ext\win_crontab.txt to c:\CRONw\crontab.txt
(add crontab rule)
27 15 * * 1-5 c:\perl\bin\perl.exe C:\tick\prg_perl3w\gettick3w.pl
29 15 * * 1-5 c:\perl\bin\perl.exe C:\tick\prg_perl3w\proc3w_tick.pl

5. install CRONW modules -> read \INSTALL.txt
a.
installer.pl

6. install CRONw to WinXP Service
a. 安裝服務 - perl cronHelper.pl --install

b. 起動服務 - net start CRON
c. 檢查 -> Cron Service (CRONw) -
net start

時間定在 15:27 以後, 是確保當時可以抓得到今日的成交檔


相關 -  台指期轉檔程式 - part4(懶人包)
 

聯絡表單

名稱

以電子郵件傳送 *

訊息 *