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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → cash和asset函数的非一致性?

   

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


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

主题:cash和asset函数的非一致性?

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


加好友 发短信
等级:新手上路 帖子:67 积分:363 威望:0 精华:0 注册:2010/5/14 10:39:11
cash和asset函数的非一致性?  发帖心情 Post By:2010/6/10 3:00:15    Post IP:61.171.34.212[只看该作者]

期货交易公式中

1、费了好大功夫才弄清楚,在未开仓状态下,asset=cash*保证金率,因此cash比asset大很多倍。但按照常理未开仓时应该asset=cash。

既然设置中的初始资金是asset,那么以cash来计算应开仓量的话会高估很多,产生错误结果,比如系统自带的海龟交易法中。

 

2、bhwhui写的双向海龟交易法。即使按照asset来计算开仓量,在股指期货5分钟图上还是只能产生某个日期之前的信号,原因何在?明明是盈利的,不存在资金回撤到0的状态。保证金率设为18%,合约单位300。


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/6/10 9:27:03    Post IP:112.64.159.158[只看该作者]

可否写出一个测试公式给我们,另外指出比如那天的存在问题,方便我们迅速查找问题。

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


加好友 发短信
等级:新手上路 帖子:67 积分:363 威望:0 精华:0 注册:2010/5/14 10:39:11
  发帖心情 Post By:2010/6/10 22:15:29    Post IP:61.171.35.192[只看该作者]

稍微修改了一下bhwhui写的海龟交易法,用Asset来计算开仓量。

费率设置,保证金率margin 10%,合约单位10,交易费用0.02%,初始资金100万。运行到白糖1007的5MIN结果如图..(图传不来)

 

1、图中直观看出未开仓时,asset=cash*margin的关系,是否此点设计有误?应该asset=cash

2、在5MIN图上只有在4月22日之前能产生信号,而15MIN图上所有日期都有信号,这点十分不理解。

 

======================================

input:trn(20,5,30),hn(20,5,30),lown(10,5,20);

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

margin:=0.1;//保证金率
value:=10;//合约单位

//现金:CASH(0)/1000*margin;//若输出此行,cash和asset相等
现金:CASH(0)/1000;//若输出此行,asset=cash*margin。处以1000是为了坐标比例与K线适应
资产:ASSET/1000;

N:=MA(TR,trn);
BUYHHV:=HHV(H,hn);
SELLLLV:=LLV(L,lown);

sellshortllv:=llv(l,hn);
buyshorthhv:=hhv(h,lown);

IF BARPOS>=hn THEN
BEGIN
 IF BARPOS=hn THEN
 IF DayCount=hn/2 OR BARPOS=hn  THEN
  BEGIN{hn/2天调整N值}
      N:=((hn-1)*N+TR)/hn;{计算N值}
      DayCount:=2;
  END
 
 DayCount:=DayCount+1;
 EntPoint:=ENTERBARS+1;
 
 IF EntPoint=EntAndExitSign THEN
     BEGIN{说明STOP指令买进头寸成功}
  PositionCount:=PositionCount+1;{头寸计数}
  SellSign:=True;{可以平仓信号,如果达到指定的价格}
   END
  
 IF PositionCount=1 THEN BEGIN{第一头寸}
  HOW:=ASSET*0.01/N/value;{波动性百分比决定头寸规模}
  if high=buyhhv then
   BEGIN
   dk:=1;
   多开1:BUY(1,HOW,STOP,BUYHHV);{在20日新高STOP指令买进}
   END;
  
  if low=sellshortllv then
   begin
   dk:=-1;
   空开1:buyshort(1,HOW,STOP,sellshortllv);{在20日新低STOP指令空开}
   end;
 END

 IF PositionCount=2 THEN BEGIN{如到第二头寸}
  HOW:=ASSET*0.01/N/value;{波动性百分比决定头寸规模}
  if dk=1 then 多开2:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);{在上头寸(即第一头寸)+0.5个N以STOP指令买进}
  if dk=-1 then 空开2:buyshort(1,HOW,STOP,ENTERPRICE-0.5*N);
 END

 IF PositionCount=3 THEN BEGIN{如到第三头寸}
  HOW:=ASSET*0.01/N/value;
  if dk=1 then 多开3:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);{在上头寸(即第二头寸)+0.5个N以STOP指令买进}
  if dk=-1 then 空开3:buyshort(1,HOW,STOP,ENTERPRICE-0.5*N);
 END

 IF PositionCount=4 THEN BEGIN
  HOW:=ASSET*0.01/N/value;
  if dk=1 then 多开4:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);
  if dk=-1 then 空开4:buyshort(1,HOW,STOP,ENTERPRICE-0.5*N); 
 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 ENTERPRICE-2*N then
         SELL(1,100%,STOP,SELLLLV);{退出离盈利头寸}
        ELSE
         SELL(1,100%,STOP,ENTERPRICE-2*N);{退出亏损头寸}
       end;
      
      if dk=-1 then
        begin
       IF ExitPoint=EntAndExitSign THEN
        BEGIN
           PositionCount:=1;
           SellSign:=False;
           dk:=0;
        END
    
       IF ENTERPRICE+2*N then
        sellSHORT(1,100%,STOP,BUYSHORTHHV);
       ELSE
        sellSHORT(1,100%,STOP,ENTERPRICE+2*N);
      
       END;
     END
END;


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


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

asset=cash的问题,我们下个版本会按照你的方法进行输出修正,感谢提交此问题。

另外第二个问题,你可以看看是否因为资金不足无法后续开仓问题造成


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


加好友 发短信
等级:新手上路 帖子:67 积分:363 威望:0 精华:0 注册:2010/5/14 10:39:11
  发帖心情 Post By:2010/6/10 23:23:02    Post IP:61.171.35.192[只看该作者]

关于第二个问题,我不太认为是资金不足无法开仓。或许正是因为cash和asset以及费率设置中的保证金率、合约单位、初始资金之间错综复杂的换算关系有瑕疵导致的。

 

或许第一个问题解决后,第二个问题自然解决...

[此贴子已经被作者于2010-6-10 23:26:05编辑过]

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


加好友 发短信
等级:论坛游侠 帖子:574 积分:3167 威望:0 精华:0 注册:2009/10/10 11:13:01
  发帖心情 Post By:2010/6/10 23:37:21    Post IP:58.48.129.248[只看该作者]

 此帖有点深度,不错

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


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

你可以通过

持仓:HOLDING,LINETHICK0;

 

这种方式打印出公式中的变量,然后通过十字光标查看每个周期的变化,最终查明原因。


 回到顶部