Rss & SiteMap

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

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

标题:后台交易策略

1楼
bob 发表于:2014/4/14 9:56:32
请教各位老师,下面这个后台策略我编写的有没有什么问题,帮忙检查一下?我主要是从其他策略里面调用持仓变化来进行交易,调用的策略是图表交易的,那么这个策略做为控制器能正常运作吗?
VARIABLE:ss=4,kg=0;
cc1:STKINDI('if00','bldy.cc',0,18,-1),NOAXIS;
cc2:STKINDI('if00','zddy.cc',0,2,-1),NOAXIS;
jhc1:STKINDI('if00','zddy.hc2',0,2,-1),NOAXIS;
ls:STKINDI('if00','zddy.ls',0,2,-1),NOAXIS;
input:x(9000,1000,10000,1000);
jhc:jhc1,NOAXIS;
//正常交易
if jhc=0 then BEGIN
if cc1=0 and cc2=0 then BEGIN
tsell(HOLDING>0,HOLDING, mkt);
tSELLSHORT(HOLDING<0,HOLDING,mkt);
end 

if (cc1=0 and cc2>0) or (cc1>0 and cc2=0) then BEGIN
tSELLSHORT(HOLDING<0,HOLDING,Mkt);
tbuy(HOLDING=0,ss,Mkt);
if HOLDING=8 then BEGIN
tsell(1,ss,Mkt);
end 
end 

if (cc1=0 and cc2<0) or (cc1<0 and cc2=0) then BEGIN
tsell(HOLDING>0,HOLDING,Mkt);
tBUYSHORT(HOLDING=0,ss,Mkt);
if HOLDING=-8 then BEGIN
tSELLSHORT(1,4,Mkt);
end 
end 

if (cc1>0 and cc2<0) or (cc1<0 and cc2>0) then BEGIN
tsell(HOLDING>0,HOLDING,Mkt);
tSELLSHORT(HOLDING<0,HOLDING,Mkt);
end 

if cc1>0 and cc2>0 then BEGIN
tSELLSHORT(HOLDING<0,HOLDING,mkt);
tbuy(HOLDING=0,ss*2,Mkt);
if HOLDING=4 then BEGIN
tbuy(1,ss,Mkt);
end
end 

if cc1<0 and cc2<0 then BEGIN
tsell(HOLDING>0,HOLDING,Mkt);
tBUYSHORT(HOLDING=0,ss*2,Mkt);
if HOLDING=-4 then BEGIN
tBUYSHORT(1,ss,Mkt);
end
end 
end 

2楼
fly 发表于:2014/4/14 10:06:46
你这个后台程序,能取到正确的HOLDING值?
3楼
bob 发表于:2014/4/14 10:07:48
那应该用什么?tholding?
4楼
bob 发表于:2014/4/14 10:11:24
VARIABLE:ss=4,kg=0;
cc1:STKINDI('if00','bldy.cc',0,18,-1),NOAXIS;
cc2:STKINDI('if00','zddy.cc',0,2,-1),NOAXIS;
jhc1:STKINDI('if00','zddy.hc2',0,2,-1),NOAXIS;
ls:STKINDI('if00','zddy.ls',0,2,-1),NOAXIS;
input:x(9000,1000,10000,1000);
jhc:jhc1,NOAXIS;
//正常交易
if jhc=0 then BEGIN
if cc1=0 and cc2=0 then BEGIN
tsell(tHOLDING>0,tHOLDING, mkt);
tSELLSHORT(tHOLDING<0,tHOLDING,mkt);
end 

if (cc1=0 and cc2>0) or (cc1>0 and cc2=0) then BEGIN
tSELLSHORT(tHOLDING<0,tHOLDING,Mkt);
tbuy(tHOLDING=0,ss,Mkt);
if tHOLDING=8 then BEGIN
tsell(1,ss,Mkt);
end 
end 

if (cc1=0 and cc2<0) or (cc1<0 and cc2=0) then BEGIN
tsell(tHOLDING>0,tHOLDING,Mkt);
tBUYSHORT(tHOLDING=0,ss,Mkt);
if tHOLDING=-8 then BEGIN
tSELLSHORT(1,4,Mkt);
end 
end 

if (cc1>0 and cc2<0) or (cc1<0 and cc2>0) then BEGIN
tsell(tHOLDING>0,tHOLDING,Mkt);
tSELLSHORT(tHOLDING<0,tHOLDING,Mkt);
end 

if cc1>0 and cc2>0 then BEGIN
tSELLSHORT(tHOLDING<0,tHOLDING,mkt);
tbuy(tHOLDING=0,ss*2,Mkt);
if tHOLDING=4 then BEGIN
tbuy(1,ss,Mkt);
end
end 

if cc1<0 and cc2<0 then BEGIN
tsell(tHOLDING>0,tHOLDING,Mkt);
tBUYSHORT(tHOLDING=0,ss*2,Mkt);
if tHOLDING=-4 then BEGIN
tBUYSHORT(1,ss,Mkt);
end
end 
end 
5楼
bob 发表于:2014/4/14 10:11:56
都改成THOLDING  应该可以了吧?还有些什么问题?
6楼
lichenghu 发表于:2014/4/14 10:21:08
 后台全局变量使用EXTGBDATASET,variable后台在取值上存在问题
7楼
uranusmoon 发表于:2014/4/14 20:29:08
版主,请详细说明一下,后台程序用variable全局变量有什么问题。目前正被类似问题困扰。我在后台程序中用到全局变量数组,不用variable类型还能怎么解决?
8楼
jinzhe 发表于:2014/4/15 9:07:01

variable是图表上的全局变量赋值,计算方式取决于K线图上全局变量的理论计算数据,

后台要用extgbdataset

9楼
uranusmoon 发表于:2014/4/16 18:38:41
用GLOBALVARIABLE可以吗,extgbdataset容易不同策略之间冲突。
10楼
jinzhe 发表于:2014/4/17 8:54:41

也可以,但是不要用图表的全局变量函数

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


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