欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 后台交易问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有6155人关注过本帖树形打印复制链接

主题:后台交易问题

帅哥哟,离线,有人找我吗?
smarter
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:210 积分:1315 威望:0 精华:0 注册:2009/12/6 9:00:34
后台交易问题  发帖心情 Post By:2012/4/16 17:00:35 [只看该作者]

请问:下列模型, 在后台交易时, TB为什么总是1  ? 如何才能累加? 谢谢!

 

VARIABLE:tb=0;
input:KCS(1,1,100,1),KN(3,1,15,1),M(1,0,30,1);

资产:ASSET,NOAXIS,LINETHICK0;
持仓:HOLDING,LINETHICK0;
DP:=MINDIFF;

NN:BARSLAST(DATE>REF(DATE,1));
tt0:=IF(10000*INTPART(CLOSETIME(0)/10000)=CLOSETIME(0),CLOSETIME(0)-5500,CLOSETIME(0)-1500);
tt2:=(time>tt0+1500-500);

tb:=VALUEWHEN(tb=Kn,0);
BK:=ref(cross(ma(c,5),ma(c,10)),1);
SK:=ref(cross(ma(c,10),ma(c,5)),1);
BK1:=ref(cross(ma(c,3),ma(c,8)),1);
SK1:=ref(cross(ma(c,8),ma(c,3)),1);

tSELLSHORT(BK1 and tholding<0,KCS,lmt,DYNAINFO(21)+M*DP),ALLOWREPEAT;
SELLSHORT(BK1 and holding<0,holding,limitr,O+M*DP);

tSELL(SK1 and tholding>0,KCS,lmt,DYNAINFO(20)-M*DP),ALLOWREPEAT;
SELL( SK1 and holding>0,holding,limitr,O-M*DP);
tb:=VALUEWHEN(tb=Kn,0);

if time>92500 and time<145000 and bk and holding>=0 and not(date>ref(date,1)) and tholding<Kn*KCS then begin
tBUY(1,KCS,lmt,DYNAINFO(21)+M*DP),ALLOWREPEAT;
tb:=tb+1;
SLEEP(250);
end
BUY(time>92500 and time<145000 and BK and holding>=0 and not(date>ref(date,1)),KN*KCS,limitr,O+M*DP);

if time>92500 and time<145000 and SK and tholding<=0 and not(date>ref(date,1)) and tb<Kn then begin
tBUYSHORT(1,KCS,lmt,DYNAINFO(20)-M*DP),ALLOWREPEAT;
tb:=tb+1;
SLEEP(250);
end
BUYSHORT(time>92500 and time<145000 and SK and holding<=0 and not(date>ref(date,1)),KN*KCS,limitr,O-M*DP);

if tb=Kn-1 then SLEEP(300);

if tb>0 then begin
DEBUGFILE('D:\file001.TXT','TB:'+NUMTOSTR(tb,1)+'   虚盈:'+NUMTOSTR(OPENPROFIT,1)+'  今持:'+NUMTOSTR(TODAYHOLDING,0)+',持仓:'+NUMTOSTR(THOLDING,0)+'  定价:'+NUMTOSTR(C,0)+'/ '+NUMTOSTR(C,0)+'  虚持:'+NUMTOSTR(HOLDING,0)+',虚type:'+NUMTOSTR(TYPE(1),0)+' type: %.0f',tTYPE(1));
end
tb0:tb;
IF tt2  THEN BEGIN
tSELL(HOLDING>0,holding,lmt,DYNAINFO(20)-M*DP);
tSELLSHORT(HOLDING<0,holding,lmt,DYNAINFO(21)+M*DP);
收多:SELL(HOLDING>0,holding,limitr,C-M*DP);
收空:SELLSHORT(HOLDING<0,holding,limitr,C+M*DP);
END

总数: TOTALTRADE,LINETHICK0;
盈利:NUMWINTRADE,LINETHICK0;
胜率:ROUNDS(100*PERCENTWIN,1),LINETHICK0;
连亏:MAXSEQLOSS,LINETHICK0;
连盈:MAXSEQWIN,LINETHICK0;

 


 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/4/16 17:13:19 [只看该作者]

后台和图表写一起了?


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2012/4/16 17:25:49 [只看该作者]

