Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共13 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:【12.30帖子恢复】eric917 关于初始化全局变量

1楼
RogarZ 发表于:2013/12/30 17:37:56
请问一下我这样每天初始化全局变量正确吗?
IF TIME>=090100 AND TIME<091500 THEN
BEGIN

EXTGBDATASET('TOTAL_BVOL',0) ; //当天日内多头总持仓
EXTGBDATASET('TOTAL_SVOL',0) ; //当天日内空头总持仓
END

但是运行的时候没有没有帮我归零,请问是为什么呢?
2楼
RogarZ 发表于:2013/12/30 17:38:38

【jinzhe回复】

运行在股指上?

改成

currenttime>091501 and currettime<091515

 

金字塔3.01版对全局变量做了调整.

建议你使用 Virable变量, EXTGBDATASET这种超全局变量数据库不要用在这个地方

3楼
RogarZ 发表于:2013/12/30 17:39:28

【eric917 回复】 

 

意思就是0915之前是不能初始化全局变量咯?


我下面还有一个语句想在开盘的一刻立即开一行多单和一张空单

下面这样写可以实现吗?
IF TIME>=091500 AND TIME<=091505 AND EXTGBDATA('BKV_G0')=0 THEN
BEGIN
TBUY(1,SS,MKT);
EXTGBDATASET('BKV_G0',1) ; //G0的多头仓位标记为1,持有多头
EXTGBDATASET('TOTAL_BVOL',EXTGBDATA('TOTAL_BVOL')+SS); //系统当天所持有的总多头持仓 + 手数
END

IF TIME>=091500 AND TIME<=091505 AND EXTGBDATA('SKV_G0')=0 THEN
BEGIN
TBUYSHORT(1,SS,MKT);
EXTGBDATASET('SKV_G0',1) ; //G0的空头仓位标记为1,持有空头
EXTGBDATASET('TOTAL_SVOL',EXTGBDATA('TOTAL_SVOL')+SS); //系统当天所持有的总空头持仓 + 手数
END
 
 
但要使用后台程序化,不是说只能用EXTGBDATASET 这种吗?
我都模型是日内模型,我想每天开盘前都运行它,它都会自动把该模型的全局变量归零,再开始当天的交易
那应该使用哪种变量比较好呢?谢谢

 
Virable变量 好像只能在图表吧,在后台现在那种变量会比较稳定啊?有点混乱了
4楼
RogarZ 发表于:2013/12/30 17:40:29

【王峰回复】

你上面的代码是可以的

 
3.01版之后的EXTGBDATASET,默认就只在最后一根K线才能对数据库进行设置的,如果你是在开盘之后才启动的后台交易,由于TIME>=091500 AND TIME<=091505这个条件已经错过了,所以才导致不能初始化正确

5楼
RogarZ 发表于:2013/12/30 17:40:49

【eric917 回复】

 

谢谢,现在3个问题(股指,后台程序化)

1) 我使用后台程序化是使用 EXTGBDATASET 还是 其他的变量比较稳定适合?.

2)我想在开盘的一刻,立即开一张多单一张空单,锁仓,请问可以实现吗?
如果要实现,应该怎么写呢?谢谢

3)如果我想股指开盘前 自动初始化全部的全局变量(在2)之前就要初始化),这个请问可以实现吗?
6楼
RogarZ 发表于:2013/12/30 17:41:49

【jinzhe回复】

1. 用ext

2

if dynainfo(207)>091501 and dynainfo(207)<091505 then begin

tbuy(tbuyholdingex('','',0)=0,1,mkt);

tbuyshort(tsellholdingex('','',0)=0,1,mkt);

end

3.if currenttime>090001 and currettime<091458 then begin

全局变量定义语句;

end

要在开盘前启动

 

【王峰回复】

1,EXTGBDATASET 使用的地方主要是用来存放断电保存全局状态,也就是重启金字塔也能保存的状态,只要有这个需要,你就可以使用他.

问题2,假设你是在1分钟K线运行,那么这样就可以

IF TIME=091600 THE

BEGIN

......

END

注意金字塔的K线时间是没有091500的,假设是09点15开盘,那么第一根K线的时间是091600

3,要在开盘前初始化动作,有一些后台设置要搞的.

首选你要勾选不间断监控,并选择固定轮循模式运行后台程序化.

然后代码这样写

IF CURRENTTIME>=091300 AND CURRENTTIME<091500THE

BEGIN

...... 初始化动作

END

 

7楼
RogarZ 发表于:2013/12/30 17:42:06

【eric917 回复】

 

谢谢

2)请问一下dynainfo(207) 是什么意思呢?
如果我不是使用tbuy(tbuyholdingex('','',0)=0,1,mkt);,而是使用原来的TBUY(1,SS,MKT);这样可以吗?

3)请问一下time和currenttime有什么区别呢?
 
补充:

问题2,假设你是在1分钟K线运行,那么这样就可以

IF TIME=091600 THE

BEGIN

......

END

注意金字塔的K线时间是没有091500的,假设是09点15开盘,那么第一根K线的时间是091600


你好,请问如果是5分钟K线,就要写成092000吗?

[此贴子已经被作者于2013/12/30 17:42:23编辑过]
8楼
RogarZ 发表于:2013/12/30 17:42:46

【jinzhe回复】

 

2。行情时间

可以,但是用指定买持更好处理一点

3。time是k线时间,比如股指1分钟第一根k线是091600,那么行情在这一根k线上走时,一直是这个数据,比如当前时间是091501,那么这个函数返回091600,当前时间是091502,那么也是返回09160

currettime是当前时间,当前多少时间就是多少时间,比如当前时间是091501,那么这函数返回是091501,当前时间是091502 ,那么这个函数返回091502

9楼
RogarZ 发表于:2013/12/30 17:43:18

【eric917 回复】

 

好,非常感谢


“指定买持更好处理一点”

如果后天加载了数个模型,可能会引起混乱吧?
还想请问一下,下面两个,哪个是代表服务器行情时间,哪个是代表本机行情时间的呢?

dynainfo(207)

currettime

谢谢
10楼
RogarZ 发表于:2013/12/30 17:43:48

【jinzhe回复】

 

dy代表交易所的行情时间

cur代表本地时间

共13 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.06445 s, 3 queries.