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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 麻烦管理员帮忙看下,谢谢解答啊

   

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


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

主题:麻烦管理员帮忙看下,谢谢解答啊

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/7/26 11:04:01    Post IP:58.246.57.26[显示全部帖子]

哪个标识控制---ZS吗?

我想实现的功能是,当前一次的平仓操作是止损操作,这次开仓如果先满足短开仓的条件就开短,如果满足长开仓的条件就开长的;如果前一次的平仓操作是正常条件的平仓,那这次开仓即使满足短开仓条件也不开,只有满足长开仓的条件才开;



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

客户服务部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/7/26 11:40:50    Post IP:58.246.57.26[显示全部帖子]

把空仓的注释掉了,空仓的与多仓雷同,请您尝试着实现

以下代码可以实现楼主说的多仓时的开平仓条件.

 

VARIABLE:dayCount=1,PositionCount=1,SellSign=0,ZS=0,dK=0;//加多空标志,1:多,-1:空 0:空仓
VARIABLE:EntAndExitSign=1,EntPoint=0,ExitPoint=0;
VARIABLE:N=0;

M:=MA(TR,20);
N:=REF(M,1);


DHi:= HHV(REF(HIGH,1),20);//短周期

DLo:= LLV(REF(Low,1),20);

 

fsHi:= HHV(REF(HIGH,1),55);//长周期

fsLo:= LLV(REF(LOW,1),55);

EHPrice:=HHV(REF(HIGH,1),10);//离市周期
ELPrice:=LLV(REF(LOW,1),10);

DayCount:=DayCount+1;
EntPoint:=ENTERBARS+1;

IF EntPoint=EntAndExitSign THEN
   BEGIN{说明STOP指令买进头寸成功}
PositionCount:=PositionCount+1;{头寸计数}
SellSign:=True;{可以平仓信号,如果达到指定的价格}
//ZS:=FALSE;
   END
IF PositionCount=1   THEN BEGIN{第一头寸}
 if ZS<>1 THEN BEGIN                              //-----------在ZS不等于1的时候,才开短多
 HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模}
   if high>=DHi then
      BEGIN
      dk:=1;
      短多开1:BUY(high>=DHi,HOW,MARKET);{在20日新高STOP指令买进}
      END
  
  // if low<=DLo then
   //   begin
    //  dk:=-1;
    //  短空开1:buyshort(low<=DLo,HOW,MARKET);{在20日新低STOP指令空开}
     // end
     END
END
IF PositionCount=1THEN BEGIN{第一头寸}                  //--------去掉 AND ZS=FALSE
HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模}
 if high>=fsHi then
  BEGIN
  dk:=1;
  长多开1:BUY(high>=fsHi,HOW,MARKET);{在20日新高STOP指令买进}
  END
  
 //if low<=fsLo then
 // begin
 // dk:=-1;
 // 长空开1:buyshort(low<=fsLo,HOW,MARKET);{在20日新低STOP指令空开}
 // end
END

IF SellSign=True THEN
BEGIN
      ExitPoint:=EXITBARS+1;
     if dk=1 then
       begin
        IF ExitPoint=EntAndExitSign THEN
        BEGIN {说明卖出成功}
           PositionCount:=1;{头寸计算复原}
           SellSign:=false;
           dk:=0;
        END
    
        IF L<ELPrice then
         begin
         SELL(L<ELPrice,0,MARKET);{退出离盈利头寸}
         ZS:=1;                 // -----正常平多,ZS为1
         end
       end
      
      if dk=1 then
       begin
        IF ExitPoint=EntAndExitSign THEN
        BEGIN {说明卖出成功}
           PositionCount:=1;{头寸计算复原}
           SellSign:=False;
           dk:=0;
          
        END
        IF LOW<=ENTERPRICE-2*N THEN
        止多: SELL(LOW<=ENTERPRICE-2*N,0,MARKET);{退出亏损头寸}
       end
      
      if dk=-1 then
      begin
       IF ExitPoint=EntAndExitSign THEN
        BEGIN
           PositionCount:=1;
           SellSign:=False;
           dk:=0;
        END
    
      // IF H>EHPrice then
      //  sellSHORT(H>EHPrice,0,MARKET);
      //end
      //if dk=-1 then
     //  begin
       // IF ExitPoint=EntAndExitSign THEN
      //  BEGIN {说明卖出成功}
       //    PositionCount:=1;{头寸计算复原}
      //     SellSign:=False;
       //    dk:=0;
       //    ZS:=TRUE;
      //  END
      //  IF high>=ENTERPRICE+2*N THEN
       // 止空:sellSHORT( high>=ENTERPRICE+2*N,0,MARKET);
       end
END 



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

客户服务部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/7/26 13:53:43    Post IP:58.246.57.26[显示全部帖子]

需求比较混乱,请先把需求描述清楚.

3楼实现的,主要是针对1楼的需求

即:

当前一次的平仓操作是止损操作,这次开仓如果先满足短开仓的条件就开短,如果满足长开仓的条件就开长的;如果前一次的平仓操作是正常条件的平仓,那这次开仓即使满足短开仓条件也不开,只有满足长开仓的条件才开;

 

你的短开和长开条件如果有时候真的会一样,那只用把长开的条件写在短开的代码前面,按照代码的前后执行顺序,就会先长开仓. 

[此贴子已经被作者于2011-7-26 14:01:15编辑过]


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

客户服务部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/7/26 14:40:47    Post IP:58.246.57.26[显示全部帖子]

在IF08的5分钟K线上,看的

请在止损条件处加上

 

 IF LOW<=ENTERPRICE-2*N THEN
        begin
        止多: SELL(LOW<=ENTERPRICE-2*N,0,MARKET);{退出亏损头寸}
        ZS:=2;
        end
       end



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

客户服务部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/7/27 13:11:22    Post IP:58.246.57.26[显示全部帖子]

选择是否进行平仓,加上HOLDING>0----有多单--的条件限制



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

客户服务部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/7/28 11:00:59    Post IP:58.246.57.26[显示全部帖子]

IF HOLDING>0 AND CON THEN SELL(1,1,MARKET);    //当HOLDING大于0,才平仓


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

客户服务部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/7/28 13:37:43    Post IP:58.246.57.26[显示全部帖子]

举个例子来说  这个K线上满足开仓条件后平仓了,那么ZS=1;然后下一根K线的满足止损平仓条件,那么ZS=2;可是并没有止损平仓的操作(因为没有持仓) 那么在下一次满足开仓条件的地方就会实行短开的操作了,这样就违背了原来的意思了 .

 

按照这个意思,就是说因为在没有持仓的情况下,达到并执行了止损平多的语句,所以ZS才变为2的.

根本原因在于当时是否有持仓,如果有持仓,达到止损平多的条件,肯定要执行;没持仓,自然就不执行.

我给您提的建议是用HOLDING来判断当时是否持有多仓,有多仓又满足止损平多的条件,就执行.

您再好好体会体会...



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

客户服务部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

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

 回到顶部