使用金字塔的一个新超全局变量

 

GOLBALVARIABLE:tb=0;


 回到顶部
帅哥哟,离线,有人找我吗?
smarter
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:210 积分:1315 威望:0 精华:0 注册:2009/12/6 9:00:34
呼叫阿火版主  发帖心情 Post By:2012/4/16 17:44:04 [只看该作者]

改成:

GLOBALVARIABLE:tb=0;

 

在后台交易时, TB为还是1 , 请模拟交易, 看一下文件输出就知, 谢谢!

 

是不是BUG ?


 回到顶部
帅哥哟,离线,有人找我吗?
admin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2012/4/16 18:39:29 [只看该作者]

首先确认是否升级到2.86,

此外,初步看了你的代码

tb:=VALUEWHEN(tb=Kn,0);

这类语句,你在后台不断工作时会有不断被重新赋值的嫌疑


 回到顶部
帅哥哟,离线,有人找我吗?
金字塔
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:1056 积分:699 威望:0 精华:3 注册:2009/10/16 12:55:32
  发帖心情 Post By:2012/4/16 19:22:01 [只看该作者]

以下是引用admin在2012-4-16 18:39:29的发言:

首先确认是否升级到2.86,

此外,初步看了你的代码

tb:=VALUEWHEN(tb=Kn,0);

这类语句,你在后台不断工作时会有不断被重新赋值的嫌疑

 

确认已经升级到2.86

 

Kn值为3

TB初始值为0,开仓一次,累计加1,实为开仓次数,最大为3

当TB等于3,重新赋值0

 

请教admin, 有什么办法达到这个目的



金字塔-客户服务部

-----------------------------------------------------------------------------------------------------

全国统一客服电话:021-20339087  021-20339081  021-20339080

Email:service@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2012/4/16 19:26:37 [只看该作者]

别人很难在短期理解你的代码的,可否自己先用DEBUGFILE函数,盘中自行调试一下,看看关键点在哪个位置?

这样再提出问题,我们也有针对性进行处理回复


 回到顶部
帅哥哟,离线,有人找我吗?
admin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2012/4/16 19:50:56 [只看该作者]

提供一个简单的思路,再所有多TB变量赋值的地方,都加上DEBUGFILE记录标志,然后看运行的TB变量变化,发现问题的地方,之前的变量再依次进行记录跟踪,很容易就能最后找到问题


 回到顶部
帅哥哟,离线,有人找我吗?
smarter
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:210 积分:1315 威望:0 精华:0 注册:2009/12/6 9:00:34
  发帖心情 Post By:2012/4/17 18:45:04 [只看该作者]

以下是引用admin在2012-4-16 19:50:56的发言:

提供一个简单的思路,再所有多TB变量赋值的地方,都加上DEBUGFILE记录标志,然后看运行的TB变量变化,发现问题的地方,之前的变量再依次进行记录跟踪,很容易就能最后找到问题

GLOBALVARIABLE:tb1=0,tb=0,ts=0;
input:KCS(1,1,100,1),KN(3,1,15,1),M(1,0,30,1);
资产:ASSET,NOAXIS,LINETHICK0;
持仓:HOLDING,LINETHICK0;
DP:=MINDIFF;
tt0:=IF(10000*INTPART(CLOSETIME(0)/10000)=CLOSETIME(0),CLOSETIME(0)-5500,CLOSETIME(0)-1500);
tt2:=(time>tt0+1500-500);
BK:=ref(cross(ma(c,5),ma(c,10)),1);
SK:=ref(cross(ma(c,10),ma(c,5)),1);
BK1:=ref(cross(ma(c,3),ma(c,8)),1);
SK1:=ref(cross(ma(c,8),ma(c,3)),1);

tSELLSHORT(BK1 and tholding<0,KCS,lmt,DYNAINFO(21)+M*DP),ALLOWREPEAT;
SELLSHORT(BK1 and holding<0,holding,limitr,O+M*DP);

tSELL(SK1 and tholding>0,KCS,lmt,DYNAINFO(20)-M*DP),ALLOWREPEAT;
SELL(SK1 and holding>0,holding,limitr,O-M*DP);

