Rss & SiteMap

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

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

标题:[求助]全局变量问题

1楼
渴望知识 发表于:2015/3/9 14:42:59

老师好

我定义了一个全局变量,但是后面却不执行,麻烦帮忙看下我写的有没有问题,谢谢。

 

runmode:0;

VARIABLE:QS=0;//组合策略实现

szqs:=。。。。。。;

xdqs:=............;

if(szqs or xdqs ,qs:=1,qs:=-1);

 

if qs>0 then begin
BUY(holding=0  and  090000<time and time<02300000,1,limitr,c),ORDERQUEUE; //开多
BUYSHORT(holding=0 and 090000<time and time<02300000,1,limitr,c),ORDERQUEUE;//开空
end

 

这里如果我把IF的语句都撤掉,那正常开单,但是加上就没有任何开单了,是不是我的全局变量这个定义有问题呢?

2楼
jinzhe 发表于:2015/3/9 14:52:27

1  (szqs or xdqs ,qs:=1,qs:=-1); 多了两个冒号

2  time<02300000 后面多了两个0

3  你这样写只会开多不会开空

3楼
渴望知识 发表于:2015/3/9 15:40:43

谢谢提醒多了两个0。

老师说的多了两个冒号,我曾经(刚才)都改过的,也还是一样不开仓,没有被执行。

4楼
渴望知识 发表于:2015/3/9 15:42:08

 

[此贴子已经被作者于2015/3/9 15:42:40编辑过]
5楼
渴望知识 发表于:2015/3/9 15:47:42
哈哈,还有啊,怪了,我把时间的那2个0去掉了,反而不开仓了啊,哈哈,真是怪了。
6楼
jinzhe 发表于:2015/3/9 15:50:51
这不会。请贴出全部的代码来我们做本地测试
7楼
渴望知识 发表于:2015/3/9 16:05:41

//变量定义
runmode:0;
A:=mindiff;//取模组交易合约的最小变动价位
VARIABLE:QS=0;//组合策略实现(单边行情1,横盘震荡0)

//趋势判断策略(上涨趋势szqs,下跌xdqs,盘中震荡pzzd,震荡振幅zdzf)
gpx:=ema(c,5);//跟盘线
qsx:=ema(c,60);//趋势线
kpx:=ema(c,20);//控盘线
qsllv:=llv(close,10);
qshhv:=hhv(high,10);
pzzdcs:count(CROSS(gpx,kpx),20) + count(cross(kpx,gpx),20);//盘中震荡次数
zdzf:=all(abs(qshhv-qsx)/qsx>0.01 or abs(qsllv-qsx)/qsx>0.01,10);//趋势中最高(低)价始终大于趋势线1%
szqs:=qsllv>qsx and pzzdcs<=2 and zdzf;//上涨趋势条件
xdqs:=qshhv<qsx and pzzdcs<=2 and zdzf;//下跌趋势条件

if(szqs or xdqs ,qs=1,qs=-1);

//单边趋势操作(不逆市做)

//if qs>0 then begin
BUY(holding=0  and szqs   and  090000<time and time<02300000,1,limitr,c),ORDERQUEUE; //开多
BUYSHORT(holding=0 and xdqs  and 090000<time and time<02300000,1,limitr,c),ORDERQUEUE;//开空
sell(close<qsx   and holding>0,0,limitr,c),ORDERQUEUE;//平多止损
sellshort(close>qsx  and holding<0,0,limitr,c),ORDERQUEUE;//平空止损
//end

8楼
渴望知识 发表于:2015/3/9 16:09:26
而且还有个问题,日线以上级别的,这家伙不干活啊,呵呵,不明白了。
9楼
jinzhe 发表于:2015/3/9 16:10:15
把qs那一段代码删了都没信号,没信号和全局变量没关系
10楼
jinzhe 发表于:2015/3/9 16:12:16
sellshort(close>qsx  and holding<0,0,limitr,c),ORDERQUEUE;//平空止损
BUY(holding=0  and szqs   and  (time>090000 and time<=235900)or  (time>=000000 and time<023000),1,limitr,c),ORDERQUEUE; //开多
sell(close<qsx   and holding>0,0,limitr,c),ORDERQUEUE;//平多止损
BUYSHORT(holding=0 and xdqs  and (time>090000 and time<=235900)or  (time>=000000 and time<023000),1,limitr,c),ORDERQUEUE;//开空
你的时间段就设置错了,重新编了一下,可以了
共23 条记录, 每页显示 10 条, 页签: [1] [2][3]


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