Rss & SiteMap

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

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

标题:图表正确后台交易不正确的原因?

1楼
bob 发表于:2014/4/16 11:04:33
帮忙检查一下这段代码,有什么问题吗?为什么图表的信号是正确的,但是这样改成后台交易以后交易就不正常了?

cc1:STKINDI('if00','jz1.cc',0,2,-1),NOAXIS;
cc2:STKINDI('if00','jz2.cc',0,4,-1),NOAXIS;
cc3:STKINDI('if00','bl3.cc',0,18,-1}),NOAXIS;

//正常交易
//1.对锁或空仓
if (cc1=0 and cc2=0 and cc3=0) or (cc1>0 and cc2<0 and cc3=0) or (cc1>0 and cc2=0 and cc3<0) 
                               or (cc1=0 and cc2<0 and cc3>0) or (cc1=0 and cc2>0 and cc3<0)
                               or (cc1<0 and cc2>0 and cc3=0) or (cc1<0 and cc2=0 and cc3>0)  then BEGIN
tsell(tHOLDING>0,tHOLDING,mkt);
tSELLSHORT(tHOLDING<0,tHOLDING,mkt);
end 
//2.三多
if cc1>0 and cc2>0 and cc3>0 then BEGIN
tsellshort(tHOLDING<0,tHOLDING,mkt);
tbuy(tHOLDING=2,1,mkt);
tbuy(tHOLDING=1,2,mkt);
tbuy(tHOLDING=0,3,mkt);
end 
//3.三空
if cc1<0 and cc2<0 and cc3<0 then BEGIN
tsell(tHOLDING>0,tHOLDING,mkt);
tbuyshort(tHOLDING=-2,1,mkt);
tbuyshort(tHOLDING=-1,2,mkt);
tbuyshort(tHOLDING=0,3,mkt);
end 
//4.两多一空
if (cc1>0 and cc2>0 and cc3<0) or (cc1>0 and cc2<0 and cc3>0) or (cc1<0 and cc2>0 and cc3>0) then BEGIN
tsellshort(tHOLDING<0,tHOLDING,mkt);
tsell(tHOLDING=3,2,mkt);
tsell(tHOLDING=2,1,mkt);
tbuy(tHOLDING=0,1,mkt);
end 
//5.两空一多
if (cc1>0 and cc2<0 and cc3<0) or (cc1<0 and cc2<0 and cc3>0) or (cc1<0 and cc2>0 and cc3<0) then BEGIN
tsell(tHOLDING>0,tHOLDING,mkt);
tsellshort(tHOLDING=-3,2,mkt);
tsellshort(tHOLDING=-2,1,mkt);
tbuyshort(tHOLDING=0,1,mkt);
end 
//6. 两多
if (cc1>0 and cc2>0 and cc3=0) or (cc1>0 and cc2=0 and cc3>0) or (cc1=0 and cc2>0 and cc3>0) then BEGIN
tSELLSHORT(tHOLDING>0,tHOLDING,mkt);
tsell(tHOLDING=3,1,mkt);
tbuy(tHOLDING=1,1,mkt);
tbuy(tHOLDING=0,2,mkt);
end 
//7. 两空
if (cc1<0 and cc2<0 and cc3=0) or (cc1<0 and cc2=0 and cc3<0) or (cc1=0 and cc2<0 and cc3<0) then BEGIN
tSELL(tHOLDING>0,tHOLDING,mkt);
tsellshort(tHOLDING=-3,1,mkt);
tbuyshort(tHOLDING=-1,1,mkt);
tbuyshort(tHOLDING=0,2,mkt);
end 
//8.一多
if (cc1=0 and cc2=0 and cc3>0) or (cc1=0 and cc2>0 and cc3=0) or (cc1>0 and cc2=0 and cc3=0) then BEGIN
tSELLSHORT(tHOLDING>0,tHOLDING,mkt);
tsell(tHOLDING=3,2,mkt);
tsell(tHOLDING=2,1,mkt);
tbuy(tHOLDING=0,1,mkt);
end 
//9.一空
if (cc1<0 and cc2=0 and cc3=0) or (cc1=0 and cc2=0 and cc3<0) or (cc1=0 and cc2<0 and cc3=0) then BEGIN
tSELL(tHOLDING>0,tHOLDING,mkt);
tsellshort(tHOLDING=-3,2,mkt);
tsellshort(tHOLDING=-2,1,mkt);
tbuyshort(tHOLDING=0,1,mkt);
end 
持仓:HOLDING,NOAXIS;
2楼
jinzhe 发表于:2014/4/16 11:05:54

不正常在哪里?

详细说明一下

3楼
bob 发表于:2014/4/16 11:06:59
本来应该一手空单转成一手多单的 结果给我全部平仓 没有开多
4楼
jinzhe 发表于:2014/4/16 11:09:24

本来是空转多

这个是你从图表上判断来的结果?

5楼
bob 发表于:2014/4/16 11:12:49
是的 
6楼
bob 发表于:2014/4/16 11:19:02
请问我这段代码本身写的有没有什么问题?
7楼
jinzhe 发表于:2014/4/16 11:32:54

图表和后台不一样的,不要用图表来判断后台

 

在后台里面尤其是这种双向都交易的,你用tbuyholding和tsellholding 来判断当前持仓而不是用tholding

8楼
jinzhe 发表于:2014/4/16 11:34:24
最后就是要分析条件,你看看条件是不是会同时满足两个语句,比如你上面说的空转多和全屏条件同时满足但是全平语句写前面就给执行全平语句了
9楼
bob 发表于:2014/4/16 12:35:59
可是昨天交易都还是正常的....奇怪
共9 条记录, 每页显示 10 条, 页签: [1]


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