Rss & SiteMap

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

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

标题:请教一下,关于数据引用方面的问题

1楼
安天步 发表于:2016/8/5 9:55:16
编写了一个股指期货的程序,想根据大盘指数上穿均线来买卖,出现一点问题,请教老师帮忙看看。

A1:="999999$CLOSE";            //这行也可以改成A1:=CALLSTOCK('999999',VTCLOSE,6,0);
A2:=MA(A1,5);
A3:=MA(A1,10);

平空:SELLSHORT(CROSS(A1,A2) OR CROSS(A1,A3),HOLDING,THISCLOSE);

IF CROSS(A2,A1) THEN
开空:BUYSHORT(HOLDING=0,1,THISCLOSE);

IF CROSS(A3,A1) THEN
开空:BUYSHORT(HOLDING=0,1,THISCLOSE);

调试都通过了,但是用在图表交易中,都提示我第一行解释错误,请老师帮忙看看,是否有隐藏的问题,谢谢
2楼
jinzhe 发表于:2016/8/5 9:58:19

并没有第一行解释错误,用户是不是还有其他代码没贴出来?

上面的问题是两个“开空”重复了, 一个改成“开空1”一个改成“开空2”

3楼
安天步 发表于:2016/8/5 10:03:49
都贴出来了,我双击公式放在图表上的时候,公式旁边显示“解释错误”
4楼
jinzhe 发表于:2016/8/5 10:06:54

1.如同我上面改的那样,没有你所说的问题

2.没看到你讲的“解释错误”


图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看
5楼
安天步 发表于:2016/8/5 12:57:34
懂了,实际上就是开空1和开空2没标数字的原因
6楼
安天步 发表于:2016/8/8 10:53:55
A0:=CALLSTOCK('399106',VTCLOSE,6,0);
A1:=CALLSTOCK('399106',VTCLOSE,6,-1);
A2:=CALLSTOCK('399106',VTCLOSE,6,-2);
A3:=CALLSTOCK('399106',VTCLOSE,6,-3);
A4:=CALLSTOCK('399106',VTCLOSE,6,-4);
A5:=CALLSTOCK('399106',VTCLOSE,6,-5);
A6:=CALLSTOCK('399106',VTCLOSE,6,-6);
A7:=CALLSTOCK('399106',VTCLOSE,6,-7);
A8:=CALLSTOCK('399106',VTCLOSE,6,-8);
A9:=CALLSTOCK('399106',VTCLOSE,6,-9);
A10:=CALLSTOCK('399106',VTCLOSE,6,-10);
A11:=CALLSTOCK('399106',VTCLOSE,6,-11);
A12:=CALLSTOCK('399106',VTCLOSE,6,-12);
A13:=CALLSTOCK('399106',VTCLOSE,6,-13);
A14:=CALLSTOCK('399106',VTCLOSE,6,-14);
A15:=CALLSTOCK('399106',VTCLOSE,6,-15);
A16:=CALLSTOCK('399106',VTCLOSE,6,-16);
A17:=CALLSTOCK('399106',VTCLOSE,6,-17);
A18:=CALLSTOCK('399106',VTCLOSE,6,-18);
A19:=CALLSTOCK('399106',VTCLOSE,6,-19);

AA5:=(A0+A1+A2+A3+A4)/5;
AA10:=(A0+A1+A2+A3+A4+A5+A6+A7+A8+A9)/10;
AA15:=(A0+A1+A2+A3+A4+A5+A6+A7+A8+A9+A10+A11+A12+A13+A14)/15;
AA20:=(A0+A1+A2+A3+A4+A5+A6+A7+A8+A9+A10+A11+A12+A13+A14+A15+A16+A17+A18+A19)/20;

AFZ:=CALLSTOCK('399106',VTCLOSE,1,0);
PK:=CROSS(AFZ,AA20) or cross(afz,aa5) or cross(afz,aa10) or cross(afz,aa15);
平空:SELLSHORT(PK,HOLDING,MARKET);

IF CROSS(AA5,AFZ) THEN
开空1:BUYSHORT(HOLDING=0,1,MARKET);

IF CROSS(AA10,AFZ) THEN
开空2:BUYSHORT(HOLDING=0,1,MARKET);

IF CROSS(AA15,AFZ) THEN
开空3:BUYSHORT(HOLDING=0,1,MARKET);

IF CROSS(AA20,AFZ) THEN
开空4:BUYSHORT(HOLDING=0,1,MARKET);

求助一下,请金哲老师帮忙看看,能不能将上面的公式进行简化,感觉这样编写既繁琐又增加计算量。
7楼
jinzhe 发表于:2016/8/8 10:56:27

 

aa5:=stkindi('399106','ma.ma1(5)',0,6);

aa10:=stkindi('399106','ma.ma1(10)',0,6);

aa15:=stkindi('399106','ma.ma1(15)',0,6);

aa20:=stkindi('399106','ma.ma1(20)',0,6);

8楼
安天步 发表于:2016/8/8 11:23:09
这是要先做一个MA的技术指标,然后再引用吗?
9楼
jinzhe 发表于:2016/8/8 11:26:09
不用,系统自带就有ma指标
[此贴子已经被作者于2016-8-8 11:26:16编辑过]
10楼
安天步 发表于:2016/8/9 11:24:08

aa5:=stkindi('399106','ma.ma1(5)',0,6,-1);

aa10:=stkindi('399106','ma.ma1(10)',0,6,-1);

aa15:=stkindi('399106','ma.ma1(15)',0,6,-1);

aa20:=stkindi('399106','ma.ma1(20)',0,6,-1);


AFZ:=CALLSTOCK('399106',VTCLOSE,1,0);
KDPK:=CROSS(AFZ,AA20) or cross(afz,aa5) or cross(afz,aa10) or cross(afz,aa15);
平空:TSELLSHORT(KDPK,THOLDING,MKT);
开多:TBUY(KDPK AND THOLDING<=0,1,MKT);    

KKPD:=CROSS(AA5,AFZ) OR CROSS(AA10,AFZ) OR CROSS(AA15,AFZ) OR CROSS(AA20,AFZ);
开空:TBUYSHORT(KKPD AND THOLDING>=0,1,MKT);
平多:TSELL(KKPD,THOLDING,MKT);        

金哲老师,帮忙看看上面的代码运行有没有问题?
另外这里THOLDING换成TBUYHOLDING(1)和TSELLHOLDING(1)可以吧?
还有,图表上有没有专门的多头持仓和空头持仓?
共66 条记录, 每页显示 10 条, 页签: [1] [2][3][4][5][6][7]


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