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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 为什么会重复开仓?

   

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


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

主题:为什么会重复开仓?

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


加好友 发短信
等级:新手上路 帖子:38 积分:0 威望:0 精华:0 注册:2013/8/5 13:47:46
为什么会重复开仓?  发帖心情 Post By:2014/4/1 14:30:09    Post IP:110.86.20.230[只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:hhh.jpg
图片点击可在新窗口打开查看
后台交易的问题
用股指30秒在做测试,不知道为什么,每次开平仓都会有同样价格,相反方向的单子刷进去,然后几乎同时间马上又出来
请看图片。。。


我用的代码是这样的

Globalvariable:hold=drawnull;

//自有模型


cc807385:=holding;//这句放在信号稳定的地方

drawtextex(1,1,800,0,'虚拟持仓为:'+numtostr(cc807385,0));//在图表上输入虚拟持仓以便监控
if not(islastbar) or workmode<>1 then exit;
xiadan807385:=cc807385-hold;

 
 cang:=xiadan807385+min(hold,0);
 if cang>0 then begin
  tbuy(1,cang,lmt,委托价,0,'807385'),allowrepeat;
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 开多 %.0f',cang);
 end



 
 
 cang:=abs(xiadan807385)-max(hold,0);
 if cang>0 then begin
  tbuyshort(1,cang,lmt,委托价,0,'807385'),allowrepeat;
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 开空 %.0f',cang);
 end


if xiadan807385<-0.5 then begin
 cang:=min(abs(xiadan807385),abs(hold));
 if hold>0 then begin
  tsell(1,cang,lmt,委托价,0,'807385'),allowrepeat;
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 平多 %.0f',cang);
 end
 end
 
 if xiadan807385<-0.5 then begin
 cang:=min(abs(xiadan807385),abs(hold));
 if hold>0 then begin
  tsell(1,cang,lmt,委托价,0,'807385'),allowrepeat;
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 平多 %.0f',cang);
 end
end
 

if xiadan807385>0.5 then begin
 cang:=min(xiadan807385,abs(hold));
 if hold<0 then begin
  tsellshort(1,cang,lmt,委托价,0,'807385'),allowrepeat;
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 平空 %.0f',cang);
 end
 end
 
 if xiadan807385>0.5 then begin
 cang:=min(xiadan807385,abs(hold));
 if hold<0 then begin
  tsellshort(1,cang,lmt,委托价,0,'807385'),allowrepeat;
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 平空 %.0f',cang);
 end
 end

hold:=cc807385;


cc:=holding;
if not(islastbar) or workmode<>1 then exit;
tm:=1;//撤单时间
ac:='807385';//下单账户
wt:=tremainqty(0,ac,stklabel);
buyhold:=tbuyholdingex(ac,stklabel,1);
sellhold:=tsellholdingex(ac,stklabel,1);

if wt>0.5 and tsubmit(0)>tm then tcancelex(1,0,ac,stklabel);//如果用软件自带的撤单功能,这句删除。
if wt<0.5 then begin
 kc1:=max(cc,0)-buyhold;
 kc2:=abs(min(cc,0))-sellhold;
 if kc1<-0.5 then tsell(1,abs(kc1),mkt,0,0,ac),allowrepeat;
 if kc2<-0.5 then tsellshort(1,abs(kc2),mkt,0,0,ac),allowrepeat;
 if sellhold<0.5 and kc1>0.5 then tbuy(1,kc1,mkt,0,0,ac),allowrepeat;
 if buyhold<0.5  and kc2>0.5 then tbuyshort(1,kc2,mkt,0,0,ac),allowrepeat;
end



请问问题出在哪儿?

[此贴子已经被作者于2014/4/1 14:31:31编辑过]

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/4/1 14:39:07    Post IP:58.246.57.26[只看该作者]

公式里面的委托价是多少?


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

客户服务部

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

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

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


加好友 发短信
等级:新手上路 帖子:38 积分:0 威望:0 精华:0 注册:2013/8/5 13:47:46
  发帖心情 Post By:2014/4/1 14:40:38    Post IP:110.86.20.230[只看该作者]

MAX(OPEN,H1)
min(open,l1)

这样的。。。

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/4/1 14:46:24    Post IP:58.246.57.26[只看该作者]

两个值?怎么赋值给委托价的?


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

客户服务部

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

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

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


加好友 发短信
等级:新手上路 帖子:38 积分:0 威望:0 精华:0 注册:2013/8/5 13:47:46
  发帖心情 Post By:2014/4/1 14:48:35    Post IP:110.86.20.230[只看该作者]

我有一个图标的程序
套在中间 
后面是后台的模版


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/4/1 15:00:11    Post IP:58.246.57.26[只看该作者]

发出完整的代码。


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

客户服务部

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

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

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


加好友 发短信
等级:新手上路 帖子:38 积分:0 威望:0 精华:0 注册:2013/8/5 13:47:46
  发帖心情 Post By:2014/4/1 15:24:21    Post IP:110.86.20.230[只看该作者]

我随便写了一个套
大概是这样的代码

Globalvariable:hold=drawnull;



H1:=REF(HHV(H,20),1);
L1:=REF(LLV(L,20),1);


H2:=REF(HHV(H,10),1);
L2:=REF(LLV(L,10),1);



ENTRYLONGCOND:=H>H1 ;
ENTRYSHORTCOND:=L<L1 ;


IF (HOLDING = 0) AND ENTRYLONGCOND THEN
BEGIN
BUY(1,5,LIMITR,MAX(OPEN,H1),1),orderqueue,IGNORECHECKPRICE;
END

IF (HOLDING = 0) AND ENTRYSHORTCOND THEN
BEGIN
BUYSHORT(1,5,LIMITR,MIN(OPEN,L1),1),orderqueue,IGNORECHECKPRICE;
END


IF (HOLDING > 0)  AND  (ENTERBARS > 0) and LOW<=L2 THEN
BEGIN
SELL(1,HOLDING,LIMITR,MIN(OPEN,L2),1),orderqueue,IGNORECHECKPRICE;
END
END

IF (HOLDING < 0)   AND  (ENTERBARS > 0) and HIGH>=H2 THEN
BEGIN
SELLSHORT(1,HOLDING,LIMITR,MA(OPEN,H2),1),orderqueue,IGNORECHECKPRICE;
END
END


cc807385:=holding;

drawtextex(1,1,800,0,'虚拟持仓为:'+numtostr(cc807385,0));//在图表上输入虚拟持仓以便监控
if not(islastbar) or workmode<>1 then exit;
xiadan807385:=cc807385-hold;

 
 cang:=xiadan807385+min(hold,0);
 if cang>0 then begin
  tbuy(1,cang,lmt,MAX(OPEN,H1),0,'807385');
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 开多 %.0f',cang);
 end

 
 cang:=abs(xiadan807385)-max(hold,0);
 if cang>0 then begin
  tbuyshort(1,cang,lmt,MIN(OPEN,L1),0,'807385');
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 开空 %.0f',cang);
 end


if xiadan807385<-0.5 then begin
 cang:=min(abs(xiadan807385),abs(hold));
 if hold>0 then begin
  tsell(1,cang,lmt,MIN(OPEN,L2),0,'807385');
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 平多 %.0f',cang);
 end
 end
 

 

if xiadan807385>0.5 then begin
 cang:=min(xiadan807385,abs(hold));
 if hold<0 then begin
  tsellshort(1,cang,lmt,MAX(OPEN,H2),0,'807385');
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 平空 %.0f',cang);
 end
 end
 


hold:=cc807385;





cc:=holding;
if not(islastbar) or workmode<>1 then exit;
tm:=1;//撤单时间
ac:='807385';//下单账户
wt:=tremainqty(0,ac,stklabel);
buyhold:=tbuyholdingex(ac,stklabel,1);
sellhold:=tsellholdingex(ac,stklabel,1);

if wt>0.5 and tsubmit(0)>tm then tcancelex(1,0,ac,stklabel);
if wt<0.5 then begin
 kc1:=max(cc,0)-buyhold;
 kc2:=abs(min(cc,0))-sellhold;
 if kc1<-0.5 then tsell(1,abs(kc1),mkt,0,0,ac),allowrepeat;
 if kc2<-0.5 then tsellshort(1,abs(kc2),mkt,0,0,ac),allowrepeat;
 if sellhold<0.5 and kc1>0.5 then tbuy(1,kc1,mkt,0,0,ac),allowrepeat;
 if buyhold<0.5  and kc2>0.5 then tbuyshort(1,kc2,mkt,0,0,ac),allowrepeat;
end


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/4/1 15:34:27    Post IP:58.246.57.26[只看该作者]

这个策略编译不通过。。。

 

就不能直接点吗。。。不是这里不对就是那里不对。浪费了这么多时间,都收盘了



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

客户服务部

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

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

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


加好友 发短信
等级:新手上路 帖子:38 积分:0 威望:0 精华:0 注册:2013/8/5 13:47:46
  发帖心情 Post By:2014/4/1 15:44:50    Post IP:110.86.20.230[只看该作者]

不好意思啊。。。刚刚代码没检查

这个应该可以了。

Globalvariable:hold=drawnull;



H1:=REF(HHV(H,20),1);
L1:=REF(LLV(L,20),1);


H2:=REF(HHV(H,10),1);
L2:=REF(LLV(L,10),1);



ENTRYLONGCOND:=H>H1 ;
ENTRYSHORTCOND:=L<L1 ;


IF (HOLDING = 0) AND ENTRYLONGCOND THEN
BEGIN
BUY(1,5,LIMITR,MAX(OPEN,H1),1),orderqueue,IGNORECHECKPRICE;
END

IF (HOLDING = 0) AND ENTRYSHORTCOND THEN
BEGIN
BUYSHORT(1,5,LIMITR,MIN(OPEN,L1),1),orderqueue,IGNORECHECKPRICE;
END


IF (HOLDING > 0)  AND  (ENTERBARS > 0) and LOW<=L2 THEN
BEGIN
SELL(1,HOLDING,LIMITR,MIN(OPEN,L2),1),orderqueue,IGNORECHECKPRICE;
END


IF (HOLDING < 0)   AND  (ENTERBARS > 0) and HIGH>=H2 THEN
BEGIN
SELLSHORT(1,HOLDING,LIMITR,MAX(OPEN,H2),1),orderqueue,IGNORECHECKPRICE;
END



cc807385:=holding;

drawtextex(1,1,800,0,'虚拟持仓为:'+numtostr(cc807385,0));//在图表上输入虚拟持仓以便监控
if not(islastbar) or workmode<>1 then exit;
xiadan807385:=cc807385-hold;

 
 cang:=xiadan807385+min(hold,0);
 if cang>0 then begin
  tbuy(1,cang,lmt,MAX(OPEN,H1),0,'807385');
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 开多 %.0f',cang);
 end

 
 cang:=abs(xiadan807385)-max(hold,0);
 if cang>0 then begin
  tbuyshort(1,cang,lmt,MIN(OPEN,L1),0,'807385');
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 开空 %.0f',cang);
 end


if xiadan807385<-0.5 then begin
 cang:=min(abs(xiadan807385),abs(hold));
 if hold>0 then begin
  tsell(1,cang,lmt,MIN(OPEN,L2),0,'807385');
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 平多 %.0f',cang);
 end
 end
 

 

if xiadan807385>0.5 then begin
 cang:=min(xiadan807385,abs(hold));
 if hold<0 then begin
  tsellshort(1,cang,lmt,MAX(OPEN,H2),0,'807385');
  debugfile('D:\807385.txt',numtostr(hold,0)+' '+numtostr(cc807385,0)+' 平空 %.0f',cang);
 end
 end
 


hold:=cc807385;





cc:=holding;
if not(islastbar) or workmode<>1 then exit;
tm:=1;//撤单时间
ac:='807385';//下单账户
wt:=tremainqty(0,ac,stklabel);
buyhold:=tbuyholdingex(ac,stklabel,1);
sellhold:=tsellholdingex(ac,stklabel,1);

if wt>0.5 and tsubmit(0)>tm then tcancelex(1,0,ac,stklabel);
if wt<0.5 then begin
 kc1:=max(cc,0)-buyhold;
 kc2:=abs(min(cc,0))-sellhold;
 if kc1<-0.5 then tsell(1,abs(kc1),mkt,0,0,ac),allowrepeat;
 if kc2<-0.5 then tsellshort(1,abs(kc2),mkt,0,0,ac),allowrepeat;
 if sellhold<0.5 and kc1>0.5 then tbuy(1,kc1,mkt,0,0,ac),allowrepeat;
 if buyhold<0.5  and kc2>0.5 then tbuyshort(1,kc2,mkt,0,0,ac),allowrepeat;
end

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/4/1 15:47:12    Post IP:58.246.57.26[只看该作者]

这个图表的语句只是用来判断holding的吧?


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

客户服务部

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

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

 回到顶部
总数 22 1 2 3 下一页