以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4)
---- 两个系统相互调用持仓量的问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=70621)
|
-- 作者:lc1227
-- 发布时间:2014/9/30 16:57:47
-- 两个系统相互调用持仓量的问题
我两个程序 互相调用 对方的持仓量,软件提示调用超过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
-- 发布时间:2014/9/30 22:41:33
--
你这么相互调用肯定是不行的,建议你使用全局变量数据库来解决
参考
EXTGBDATA( ) EXTGBDATASET( , )
这2个函数,
2个公式分别写入自己的持仓量数据, 然后再相互分别读出.
记住在公式属性里,勾选这里
此主题相关图片如下:qq截图20140609131028.jpg
![dvubb 图片点击可在新窗口打开查看](UploadFile/2014-9/201493022412796765.jpg)
|
-- 作者:klc
-- 发布时间:2014/10/1 0:27:57
--
这不就是死循环了吗?建议对程序流程控制方面逻辑还搞不太清楚的,就不要写这么复杂的公式了嘛
你那样写相当于我对你说,你先把持仓告诉我,然后我继续下一步,你也根我说,让我把持仓告诉你,然后你继续下一步。。。。没玩没了,永远都运行不完啊
|
-- 作者:lc1227
-- 发布时间:2014/10/9 8:50:03
--
你好,我试了你给的两个函数,还是搞不明白,能否麻烦把完整的写法写一下?
|
-- 作者:lc1227
-- 发布时间:2014/10/9 8:56:44
--
EXTGBDATA( ) EXTGBDATASET( , ) 管理员说用上面两个函数可以解决,但是我搞不明白怎么写,能烦劳帮忙写一下么
|
-- 作者:jinzhe
-- 发布时间:2014/10/9 9:05:11
--
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\')
|
-- 作者:lc1227
-- 发布时间:2014/10/9 13:32:11
--
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
-- 发布时间:2014/10/9 13:35:22
--
你把读信息写在写信息前面?那能读到信息?
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
![dvubb 按此在新窗口浏览图片](UploadFile/2014-10/201410913352161764.png)
|
-- 作者:lc1227
-- 发布时间:2014/10/9 13:38:15
--
哦 我重新问一下这个问题,不好意思
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
-- 发布时间:2014/10/9 13:55:49
--
你先把我给你写的chicang2公式放到k线图上,不然公式只是写好但是没有运行没有数据
|