欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 有关ACCESS数据库操作问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4408人关注过本帖平板打印复制链接

主题:有关ACCESS数据库操作问题

帅哥哟,离线,有人找我吗?
tdk1
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:38 积分:82 威望:0 精华:0 注册:2011/10/13 23:29:08
有关ACCESS数据库操作问题  发帖心情 Post By:2014/5/8 15:44:53 [只看该作者]

因有些模型数据计算量大,影响交易速度,因而设想通过一台计算机计算结果存入数据库,另一台电脑读取结果进行判断下单.

以计算布林通道为例:

建立数据库CTZB公式:

 

DATABASE('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\asset.mdb');
DBEXECUTE('create table ctzb(stockdate date,ma4680 double,up4680 double,low4680 double)');

写库公式如下:

DATABASE('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\asset.mdb');
stdp30:=2*stdp(close,4680);
ma30:ma(close,4680);
up30:=ma30+stdp30;
down30:=ma30-stdp30;
T0:=NUMTOSTR(DYNAINFO(207),0);
T01:=STRCAT(NUMTOSTR(hour,0),':');
T02:=STRCAT(NUMTOSTR(minute,0),':');
T1:=STRCAT(STRCAT(T01,T02),STRRIGHT(T0,2));
D0:=NUMTOSTR(DATE,0);
D01:=STRCAT('20',STRMID(D0,2,2));
D02:=STRCAT('-',STRMID(D0,4,2));
D03:=STRCAT('-',STRMID(D0,6,2));
D1:=STRCAT(STRCAT(D01,D02),D03);
DAY11:=STRCAT(STRCAT(D1,' '),T1);
DAY01:=STRCAT(char(39),DAY11);
DAY1:=STRCAT(DAY01,char(39));
if ma30<>ref(ma30,1) or up30<>ref(up30,1) or down30<>ref(down30,1) then begin
DBEXECUTE('insert into ctzb(stockdate,ma4680,up4680,low4680) values(cdate('&day1[DATACOUNT]&'),'&numtostr(ma30[DATACOUNT],3)&','&numtostr(up30[DATACOUNT],3)&','&numtostr(down30[DATACOUNT],3)&')');
end
DRAWTEXTEX(1,1,50,0,''&day1[DATACOUNT]&'',colorred);

 

读库公式:

DATABASE('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\asset.mdb');
//检索数据库表
DBTABLE('Select * From ctzb Order By StockDate');
//读取STOCKCLOSE字段数据
mid:DBVALUE('ma4680');
up:DBVALUE('up4680');
DOWNVOL:DBVALUE('low4680');

 

问题:1.写库时有很多相同的记录无法过滤.

       2.读库要约5秒钟才会刷新一次,放回同一台机子的金字塔也是这样.

看看能否解决,万分感谢!!

 


 


 回到顶部