if time>91500 and bk and holding>=0 and not(date>ref(date,1)) and tb<Kn then begin
tBUY(1,KCS,lmt,DYNAINFO(21)+M*DP),ALLOWREPEAT;
tb:=tb+1;
ts:=ts+1;
DEBUGFILE('D:\file005.TXT','多TB:'+NUMTOSTR(tb,0)+',持仓:'+NUMTOSTR(THOLDING,0)+'  定价:'+NUMTOSTR(C,2)+'/   虚持:'+NUMTOSTR(HOLDING,0)+',ts:'+NUMTOSTR(ts,0)+' Kn: %.0f',Kn);
SLEEP(250);
end
if NOT(BK) then begin
//DEBUGFILE('D:\file005.TXT','     TB=0  :'+NUMTOSTR(tb,0)+',持仓:'+NUMTOSTR(THOLDING,0)+'  定价:'+NUMTOSTR(C,2)+'/   虚持:'+NUMTOSTR(HOLDING,0)+',虚type:'+NUMTOSTR(TYPE(1),0)+' Kn: %.0f',Kn);
tb:=0;
end
BUY(time>91500 and BK and holding>=0 and not(date>ref(date,1)),KN*KCS,limitr,O+M*DP);

if time>91500 and SK and tholding<=0 and not(date>ref(date,1)) and tb1<Kn then begin
tBUYSHORT(1,KCS,lmt,DYNAINFO(20)-M*DP),ALLOWREPEAT;
tb1:=tb1+1;
ts:=ts+1;
DEBUGFILE('D:\file005.TXT','空TB1:'+NUMTOSTR(tb1,0)+',持仓:'+NUMTOSTR(THOLDING,0)+'  定价:'+NUMTOSTR(C,2)+'/   虚持:'+NUMTOSTR(HOLDING,0)+',ts:'+NUMTOSTR(ts,0)+' Kn: %.0f',Kn);
SLEEP(250);
end
if NOT(SK) then begin
//DEBUGFILE('D:\file005.TXT','     TB1=0  :'+NUMTOSTR(tb,0)+',持仓:'+NUMTOSTR(THOLDING,0)+'  定价:'+NUMTOSTR(C,2)+'/   虚持:'+NUMTOSTR(HOLDING,0)+',虚type:'+NUMTOSTR(TYPE(1),0)+' Kn: %.0f',Kn);
tb1:=0;
end
BUYSHORT(time>91500 and SK and holding<=0 and not(date>ref(date,1)),KN*KCS,limitr,O-M*DP);
按您的意思,  file005的结果为:

 

