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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助] 加不了仓,怎么回事

   

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


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

主题:[求助] 加不了仓,怎么回事

美女呀,离线,留言给我吧!
pyd
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:8439 积分:0 威望:0 精华:0 注册:2014/7/14 13:43:36
  发帖心情 Post By:2014/12/25 13:31:38    Post IP:58.246.57.26[显示全部帖子]

1, 把2%写成0.02

2, 用全局变量记录开仓是的atr


 回到顶部
美女呀,离线,留言给我吧!
pyd
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:8439 积分:0 威望:0 精华:0 注册:2014/7/14 13:43:36
  发帖心情 Post By:2014/12/31 14:21:54    Post IP:58.246.57.26[显示全部帖子]

加仓3次,上边不是写好了吗,现在具体是什么问题?

[此贴子已经被作者于2014/12/31 14:24:50编辑过]

 回到顶部
美女呀,离线,留言给我吧!
pyd
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:8439 积分:0 威望:0 精华:0 注册:2014/7/14 13:43:36
  发帖心情 Post By:2014/12/31 14:29:27    Post IP:58.246.57.26[显示全部帖子]

就是把45楼的代码改成最多加仓3次,其他不变是吗?

 回到顶部
美女呀,离线,留言给我吧!
pyd
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:8439 积分:0 威望:0 精华:0 注册:2014/7/14 13:43:36
  发帖心情 Post By:2014/12/31 14:46:59    Post IP:58.246.57.26[显示全部帖子]

VARIABLE:a=0,b=0;
INPUT: N(20,1,100,1),M(10,1,100,1),X(2,1,100,0.1),Y(0.5,0.1,100,0.1);
//中间变量;
20h :ref (HHV(H,N),1);
20l :ref (LLV(L,n),1);
10h:ref(hhv(h,M),1);
10l:ref(llv(l,m),1);
ATR:=stkindi(STKLABEL,'atr.atr',0,6,-1);//调用昨天的atr
 
//仓位
A:=ceiling(atr*x)*10;
p: =if(FLOOR (ASSET*0.02/A)=0,1,FLOOR (ASSET*0.02/A));
//开多条件;
KD:=h>20h and holding=0;
//加多条件;
JD:=h>=ENTERPRICE+ATR*y and HOLDING>0;
//止多条件;
if jd<4 then
begin
ZD1:=l<=ENTERPRICE-atr*x and holding>0;
end;
if jd>=4 then
begin
ZD2:=l<10l and 10l>ENTERPRICE-atr*x and HOLDING>0;
end;
//开空条件;
KK:=l<20l and HOLDING=0;   
//加空条件;
jk:=l<=ENTERPRICE-atr*y AND HOLDING<0;
//止空条件;
if jk<4 then
begin
 zk1:=h>=enterprice+atr*x and holding<0;
end;
if jk>=4 then
begin
 zk2:=h>10h and 10h<enterprice+atr*x and holding<0;
end;


//交易
if barpos>21 then begin

if kd  then begin
buy(1,p,limitr, 20h+MINDIFF);//开多
a:=0;// 正常开多时加仓次数重置为0
end

 if ZD1<4 and a<3 then //a<3限制最多加多仓3次
 begin
  buy(jd,p,LIMITR,ENTERPRICE+atr*y);//加多
  a:=a+1;               //加一次a+1
 end

 if zd1 then
 BEGIN
  sell(ZD1,0,LIMITR,ENTERPRICE-atr*x);//止多
 end;
 if zd2 then
 begin
  sell(zd2,0 ,LIMITR,10l-MINDIFF);
 end;
 
 if kk then begin
 BUYSHORT(kk,p ,limitr ,20l-MINDIFF);//开空
 b:=0;     //正常开空时加仓此时重置为0
 end
 if jk<4 and b<3 then //b<3限制最多加空仓3次
 begin
  BUYSHORT(jk,p,LIMITR,ENTERPRICE-atr*y);//加空
  b:=b+1;  //加一次b+1
 end;
 if zk1 then
 begin
  sellshort(zk1,0,limitr,ENTERPRICE+atr*x);//止空
 end;
 if zk2 then
 begin
  SELLSHORT(zk2 ,0,limitr,10h+MINDIFF);
 end;
end;
 

[此贴子已经被作者于2014/12/31 15:25:43编辑过]

 回到顶部