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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 需要输出一个txt文本,应该怎么写?

   

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


  共有8768人关注过本帖树形打印复制链接

主题:需要输出一个txt文本,应该怎么写?

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


加好友 发短信
等级:论坛游侠 帖子:406 积分:196 威望:0 精华:0 注册:2013/1/22 18:44:07
  发帖心情 Post By:2016/6/1 16:54:52    Post IP:14.124.110.147[只看该作者]

能不能做个计数器,用计数器来控制输出信号,避免重复

 回到顶部
帅哥哟,离线,有人找我吗?
fly
  32楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2016/6/1 17:31:27    Post IP:180.169.30.6[只看该作者]

仔细看了一下你的需求, 

一根K线只输出txt一次,能做到”,注意:以下代码仅适用于后台

 

用全局变量来控制的,仅为示例,需要您根据自己的情况,尝试重新编写

【金字塔使用技巧】----后台轮询,如何记录变量在最后一周期内的最大最小及开盘值

ma5:=ma(c,5);

if islastbar then

 begin

 //在新一根K线上记录初始化

  if barpos>extgbdata('t') then

   begin

   extgbdataset('FIR',ma5);//记录开盘值

   extgbdataset('MAX1',ma5);//记录最大

   extgbdataset('MIN1',ma5);//记录最小

   extgbdataset('t',barpos);

   end

  

  if barpos=extgbdata('t') then

   begin

   if ma5>extgbdata('MAX1') THEN extgbdataset('MAX1',ma5);

   if ma5<extgbdata('MIN1') THEN extgbdataset('MIN1',ma5);

   end

  end



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  33楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/6/1 17:31:31    Post IP:180.169.30.6[只看该作者]

if 开多条件 and holding=0 then begin
    开多语句;
    if extgbdata('bj')=0 then begin

      debugfile('d:\test.txt',numtostr(t1,0)+'-'+numtostr(t2,0)+'.'+numtostr(t3,0)+' [开多=] ['+stklabel+'] [%.0f] [tpif01]',entervol);

      extgbdataset('bj',1);
end

if dynainfo(207)= time then extgbdataset('bj',0);

 

差不多是这个意思



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
leelatan
  34楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:406 积分:196 威望:0 精华:0 注册:2013/1/22 18:44:07
  发帖心情 Post By:2016/6/2 9:35:56    Post IP:14.124.105.159[只看该作者]

把这段代码加进去之后,发现公式编译不了

第 48 行,使用 EXTGBDATA 函数应该注意可能会带来冲突的问题。
第 50 行,使用 EXTGBDATASET 函数应该注意可能会带来冲突的问题。
第 52 行,使用 EXTGBDATASET 函数应该注意可能会带来冲突的问题。



是什么问题?

这个全局变量需要在前面做声明吗?

 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  35楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/6/2 9:37:27    Post IP:180.169.30.6[只看该作者]

编译不了?这只是一个提示,不会编译不了


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
leelatan
  36楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:406 积分:196 威望:0 精华:0 注册:2013/1/22 18:44:07
  发帖心情 Post By:2016/6/2 9:58:58    Post IP:14.124.105.159[只看该作者]

if dynainfo(207)= time then extgbdataset('bj',0);

这句话是放在end的外面?

那平多,平空,开多,开空的四个end的后面都要放这句吗?

 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  37楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/6/2 10:02:31    Post IP:180.173.198.10[只看该作者]

1.是的end外面

2.都要,但是变量名要改改, 把bj改成 bj_kd;bj_kk;bj_pd;bj_pk类似这样的



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
leelatan
  38楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:406 积分:196 威望:0 精华:0 注册:2013/1/22 18:44:07
  发帖心情 Post By:2016/6/2 10:26:45    Post IP:14.124.105.159[只看该作者]

if 开多条件 and holding=0 then begin
    开多语句;
    if extgbdata('bj')=0 then begin

      debugfile('d:\test.txt',numtostr(t1,0)+'-'+numtostr(t2,0)+'.'+numtostr(t3,0)+' [开多=] ['+stklabel+'] [%.0f] [tpif01]',entervol);

      extgbdataset('bj',1);
end

if dynainfo(207)= time then extgbdataset('bj',0);


这一段的后面应该还要加一个end,对应红色的begin,对吧。



另外,如果开多本身有几个语句,那么是不是每一个开多语句的变量名也要改,比如bj,bj1,bj2.。。。


 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  39楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/6/2 10:35:50    Post IP:180.173.43.114[只看该作者]

1编译时少了个end吗?少了就填上

 

2

是的,要多个分别标识出每个开多



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
leelatan
  40楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:406 积分:196 威望:0 精华:0 注册:2013/1/22 18:44:07
  发帖心情 Post By:2016/6/2 10:58:38    Post IP:14.124.105.159[只看该作者]

我先把代码加进去试试效果。

还有一个问题请教:

我的策略一般是加载在连续合约上面,比如RB00

但是写进txt的时候,我希望代码能够自动替换成当前的主力合约,比如RB10

2016-05-30 11:18:30.024    20160530-11.18 [平多]= [RB00] [1] [tpif01]
2016-05-30 11:18:30.025    20160530-11.18 [开空]= [RB00] [1] [tpif01]

就是上面的这个品种代码,自动替换成当前主力合约。这个怎么写?

 回到顶部
总数 60 上一页 1 2 3 4 5 6 下一页