以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 请教,怎样将行情四价写入一个二进制文件中 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=15373) |
-- 作者:zjfuwen -- 发布时间:2012/8/21 22:30:51 -- 请教,怎样将行情四价写入一个二进制文件中 怎样将行情数据:时间,open,high,low,close,vol实时写入一个二进制的数据文件中呢?望各位指教!!! |
-- 作者:zjfuwen -- 发布时间:2012/8/21 22:33:21 -- 要用到array函数吗 取数据用minutedata对象,是吗?写文件用哪个函数呢? |
-- 作者:rushtaotao -- 发布时间:2012/8/22 8:42:40 -- 输出到文件可以用DEBUGFILE |
-- 作者:guotx2010 -- 发布时间:2012/8/23 8:23:53 -- debugfile是用在后台策略上的,在vba策略中,只能使用filesystemobject对象了,这是我从网上搜索的代码,你自己参照代码就能搞定吧。
Dim fsObj, file \'写 Set fsObj = CreateObject("Scripting.FileSystemObject") Set file = fsObj.CreateTextFile("c:\\test.txt", True) file.WriteLine ("test" ) file.Close \'读 Const ForReading = 1, ForWriting = 2, ForAppending = 8 Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 Dim fileObj, fileInfo, retObj, strInfo, strPath As String Set fileObj = CreateObject("Scripting.FileSystemObject") strPath = "c:\\test.txt" Set fileInfo = fileObj.GetFile(strPath) Set retObj = fileInfo.OpenAsTextStream(ForReading, TristateUseDefault) strInfo = retObj.ReadLine retObj.Close
|
-- 作者:zjfuwen -- 发布时间:2012/8/23 15:24:11 -- 不是c:\\test.txt这类文件,要写到二进制的文件,比如sz000001.day之类的,应该要涉及到循环和数组等的吧,变量有open、high、low、close、vol等 |
-- 作者:guotx2010 -- 发布时间:2012/8/23 16:13:38 -- 去搜一下,vba读写二进制文件,应该有的,变量有open、high、low、close、vol等可以通过对象histroydata返回。 |
-- 作者:zjfuwen -- 发布时间:2012/8/23 20:23:13 -- 由于金字塔不支持type,所以不知道如何建立struct啊 版主有什么好的思路吗???? |
-- 作者:zjfuwen -- 发布时间:2012/8/23 20:25:24 -- 读取MT4历史数据的范例 struct HistoryHeader { int version; // 基础版本 char copyright[64]; // 版权信息 char symbol[12]; // 证券 int period; // 周期类型 int digits; // 小数位数 time_t timesign; // 基础报时的创建 time_t last_sync; // 同步时间 int unused[13]; // 将来应用 }MTHSTHEAD; #pragma pack(push,1) struct RateInfo { time_t ctm; double open; double low; double high; double close; double vol; }MTHST; #pragma pack(pop) MTHSTHEAD hsthead; MTHST kline; CArray<MTHST, MTHST > akline; CFile file; if( file.Open( _T("USDCHF1440.hst"), CFile::modeRead ) ) { file.SeekToBegin(); file.Read( &hsthead, sizeof(MTHSTHEAD) ); while( sizeof(MTHST) == file.Read( &kline, sizeof(MTHST) ) ) { akline.Add(kline); } file.Close(); } |
-- 作者:zjfuwen -- 发布时间:2012/8/23 20:27:13 -- 以上是希望写入的二进制数据文件的结构 |