autohts.exe 此程式,不保證任何正確性,所有責任使用者自負,程式很短,很髒,沒有設定,沒有視窗,不需 .NET,單一檔案,沒有商品,或是口數的限制,要跑幾個信號,就跑幾個,保證沒後門,哈哈,使用後,很滿意想捐錢贊助,請跟我連絡,下載點 http://autohts.googlecode.com/files/autohts.exe
Why This
好像一直找不到免費的,或是單純一點的,所以自己寫一個,程式沒有幾行,用日盛期貨下單API 下單,執行前,需先執行 C:\JihSun\HTS2\APITradeMgr.exe
然後,要複製 C:\JihSun\HTS2\Dll\HTSAPITradeClient.dll 到下單機程式的目錄,程式執行時,如果抱怨沒有 MSVCP71.dll,自行下載 http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71,如果是XP可放在 C:/WINDOWS/SYSTEM32/ 下面即可
執行方式
autohts.exe 訊號檔名
寫成一個批次檔就可以了,要是不知道批次擋怎麼寫,我也有範例
批次檔寫作
http://terryh.tp.googlepages.com/auto.bat,請自己用小作家就可以看內容了,依樣劃葫蘆就好,我的範例是下單機程式,和訊號檔都在 C:\JihSun\ 下面,然後,執行這一個批次檔就可以了
,auto.bat 的內容只有一行,所以我的是 C:\JihSun\autohts C:\JihSun\signal.txt,執行完自己的 auto.bat 後,他會停留在監控的視窗當中,然後,一有訊號,會有下單資料出現
HTS 程式結尾,加上寫訊號的程式碼,我附上我的給您參考
IF date = lastcalcdate and time = LastCalcTime THEN
FileDelete("c:\JihSun\signal.txt")
FileAppend("c:\JihSun\signal.txt",(NumToStr( Date,0)+","+NumToStr(Q_time,0)+",0,0,您的日盛帳戶碼,MXF,0,"+NumToStr(MarketPosition,0)))
END IF
程式不會轉倉,要自己處理
訊號檔格式
Date,time,contractdate,lots,acount,contractname,price,position
Date 日期
time 時間
contracdarte 合約月份,ex: 200902,或是數字 0 代表近月
lots 下單的口數,或是數字 0 代表 1 口
account 您的日盛帳號
contractname 合約名稱 TXF(臺股期貨),EXF(電子期貨),FXF(金融期貨),MXF(小型臺指期貨),也就是 API支援的都可以
price 價位,數字0 就是市價(FOC),0以外的就是限價(ROD)
position 倉位,數字0 空手,1 多,-1 空
訊號檔範例
1090206,134459,0,0,000-1234567,MXF,0,0
這就是 2009-02-06 13:44:59 近月合約 口數預設 帳號000-1234567 小台指 市價單 空手
更新紀錄
2009-03-17 修正沒有訊號檔時,不會跳出程式,只是等待,新增程式版本資訊,再命令列下執行,不給訊號檔,就會列出說明及版本,現為V0.7
2009-03-11 修正程式在沒有訊號檔時候,不自動新建訊號檔,所以訊號檔一致由HTS 產生,請網友重新下載測試
2009-03-03 感謝網友 mmk 測試,發現在 HTS 4000 裡,輸出訊號檔,FileDelete 時,程式判斷錯誤,fixed
2009-03-02 感謝網友 mmk 測試,發現一開始沒有 lock file 的問題還再,已修正,我遜掉了
2009-02-19 修正,近月單,判斷月份錯誤
2009-02-18 修正成每次程式啟動,都會把lock file 清除,所以要執行時,請先同步自己的倉位,合程式同步,這樣更適合當沖
2009-02-10 修正一開始沒有 lock file 的問題
2009-02-09 First upload
Tips
程式會自動產生一個和訊號檔同名附檔名為 lock 的參考檔來紀錄狀態,兩個檔案內容不同,就是倉位改變,只有判斷 position,另產生一個和訊號檔同名附檔名為 log 的紀錄檔
74 則留言:
有圖文使用介紹嗎?
不會用耶
新手
autohts.exe 下載只有這一個耶
按下去,沒東西,不知道怎嗎使用
可以圖解,說明嗎?
感謝
新手
要執行時,就是用文中說的訊號格式
然後,另外用寫一個批次檔,執行器起來
像我的批次檔名
auto.bat
內容就只有這樣
C:\JihSun\autohts C:\JihSun\signal.txt
signal.txt 就是我的訊號檔
然後,這一個 auto.bat 也用 windows 的排程去執行就可以了
不過,這個程式可能還有問題,我也是邊用,才發現,所以風險很大,可以看我的這一篇文章下面,有更新的說明,有更新記得要重新下載
請問一下
日盛帳號是指什麼??
是只台灣期交所交易帳號嗎?!
還是只是代表性的文字而已?!
感謝大大!!
明天小弟要來首次實驗程式交易
希望用HTS+大大的程式能順利成功!!^^
有什麼試用結果在跟大大交流~~
感謝大大!!
匿名的這一位大哥
日盛帳號是指,在執行
C:\JihSun\HTS2\APITradeMgr.exe
後,在右上角,你可以選那一個日盛的期貨帳號,一般人只有一個,不過,你可以在您的下單程式裡指定,所以這一個程式,才完全不需要視窗去設定,可以把所以的設定,都寫在訊號檔裡,要下不同的商品,記得輸出的訊號檔,要改,文裡有提到,MXF,是小臺,TFX,是大台
大大您好!!
今天我早上開啟HTS=>4000程式交易=>執行程式=>APITradeMgr=>選擇正式下單=>輸入密碼=>勾選關閉確認視窗=>執行AutoHts
會出現一個畫面閃過去就沒了?!
並且看常駐程式也無AutoHts
這樣是否正常?!
因為本日三個訊號進出,signal.txt有記錄到,但卻沒有送單給APITradeMgr
可以幫小弟說明一下哪裡錯誤嗎?!
另外下單機資料夾下面有兩個signal.txt是否正常?!
麻煩您了!!<(_ _)>
signal兩個分別為
signal.log
signal.txt
mmk 您好
我文中有的到,直接執行 autohts ,程式並不知道,要讀哪一個訊號檔
你必須,把他寫成一個批次檔,文中有一個 auto.bat 的範例,直接下載去看看,直接用文字檔修改的工具,改成符合您的情形,我執行完,auto.bat 以後,他會停留在監控的視窗當中,然後,一有訊號,會有下單資料出現
Terry大
我有執行BAT檔
並且有指向正確的位置
不過他只會執行完立即關閉CMD視窗
我會在找尋什麼原因!!
謝謝大大說明
相信有些人也為此感到困擾~
如有新的消息再跟大大請教!
P.S今天要是真的有下單會虧快50點= =
搜尋網路資料
說明需要先執行XP在執行程式
才不會執行完自動關閉
以下為執行後的敘述內容
"
C:\>C:\JihSun\trading\autohts C:\jihSun\trading\signal.txt
Traceback <most recent call last>:
File "autohts.py", line 185, in <module>
File "autohts.py", line 175, in dellock
WindowsError: [Error 2] The system cannot find the file specified: 'c:\\JihSun\\trading\\signal.lock'
C:\>
"
感覺起來好像不是正確的結果>"<
還請大大說明!!
大大您好~
目前得到的結論為
因為找不到signal.lock
導致autohts判斷錯誤
是否與您之前修正每次開啟皆清除lock檔有關?!
請問大大平常下單機資料夾中是否有signal.lock檔?!
mmk 您好,
你可以看一下,文裡的更新紀錄,很早就修正了,請重新下載新的 autohts.exe 檔案,您可以 APITradeMgr.exe,先用測試的模式,然後,手動改訊號檔的倉位,1,0,或是 -1,看會不會下單,就知道有沒有問題了
大大好~
經實驗證明
剛剛下載的檔案Autohts.exe
首次執行後
並不會在下單資料夾中產生signal.lock
因此執行後才會產生找不到檔案的現象
手動自行建立signal.lock
再手動改變signal.txt後
確實可以成功丟到APITradeMgr進行下單
因此,小弟的結論是
1. 大大可能要再試一下,是否首次執行會出現signal.lock這個檔案
2. 或者在使用說明中告知下載者,需要再下單機資料夾中,自行建立signal.lock
以上是目前試用心得!!
請問是否與大大的認知有落差?!
還是很感謝大大提供免費下單機!!!
<(_ _)>
我了解了,這是一個 bug ,我會修正他,修好,會在更新資料
你自己值準備好了後,就要靠自己的交易策略了,一切保重,要加油
mmk,您好
你說的bug,我已經修好了,可以下載最新的了,謝謝啦
感謝大大!!
現在可能先做空氣單
請問大大,
我在一開盤
先使用最原本signal.txt的內容
當作signal.lock的內容
這樣交易會不會出現錯誤?!
也祝大大順利賺錢喔!!
每一次重新執行 autohts.exe,他都會重新同步,signal.lock 和 signal.txt 一樣,所以你的程式倉位要跟實際的一樣
大大您好:
我今天有新發現
大大您好:
我今天有新發現
當我用非股市時間在測試軟體時
我改變Singal.txt檔的確可以正常送出信號至APITradeMgr進行買賣
不過今天早上我同樣使用此程式
放著執行
卻發現他會出現錯誤
錯誤訊息如下
Traceback <most recent call last>:
File "autohts.py", line 189, in <module>
File "autohts.py", line 93, in run
File "autohys.py", line 93, in checksignal
ValueError: invalid literal for int<> with base 10: ''
這種現象..會出現於只要HTS4000更新訊號
送至singal.txt時
就會發生
並且不再監控
可能還要請大大研究看看
以上是什麼問題
麻煩您了<(_ _)>
mmk 您輸入的訊號格式有問題?
我內文有範例
大大您好
我是直接複製您的範例
貼到我程式最後面
並且若是非股市運作時間
產生檔案也都正常!
只有HTS4000一直再更新的時候
才會出現這些問題
請問大大在一般股市上線時間執行都正常嗎?!
我又來打擾大大了= =
剛剛我幫您做了Debug
我開啟autohts監控
當我在此時將signal.txt刪除
馬上程式就會出現剛才打的那些
意思就是大大提供的檔案
會一直監控signal.txt的改變
由於寫在交易程式中的
FileDelete("c:\JihSun\signal.txt")
會瞬間產生錯誤導致終止
因此大大可能要想一下..
是不是能直接覆寫前一個signal.txt
或者是在autohts中加入
判斷signal.txt不存在時
忽略而不進行動作
這樣應該可以避免這個問題產生!!
大大好
經下午的試驗
如果大大不改程式(忽略FileDelete)
那麼有一個可以修正的辦法
就是將加在程式最後語法變成
IF date = lastcalcdate and time = LastCalcTime THEN
FileAppend("c:\JihSun\signal.txt",(NumToStr( Date,0)+","+NumToStr(Q_time,0)+",0,0,XXX-XXXXXXXX,MXF,0,"+NumToStr(MarketPosition,0)) + "|n")
少了FileDelete
多了 + "|n"
看起來就可以正常工作
只是要等明天線上試看看
mmk,
我執行都正常耶,我是跑五分鐘K線,一般五分鐘 HTS 4000 才會去更新才對,不過你說的我會想想
mmk,
我已經更新程式了,問題應該可以解決了,謝謝您的分析,還有幫忙 debug
;-)
剛剛下載來用~
已經沒有問題囉!!
明天早上再來跑看看就知道了!
我才要感謝大大
如果沒有大大就沒有免費的下單機>"<
如果真的可以用我的程式賺到錢
我一定會贊助大大^^
再次感謝大大提供這麼好用的軟體<(_ _)>
大大..今早試驗
出現以下訊息
Traceback <most recent call last>:
File "autohts.py", line 194, in <module>
File "autohts.py", line 188, in run
File "autohys.py", line 75, in checksignal
IOError: [Errno 13] Permission denied: 'C:\\JihSun\\signal.txt'
一切在離線都很正常..
但是進入線上就不行了>"<
另外我發現我的訊號
不是一次分鐘K才跳一次
我看過訊號輸入是每秒都有資料寫進去!
PS 我的blogger有我的MSN
mmk,您好,
看起來像是權限的問題,,程式必須對你的 signal.txt 有讀寫的權限,我倒是沒有觀察是不是每一秒都改變,理論上,輸出時用,這個條件包住,不就是要在目前時間到了 this bar 完成的時候,才輸出嗎?
IF date = lastcalcdate and time = LastCalcTime THEN
輸出訊號
END IF
不過,這些問題,我都沒有耶,你先看看權限是不是有什麼問題,也許是 HTS 你安裝的時候,選擇只有那一個安裝者可以用,所以權限上,由 HTS 4000 寫入的訊號檔,別人不能讀,讀不到的話,程式會試著建立一個新檔
大大你好,
想下當沖單,程式碼要怎麼改?
jeff,您好
下當沖單,不用改壓
大大你好,
我想把DayTrade設成Y,保證金就可以減少了。
大大你好,
不知道程式碼如何改?才能把DayTrade設成Y?
大大你好,
我同時開啟二個下單機,在收盤時間測試模擬單很正常,可是在今天早上開盤後,發現有一個下單機的dos視窗關閉,另一個下單機正常,該如何查詢問題?
jeff大..
先用cmd執行
再輸入bat裡面的指令
他如果錯誤就會出現出錯誤訊息
看看你的錯誤訊息是不是跟我一樣
目前看起來好像是因為權限問題!
MMK大大
權限問題的話,該如何處理?
如果是的話...
我還沒想到辦法= =
實驗各種辦法中
Jeff,您好
現在程式沒有辦法下當沖單,我當設計的時候,就不想讓人下當沖單,減少保證金了,我的用意是,已經期貨交易了,風險已經不小了,所以沒有把這個設計近程式裡,請見諒
mmk,您好
我有照您的觀察去看,確實是每一秒都有在改變,不過,我想你的問題,應該還是權限的問題,要不要先把原本的 signal.txt 砍了,用執行 HTS 的程式,按 F7 去產生
jeff,您號
不同的策略,訊號檔一定要不同名字,不一定要叫 signal.txt,可以隨你高興,只是執行的 bat 檔,要對應
期待 圖文 說明檔 中
感謝
大大你好
我二個策略有各別的訊號檔,不知道問題在哪?
jeff,您好
你可以進入 cmd 的模式,直接執行,有錯誤,也不會跳出來,就可以看到錯誤訊息了
大大你好
我要run二個訊號,是否需要二個不同的autohts.exe,例如autohts1.exe 、autohts2.exe ?
Hello Jeff
一般跑兩個策略,就是兩個批次檔,我舉例
一個用 auto1.bat,一個 auto2.bat
auto1.bat 的內容是
auto2.bat是
C:\JihSun\autohts C:\JihSun\signal_1.txt
auto2.bat 的內容是
C:\JihSun\autohts C:\JihSun\signal_2.txt
然後兩個 auto1.bat 和 auto2.bat 都執行,就是跑兩個策略了
不過,你個策略程式,要產生這兩個訊號檔 signal_1.txt 和 signal_2.txt
請問一下jeff大
您可以順利使用此程式嗎?!
因為我在使用上會出現一些問題
因此想要確認是否為個人因素>"<
Terry大大~
目前使用會出現
Sorry, no signal file xxx.txt
但是確認檔案存在..
不知道其他人有沒有同樣問題
還是都執行正常>"<
MMK,您好
依你的訊息來看,你真的是少了訊號檔,請完全複製我的 bat 檔去試,程式的訊息說你少了 xxx.txt,就是他不到,可以在命令列,用下面的指令直接執行嗎?
C:\JihSun\autohts C:\JihSun\signal.txt
C:\JihSun\autohts 就是下載我的 autohts.exe
C:\JihSun\signal.txt 就是你的訊號
記得完全照抄,要給完整路徑,可否
Terry大~
我解決問題了!!!
我將FileDelete砍掉後
發現他寫入的時候是只要有資料進來
就會進行一次程式判讀
因此每一秒大概都會有三五筆資料以上
到至一分鐘內就會有上百筆資料刪除與寫入
因此我同樣有FileDelete
並將前面的條件Time = LastCalcTime
改成 Time != LastCalcTime
他就不會每一秒都寫入,而改在每分鐘末寫入
這樣執行大大的程式下模擬單都就可以正常
並且沒有再出現任何錯誤訊息
並且本來判讀就是以每分鐘結束才合理
以上是我個人經驗
有錯也請給予指正!!
給其他人參考看看!!^^
MMK,您好
可以解決最好,不過別人的訊號檔,也都是這樣產生,應該不會有問題,我是日上收費以後,就自己寫來用,也都沒有讀訊號的問題,所以你的問題,才比較難 debug,因為,我無法複製錯誤,不過,可以用就好
大大你好
我今天測試模擬單,在log檔裡發現下多單後又馬上平倉耶?
2009-03-13 12:21:00 倉位改變 => 買進
2009-03-13 12:21:01 倉位改變 => 多單平倉
2009-03-13 12:22:04 倉位改變 => 買進
2009-03-13 12:22:05 倉位改變 => 多單平倉
Position Change
BUY
Market=F,Account=000-1234567,ContractName=MXF,ContractDate=200903,OpenCloseAuto=
A,BuySell=B,Lots=1,OrderType=M,Price=0,FokIocRod=I,DayTrade=N
Position Change
EXITLONG
Market=F,Account=000-1234567,ContractName=MXF,ContractDate=200903,OpenCloseAuto=
A,BuySell=S,Lots=1,OrderType=M,Price=0,FokIocRod=I,DayTrade=N
Position Change
BUY
Market=F,Account=000-1234567,ContractName=MXF,ContractDate=200903,OpenCloseAuto=
A,BuySell=B,Lots=1,OrderType=M,Price=0,FokIocRod=I,DayTrade=N
Position Change
EXITLONG
Market=F,Account=000-1234567,ContractName=MXF,ContractDate=200903,OpenCloseAuto=
A,BuySell=S,Lots=1,OrderType=M,Price=0,FokIocRod=I,DayTrade=N
帳號已經被我改過。
Jeff,您好
近期會再有新的更新檔,會修改為更嚴謹的判斷,有時間會更新
Terry大大~
好久沒來留言
你的程式已經完全沒有問題了!!
只要照著你上面的指示
不需變更
完全可以正常運作
非常感謝!!!!!
不過我一天下來大概會跳出三四十個no file
但不影響交易^^
再次感謝您<(_ _)>
還記得去年329療傷網聚的種種感動嗎?
一群關心台灣的部落客因而能相互扶持、鼓勵並向前邁進。
今年328,邀請所有關心台灣的部落客再聚首,
一起參與這場跨越虛擬實境的盛會,用愛與熱情相挺台灣、繼續前行!
活動內容請上 台灣部落格協會http://tba.tw/news/?newsinfo&id=51
我也趕緊測試一下
版主您好
我有下載您的下單作使用測試
目前有個問題 就是 訊號出現後
送單至API會出現
[抱歉 請輸入商品年月]的錯誤訊息
(送單狀態0999)
在signal.txt出現的signal為
1090409,93033,200904,1,000-0996665,TFX,0,1
而我在交易策略中使用的產生訊號格式為
FileAppend("c:\JihSun\signal.txt",(NumToStr( Date,0)+","+NumToStr(Q_time,0)+",200904,1,000-0996665,TFX,0,"+NumToStr(MarketPosition,0)))
可否請您協助我看一下是否有何設定不妥之處? 感謝!
SAM, 您好
我有試你的訊號,也可以直接下耶
如果你是當沖單的話
要不要直接用我的文章的訊號程式去改就好
IF date = lastcalcdate and time = LastCalcTime THEN
FileDelete("c:\JihSun\signal.txt")
FileAppend("c:\JihSun\signal.txt",(NumToStr( Date,0)+","+NumToStr(Q_time,0)+",0,0,000-0996665,TFX,0,"+NumToStr(MarketPosition,0)))
END IF
Terry兄
感謝您的下單機 簡單 好用.
請教一下...多口單要怎麼設定?
版主您好
我是上面留過言的SAM 承蒙你的指導
不過還是會出現一樣的錯誤訊息...
想請教您
您是怎樣去對我所PO上的訊號作測試?
也許你我一些環境設定有所差異
我在我這端作測試也許會是比較有效的方式
也節省你的時間 如果可以的話
能請您讓我知道一下如何在非交易時段
對傳到API的訊號作測試嗎??
感謝!
匿名,您好,
訊號檔的第四欄,lots 就是口數,
Date,time,contractdate,lots,acount,contractname,price,posit
預設給零時,就會下一口,其他的數字,是多少就是幾口,產生訊號時,指定就好,只要帳戶的錢夠
Sam,您好
我是把日剩下單的api 選成模擬單後,直接把你的訊號,複製,貼到我的訊號檔,改帳號為我的帳號,然後按儲存,就可以看到,API 送出訊號,也可以先不要勾,關閉確認視窗,然後真實下單時間,測試,日盛彈出確認視窗,再按取消就好
不會用怎嗎打開autohts那個檔案,
黑色畫面,一下就會消失了.
沒打開api,請問該如何使用
了解~ 感謝版主的指導!
SAM,您好
不好意思,台指期的 contractname 應該是 TXF
Terry大您好~
最近有網友問我
他在使用加碼單的時候
(HTS程式交易設定多口進出)
只有非加碼單會送到API
加碼單不會
請問您有這樣的狀況嗎?!
或者有沒有什麼地方需要注意?!
MMK,
下單機單純只有下單而已,不會判斷口數的增減,只有多空,當時訊號給的口數是多少,就下幾口
版主你好,感謝你提供這麼好用的工具,非常感謝!
有個問題想請教,您提供的下單機是抓取position 倉位,數字0空手,1多,-1空的變化配合lots來下單,未來是否有機會改成position可以為-n,...-3,-2,-1,0,1,2,3,4,5....,n
改為直接抓position的數量跟正負來下單謝謝!!
Date,time,contractdate,lots,acount,contractname,price,position
Tim.H 您好
我想這樣的修改在加減碼的程式非常好用,
但也會增加出錯的機會,
我會考慮一下,
可能是我的交易程式太肉腳了,
我還沒有想到比較好的加減碼方法
謝謝您的建議
雲大你好 請問您這下單機相容康和的HTS相容嘛?
有想從日盛換到康和煩請解惑,感謝.
catalog 我是沒有用過康和,不過我也有點想換倒別的地方
如果,康和的可以像HTS一樣寫程式,我也想去開戶試試看,不然日盛新的規定是一個月50口,雖然我也是有超過很多,不過,不滿的時候,不出聲,日盛會更得寸進尺
TerryH 版大:
是阿 一個月50口平均已經超過一天一趟 到時後不足可能要下些小台來補口數, 康和也是HTS叫做康和e閃電, 我到時後來試試看好了. 目前日盛給的手續費還算便宜,不過朋友的朋友再拉客,手續費更便宜一些. 雖然有省但是要是不能程式下單那也只是省錢但是沒得到方便. 日盛那個50口下個月開始實施. 也許還有變數吧....
祝操作順利.
您好, 我最近也想來研究自動下單, 不知是否可以提供原始程式碼讓小弟學習一下? 謝謝.
請問,如果要下選擇權,商品代號是什麼呢 買方賣方 買權賣權 與履約價怎麼表示,
感謝您~~
TO TerryH:
實在太感動,夜盤執行AUTOHTS 竟然成功地賣空,後來又成功地平倉。
我在最近WIN7 換成 WIN10,加上日盛又被富邦合併,轉成富邦API,日盛交易模組的下單機也一直很不穩定
,無法成功地下單,我只是要基本功能的下單機,幾年前下載的 AUTOHTS.EXE 竟然還可運作,太感動人。
雖然嘗試使用 HTS + 其它下單軟體,也無法成功地下單,新的富邦API程式配合 HTS 也可控制一日下單總量及一分鐘下單總量,再執行AUTOHTS ,也不是非常陽春,再次感謝 TerryH 。
FROM CCT
張貼留言