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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 有条件限制日内开仓次数问题

   

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


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

主题:有条件限制日内开仓次数问题

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


加好友 发短信
等级:论坛游侠 帖子:334 积分:0 威望:0 精华:0 注册:2013/8/29 9:26:12
有条件限制日内开仓次数问题  发帖心情 Post By:2014/6/17 13:24:28    Post IP:222.212.224.203[只看该作者]

老师好,我想限制日内的开仓次数,请问代码怎么实现?
    条件是:
    1、达到止赢条件,如一次赢利3%;
    2、连续三次赢利;
    3、连续两次亏损。

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


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

1.盈利3%的:

多头  (h-enterprice)/enterprice>0.03

空头(enterprice-l)/enterprice>0.03

 

2,3

连赢连亏的思路都是一样的,用全局变量来记录

variable:n=0;

variable:m=0;

if 平多条件 and 持仓判断 then begin

      sell.....;

      if   numprofit(1)>0 then begin

            n:=n+1;

            m:=0;

      end

      if numprofit<0 then begin

           n:=0;

           m:=m+1;

end

 

n是连赢次数,m是连亏次数



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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:334 积分:0 威望:0 精华:0 注册:2013/8/29 9:26:12
  发帖心情 Post By:2014/6/17 14:10:59    Post IP:222.212.224.203[只看该作者]

在上述条件成立的时候,就退出交易,是吗:
if 多头 or 空头 or n>=3 or m>=2 then exit; 

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


加好友 发短信
等级:论坛游侠 帖子:334 积分:0 威望:0 精华:0 注册:2013/8/29 9:26:12
  发帖心情 Post By:2014/6/17 14:30:51    Post IP:222.212.224.203[只看该作者]

请问记录盈亏次数的n和m放在什么地方?是放在每次平仓之后?还是单独放在最后即可?

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


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

。。。。不用退出,直接在开仓条件里面加入连亏连赢的次数判断


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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:334 积分:0 威望:0 精华:0 注册:2013/8/29 9:26:12
  发帖心情 Post By:2014/6/17 14:47:42    Post IP:222.212.224.203[只看该作者]

是否是这样:
if 开多条件 and 持仓判断 and (n<3 or m<2 or not(多赢) or not(空赢)) then begin
   buy......;
end

另外,记录N和M是每次平仓都记录,对吗?


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


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

对的


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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:334 积分:0 威望:0 精华:0 注册:2013/8/29 9:26:12
  发帖心情 Post By:2014/6/18 11:00:02    Post IP:221.10.94.0[只看该作者]

老师,昨日请教的问题,麻烦你再看一下,下面的逻辑和代码有错没有:怎么和不加限制条件的测试结果完全一样呢?

//限制日内的交易次数,条件是:1、达到止赢条件,如一次赢利3%;2、连续三次赢利;3、连续两次亏损;之后便不再开仓。

//1、盈利3%
dzy:=(c-enterprice)/enterprice*100>3;//多止赢
kzy:=(enterprice-c)/enterprice*100>3;//空止赢
 
//2、3、用全局变量来记录连赢连亏
variable:n=0;   //记录连赢次数n;
variable:m=0;   //记录连亏次数m;
   
kd:=cross(ma(c,10),ma(c,30));
kk:=cross(ma(c,30),ma(c,10));
pd:=cross(ma(c,20),ma(c,10));
pk:=cross(ma(c,10),ma(c,20));   //开平条件
  
//交易系统
if (pk or kd) and holding<0 then begin
      sellshort(1,0,market);
      if numprofit(1)>0 then begin
            n:=n+1;
            m:=0;
      end
      if numprofit(1)<0 then begin
           n:=0;
           m:=m+1;
      end
end
if kd and holding=0 and (n<3 or m<2 or not(dzy) or not(kzy)) then begin
   buy(1,1,market);
end

if (pd or kk) and holding>0 then begin
      sell(1,0,market);
      if numprofit(1)>0 then begin
            n:=n+1;
            m:=0;
      end
      if numprofit(1)<0 then begin
           n:=0;
           m:=m+1;
      end  
end
if kk and holding=0 and (n<3 or m<2 or not(dzy) or not(kzy)) then begin
   buyshort(1,1,market);
end



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


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

平仓条件就是平仓条件,你不要再来个OR 开仓条件


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

客户服务部

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

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

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


加好友 发短信
等级:论坛游侠 帖子:334 积分:0 威望:0 精华:0 注册:2013/8/29 9:26:12
  发帖心情 Post By:2014/6/18 22:29:48    Post IP:119.6.43.106[只看该作者]

我加上的意思是:平空条件成立(或者开多条件同时成立),都执行平空——表述有问题?老师的意思是怎么修改呢?我去掉那个条件后测试,结果也一样


//限制日内的交易次数,条件是:1、达到止赢条件,如一次赢利3%;2、连续三次赢利;3、连续两次亏损。

//1、盈利3%
dzy:=(c-enterprice)/enterprice*100>3;//多止赢
kzy:=(enterprice-c)/enterprice*100>3;//空止赢
 
//2、3、用全局变量来记录连赢连亏
variable:n=0;   //记录连赢次数n;
variable:m=0;   //记录连亏次数m;
   
kd:=cross(ma(c,10),ma(c,30));
kk:=cross(ma(c,30),ma(c,10));
pd:=cross(ma(c,20),ma(c,10));
pk:=cross(ma(c,10),ma(c,20));   //开平条件
  
//交易系统
if pk and holding<0 then begin
      sellshort(1,0,market);
      if numprofit(1)>0 then begin
            n:=n+1;
            m:=0;
      end
      if numprofit(1)<0 then begin
           n:=0;
           m:=m+1;
      end
end
if kd and holding=0 and (n<3 or m<2 or not(dzy) or not(kzy)) then begin
   buy(1,1,market);
end

if pd and holding>0 then begin
      sell(1,0,market);
      if numprofit(1)>0 then begin
            n:=n+1;
            m:=0;
      end
      if numprofit(1)<0 then begin
           n:=0;
           m:=m+1;
      end  
end
if kk and holding=0 and (n<3 or m<2 or not(dzy) or not(kzy)) then begin
   buyshort(1,1,market);
end

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