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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 两个系统相互调用持仓量的问题

   

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


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

主题:两个系统相互调用持仓量的问题

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


加好友 发短信
等级:新手上路 帖子:66 积分:95 威望:0 精华:0 注册:2012/7/13 8:16:36
两个系统相互调用持仓量的问题  发帖心情 Post By:2014/9/30 16:57:47    Post IP:124.133.0.118[只看该作者]

我两个程序 互相调用 对方的持仓量,软件提示调用超过50次,我按照论坛里的办法修改Option.ini文件,参数设置成500,结果就提示超过500,应该如何解决?


第一个程序 VKONG
MA1:MA(C,20);
MA2:MA(C,200);
VAR1:=CROSS(MA1,MA2);
VAR2:=CROSS(MA2,MA1);
HHL:STKINDI('','VDUO.HL',0,22,0);
IF VAR1 THEN BEGIN 
SELLSHORT(1,1,MARKET);
END
IF VAR2 THEN BEGIN 
BUYSHORT(1,1,MARKET);
END
HL:HOLDING;

第二个程序 VDUO
MA1:MA(C,20);
MA2:MA(C,200);
VAR1:=CROSS(MA1,MA2);
VAR2:=CROSS(MA2,MA1);
HHL:STKINDI('','VKONG.HL',0,22,0);
IF VAR2 THEN BEGIN 
SELL(1,1,MARKET);
END
IF VAR1 THEN BEGIN 
BUY(1,1,MARKET);
END
HL:HOLDING;

麻烦看一下,我怎么做才能实现相互调用对方的持仓量?

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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2014/9/30 22:41:33    Post IP:211.100.3.89[只看该作者]

你这么相互调用肯定是不行的,建议你使用全局变量数据库来解决

 

参考

EXTGBDATA( )
EXTGBDATASET( , )

这2个函数,

 

2个公式分别写入自己的持仓量数据, 然后再相互分别读出.

 

记住在公式属性里,勾选这里

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140609131028.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2014/10/1 0:27:57    Post IP:116.22.172.209[只看该作者]

这不就是死循环了吗?建议对程序流程控制方面逻辑还搞不太清楚的,就不要写这么复杂的公式了嘛

 

你那样写相当于我对你说,你先把持仓告诉我,然后我继续下一步,你也根我说,让我把持仓告诉你,然后你继续下一步。。。。没玩没了,永远都运行不完啊


版主评定:好评,获得2个金币奖励好评,获得2个金币奖励
(理由:奖励)
 回到顶部
帅哥哟,离线,有人找我吗?
lc1227
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:66 积分:95 威望:0 精华:0 注册:2012/7/13 8:16:36
  发帖心情 Post By:2014/10/9 8:50:03    Post IP:124.133.0.118[只看该作者]

你好,我试了你给的两个函数,还是搞不明白,能否麻烦把完整的写法写一下?

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


加好友 发短信
等级:新手上路 帖子:66 积分:95 威望:0 精华:0 注册:2012/7/13 8:16:36
  发帖心情 Post By:2014/10/9 8:56:44    Post IP:124.133.0.118[只看该作者]

EXTGBDATA( )
EXTGBDATASET( , )
管理员说用上面两个函数可以解决,但是我搞不明白怎么写,能烦劳帮忙写一下么

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


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

MA1:MA(C,20);
MA2:MA(C,200);
VAR1:=CROSS(MA1,MA2);
VAR2:=CROSS(MA2,MA1);
IF VAR1 THEN BEGIN 
SELLSHORT(1,1,MARKET);
END
IF VAR2 THEN BEGIN 
BUYSHORT(1,1,MARKET);
END
extgbdataset('chicang1',holding);

 
第二个程序 VDUO
MA1:MA(C,20);
MA2:MA(C,200);
VAR1:=CROSS(MA1,MA2);
VAR2:=CROSS(MA2,MA1);
HHL:STKINDI('','VKONG.HL',0,22,0);
IF VAR2 THEN BEGIN 
SELL(1,1,MARKET);
END
IF VAR1 THEN BEGIN 
BUY(1,1,MARKET);
END
extgbdataset('chicang2',holding);
 
 
第一个程序的持仓是extgbdata('chicang1')
第二个程序的持仓是extgbdata('chicang2')


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

客户服务部

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

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

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


加好友 发短信
等级:新手上路 帖子:66 积分:95 威望:0 精华:0 注册:2012/7/13 8:16:36
  发帖心情 Post By:2014/10/9 13:32:11    Post IP:124.133.0.118[只看该作者]

MA1:MA(C,20);
MA2:MA(C,200);
VAR1:=CROSS(MA1,MA2);
VAR2:=CROSS(MA2,MA1);
XX:extgbdata('chicang1');
IF VAR1 THEN BEGIN 
SELLSHORT(1,1,MARKET);
END
IF VAR2 THEN BEGIN 
BUYSHORT(1,1,MARKET);
END
extgbdataset('chicang1',holding);


我这个第一个程序的数据,但是xx并不显示数值,是什么原因?
另外,我下面这种写法
MA1:MA(C,20);
MA2:MA(C,200);
VAR1:=CROSS(MA1,MA2);
VAR2:=CROSS(MA2,MA1);
XX:extgbdata('chicang1');
XY:XX+1;
IF VAR1 THEN BEGIN 
SELLSHORT(1,1,MARKET);
END
IF VAR2 THEN BEGIN 
BUYSHORT(1,1,MARKET);
END
extgbdataset('chicang1',holding);
如果XX读不到数值,那么XY有数值么?XY还有意义么?

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


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

你把读信息写在写信息前面?那能读到信息?

 

MA1:MA(C,20);
MA2:MA(C,200);
VAR1:=CROSS(MA1,MA2);
VAR2:=CROSS(MA2,MA1);
IF VAR1 THEN BEGIN 
SELLSHORT(1,1,MARKET);
END
IF VAR2 THEN BEGIN 
BUYSHORT(1,1,MARKET);
END
extgbdataset('chicang1',holding);

XX:extgbdata('chicang1');

 


此主题相关图片如下:1.png
按此在新窗口浏览图片


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

客户服务部

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

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

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


加好友 发短信
等级:新手上路 帖子:66 积分:95 威望:0 精华:0 注册:2012/7/13 8:16:36
  发帖心情 Post By:2014/10/9 13:38:15    Post IP:124.133.0.118[只看该作者]

哦 我重新问一下这个问题,不好意思

MA1:MA(C,20);
MA2:MA(C,200);
VAR1:=CROSS(MA1,MA2);
VAR2:=CROSS(MA2,MA1);
XX:extgbdata('chicang2');
IF VAR1 THEN BEGIN 
SELLSHORT(1,1,MARKET);
END
IF VAR2 THEN BEGIN 
BUYSHORT(1,1,MARKET);
END
extgbdataset('chicang1',holding);


我这个第一个程序的数据,但是xx并不显示数值,是什么原因?
另外,我下面这种写法
MA1:MA(C,20);
MA2:MA(C,200);
VAR1:=CROSS(MA1,MA2);
VAR2:=CROSS(MA2,MA1);
XX:extgbdata('chicang2');
XY:XX+1;
IF VAR1 THEN BEGIN 
SELLSHORT(1,1,MARKET);
END
IF VAR2 THEN BEGIN 
BUYSHORT(1,1,MARKET);
END
extgbdataset('chicang1',holding);
如果XX读不到数值,那么XY有数值么?XY还有意义么?


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


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

你先把我给你写的chicang2公式放到k线图上,不然公式只是写好但是没有运行没有数据



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

客户服务部

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

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

 回到顶部
总数 13 1 2 下一页