2012-04-17 18:31:05.546    多TB:1,持仓:0  定价:1370.75/   虚持:0,ts:4753 Kn: 3
2012-04-17 18:31:05.671    多TB:1,持仓:0  定价:1370.75/   虚持:0,ts:5698 Kn: 3
2012-04-17 18:31:06.234    多TB:1,持仓:0  定价:1370.75/   虚持:0,ts:5726 Kn: 3
2012-04-17 18:31:06.250    多TB:1,持仓:0  定价:1370.75/   虚持:0,ts:4781 Kn: 3
2012-04-17 18:31:06.718    多TB:1,持仓:1  定价:1370.75/   虚持:0,ts:4809 Kn: 3
2012-04-17 18:31:06.937    多TB:1,持仓:1  定价:1370.75/   虚持:0,ts:5754 Kn: 3
2012-04-17 18:31:07.359    多TB:1,持仓:2  定价:1370.75/   虚持:0,ts:4837 Kn: 3
2012-04-17 18:31:07.609    多TB:1,持仓:2  定价:1370.75/   虚持:0,ts:5782 Kn: 3
2012-04-17 18:31:07.921    多TB:1,持仓:3  定价:1370.75/   虚持:0,ts:4865 Kn: 3
2012-04-17 18:31:08.171    多TB:1,持仓:3  定价:1370.75/   虚持:0,ts:5810 Kn: 3
2012-04-17 18:31:08.484    多TB:1,持仓:4  定价:1370.75/   虚持:0,ts:4893 Kn: 3
2012-04-17 18:31:09.234    多TB:1,持仓:4  定价:1370.75/   虚持:0,ts:4921 Kn: 3
2012-04-17 18:31:09.437    多TB:1,持仓:4  定价:1370.75/   虚持:0,ts:5838 Kn: 3
2012-04-17 18:31:09.828    多TB:1,持仓:4  定价:1370.75/   虚持:0,ts:4949 Kn: 3
2012-04-17 18:31:10.437    多TB:1,持仓:6  定价:1370.75/   虚持:0,ts:4977 Kn: 3
2012-04-17 18:31:10.671    多TB:1,持仓:6  定价:1370.75/   虚持:0,ts:5866 Kn: 3
2012-04-17 18:31:11.015    多TB:1,持仓:6  定价:1370.75/   虚持:0,ts:5005 Kn: 3
2012-04-17 18:31:11.625    多TB:1,持仓:7  定价:1370.75/   虚持:0,ts:5033 Kn: 3
2012-04-17 18:31:11.859    多TB:1,持仓:7  定价:1370.75/   虚持:0,ts:5894 Kn: 3
2012-04-17 18:31:12.140    多TB:1,持仓:7  定价:1371.00/   虚持:0,ts:5061 Kn: 3
2012-04-17 18:31:12.390    多TB:1,持仓:7  定价:1371.00/   虚持:0,ts:5922 Kn: 3
2012-04-17 18:31:12.625    多TB:1,持仓:8  定价:1371.00/   虚持:0,ts:5089 Kn: 3
2012-04-17 18:31:13.375    多TB:1,持仓:9  定价:1371.00/   虚持:0,ts:5117 Kn: 3
2012-04-17 18:31:13.625    多TB:1,持仓:9  定价:1371.00/   虚持:0,ts:5950 Kn: 3
2012-04-17 18:31:14.562    多TB:1,持仓:10  定价:1371.00/   虚持:0,ts:5145 Kn: 3
2012-04-17 18:31:14.812    多TB:1,持仓:10  定价:1371.00/   虚持:0,ts:5978 Kn: 3
2012-04-17 18:31:15.109    多TB:1,持仓:10  定价:1371.00/   虚持:0,ts:5173 Kn: 3
2012-04-17 18:31:15.359    多TB:1,持仓:10  定价:1371.00/   虚持:0,ts:6006 Kn: 3
2012-04-17 18:31:15.593    多TB:1,持仓:11  定价:1371.00/   虚持:0,ts:5201 Kn: 3
2012-04-17 18:31:16.375    多TB:1,持仓:12  定价:1371.00/   虚持:0,ts:5229 Kn: 3
2012-04-17 18:31:16.515    多TB:1,持仓:12  定价:1371.00/   虚持:0,ts:6034 Kn: 3
2012-04-17 18:31:17.156    多TB:1,持仓:13  定价:1370.75/   虚持:0,ts:5257 Kn: 3
2012-04-17 18:31:17.406    多TB:1,持仓:13  定价:1370.75/   虚持:0,ts:6062 Kn: 3
2012-04-17 18:31:17.562    多TB:1,持仓:13  定价:1370.75/   虚持:0,ts:5285 Kn: 3

请指教!  谢谢!

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/4/17 18:57:31 [只看该作者]

你用的是什么版本呀?

另外,你总是把tb赋值为0,再累加1 ,输出结果自然一直为1了

 

tb:=tb+1;
ts:=ts+1;
DEBUGFILE('D:\file005.TXT','多TB:'+NUMTOSTR(tb,0)+',持仓:'+NUMTOSTR(THOLDING,0)+'  定价:'+NUMTOSTR(C,2)+'/   虚持:'+NUMTOSTR(HOLDING,0)+',ts:'+NUMTOSTR(ts,0)+' Kn: %.0f',Kn);
SLEEP(250);
end
if NOT(BK) then begin
//DEBUGFILE('D:\file005.TXT','     TB=0  :'+NUMTOSTR(tb,0)+',持仓:'+NUMTOSTR(THOLDING,0)+'  定价:'+NUMTOSTR(C,2)+'/   虚持:'+NUMTOSTR(HOLDING,0)+',虚type:'+NUMTOSTR(TYPE(1),0)+' Kn: %.0f',Kn);
tb:=0;

END

 

NOT(BK)此条件在最后输出前应该成立过。导致TB被赋值为0,然后重新累加1后才记录

[此贴子已经被作者于2012-4-17 19:02:13编辑过]

 回到顶部
总数 15 1 2 下一页