顯示具有 AutoHotKey 標籤的文章。 顯示所有文章
顯示具有 AutoHotKey 標籤的文章。 顯示所有文章

2014年6月3日 星期二

台指期轉檔程式 - part5 (只用AutoHotkey)

AutoHotkey到期交所抓交易檔, 並分拆成Tick及K線 (多天)

寫過幾個 到期交所抓交易檔, 並分拆成Tick及K線 "台指期轉檔程式" - 轉檔程 Linux Bash ~ 轉檔程 part4.

這次是只用 AutoHotkey 及外部程式 unzip.exe 來處理





ahk 程式
  \twfTrade2K.exe  (主程式)
  \Tick2mk.exe
  \Tick2dk.exe
  \chk_Ver.exe   檢查 AutoHotkey 版本

設定檔
  \twfTrade2K.ini (設定檔)

  \last-trading-days (期貨最後交易日檔)

Source code 在 ahk_code 目錄下

程式



相關


2012年1月12日 星期四

AutoHotkey_L 已知的問題

版本 AutoHotkey_L 1.1.05.05 及 1.1.05.06, 檔案要存成UTF-8格式 。

問題:在INI檔中, 用中文Section及Key會抓不到資料, 現ERROR。

用舊版及AutoHotkey 1.0.48.05是正常的, 檔案要存成ANSI格式。

  • ini檔內容
    [期貨商品]
    交易所 = TW
    商品數 = 3

    商品1 = txf




  • 程式碼
    iniFile = ./jcmp.ini
    IfNotExist, %iniFile%
    {
    MsgBox, IniFile %iniFile% not Exist.
    ExitApp
    }

    IniRead, exchange, %iniFile%, 期貨商品, 交易所
    IniRead, pNumber, %iniFile%, 期貨商品, 商品數
    IniRead, fExt, %iniFile%, 期貨商品, 副檔名


    msgbox ahk version:%A_AhkVersion%`n`n商品數=%pNumber% \
    `n副檔名=%fExt%`n交易所=%exchange%

  • 結果出現ERROR
註:這是舊程式, 以前跑起來是正常的。

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


-

聯絡表單

名稱

以電子郵件傳送 *

訊息 *