利用一些指令輸出我們需要的歷史資料
所以在輸出程式的時候,格式就可以先排好了。
不需要在Excel改來改去,很方便的。
程式碼如下:
Vars:DataOutput("")
if time[0] < > time[1] then
DataOutput=NumToStr(Year(Date)+1900,0)+"/"+NumToStr(Month(Date),0)+
"/"+NumToStr(DayofMonth(Date),0)+","+MidStr(ctime(Time),1,5)+
","+NumToStr(open,0)+","+Numtostr(high,0)+
","+NumToStr(low,0)+","+NumToStr(close,0)+","+NumToStr(V,0)+",0|n"
FileAppend("C:\DataOutput.txt",DataOutput)
end if
上述程式碼中,粗體在HTS內是同一行
FileAppend那一行是檔案輸出位置,自行修改。
DataOutput是一開始定義的變數,內容就是歷史資料。
格式是:2008/12/29,10:35,4335,4337,4331,4334,397,0
NumToStr:恩,應該是數字轉成字串...
NumToStr(AAA,數字)
AAA看要放什麼就放什麼
數字0的話,恩...數字取到整數位??是這樣嗎??還是有其他意思~
Year(Date),就是把Date中的"年"抓出來的意思。
加上1900,是因為Date的格式是1081229
108就是2008年,所以加1900,讓數字變成2008
Month(Date),和Year(Date)意思一樣,抓月份出來
所以得到的值是12
DayofMonth(date),就是抓日期了
"/" 這個意思是,在年月日之間用 / 這符號區隔
當然在""內,要用什麼符號都可以。記得前後要有 + 這符號就好
MidStr:恩...忘記在哪邊看到的了。
主要是抓一串字元某部份的值。
MidStr(AAA,數字1,數字2)
AAA一樣,要放什麼就放什麼
數字1,指的是,從第幾個字元開始。
數字2,指的是,讀取幾個字元。
所以MidStr(ctime(time),1,5)
就是抓ctime(time)的第一個字元到第五個字元
ctime(time)的格式是,13:45:00
所以抓到的是值是,13:45
再來是輸出,開高低收量,這邊沒什麼好說的。
最後是 0|n
0就是一般的0,|n 是換行的意思。
程式寫完驗證完後。
匯入到任何一個週期的K線都可以。
不過遇到一個問題。
就是在盤中用這程式,同時間的資料會有很多筆。
會出現
2008/12/29,10:35,4335,4337,4331,4334,97,0
2008/12/29,10:35,4335,4337,4331,4334,100,0
2008/12/29,10:35,4335,4337,4331,4334,107,0
.......
之類的,感覺是照著Tick輸出。
就算用了time[0] < > time[1] 也沒辦法。
所以盤後在用吧。
老屎阿~ 這方法是不是比較好阿(茶~)