您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 其他期货软件知识>>正文内容

金字塔模型源码表红的部分怎么理解 [金字塔]

  • 咨询内容:  

    input:zj(90,0,100,1) ;

    开仓手数:=(asset*0.01*zj)/(c*300*0.18+c*300*0.000055) ; //保证金和手续费比例
    aa:=ma(c,5) ;
    bb:=ma(c,10) ;
    dc:=cross(aa,bb) ;
    kc:=cross(bb,aa) ;
    //平多
    sell( kc and holding>0  ,0 , LIMITR , close ) ,ORDERQUEUE ;
    //平空
    sellshort( dc and holding<0 , 0 , LIMITR , close ) ,ORDERQUEUE ;
    //开多
    buy(dc and holding=0 , if(zj=0,1,if(开仓手数<1,0.01,INTPART(开仓手数))) , LIMITR , close ) ,ORDERQUEUE ; 
    //开空
    buyshort(kc and holding=0  , if(zj=0,1,if(开仓手数<1,0.01,INTPART(开仓手数))) , LIMITR , close ) ,ORDERQUEUE ; 

    请问表红的部分怎么理解?? 

    特别是绿色部分不懂?
     

    [此贴子已经被作者于2012-5-22 12:36:23编辑过]

     

  • 金字塔客服: 参考IF函数的使用方法
    if
    根据条件求不同的值。用法:IF(X,A,B)若X不为0则返回A,否则返回B例如:IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值
    intpart
    绝对值减小取整,即取得数据的整数部分。用法:INTPART(A)返回沿A绝对值减小方向最接近的整数例如:INTPART(12.3)求得12,INTPART(-3.5)求得-3

     

  • 用户回复: //开多buy(dc and holding=0 , if(zj=0,1,if(开仓手数<1,0.01,INTPART(开仓手数))) , LIMITR , close ) ,ORDERQUEUE ;  

    以这个为例表示 如果满足1、 DC2、 持仓量=0就开多这么多手:if(zj=0,1,if(开仓手数<1,0.01,INTPART(开仓手数)) 最外层IF的含义是如果ZJ=0,则返回1,如果不等于0,则返回if(开仓手数<1,0.01,INTPART(开仓手数)内层if的含义是如果开仓手数<1则,返回0.01,否则则返回INTPART(开仓手数)INTPART 其实就是根据保证金和手续费比例计算出到底可以开多少手,由于算出来的数值不一定是整数,所以要取整
    LIMITR , close的意思是按照收盘价这个限价指令进行下单

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容