分享

资金管理函数模型(部分代码)

 灰晖 2010-12-27

隔夜90%,日内90%的仓位交易测试结果:

收益率                                6871.01%
年度收益率              
         340461455.83%
有效收益率              
                80.85%
月度平均盈利            
           20346205.02

总交易时间              
                 103天
持仓时间比率            
                99.75%
持仓时间                
                 102天
最大空仓时间            
                   0天
持仓周期                
                  3131 
 

 

隔夜30%,日内90%的仓位交易测试收益:

收益率                                7950.32%
年度收益率              
         567033539.60%
有效收益率              
               111.22%
月度平均盈利            
           23542196.38

总交易时间              
                 103天
持仓时间比率            
                99.78%
持仓时间                
                 102天
最大空仓时间            
                   0天
持仓周期                
                  3132 
 

 

隔夜00%,日内90%的仓位交易测试收益:

 

收益率                                7535.53%
年度收益率              
         470107555.45%
有效收益率              
               117.93%
月度平均盈利            
           22313951.02

总交易时间              
                 103天
持仓时间比率            
                98.18%
持仓时间                
                 101天
最大空仓时间            
                   3天
持仓周期                
                  3082

 

 


 

//------------------------------------------------------------------------
// 简称: FundsManagement
// 名称: 资金管理
// 类别: 用户函数
// 类型: 用户函数
// 输出: 目前应该持仓比例
//------------------------------------------------------------------------
Params
   Numeric TrendStatus;   
   Numeric MaxDayPosition(90);        //用户指定白天最大持仓比例,百分比.
   Numeric MaxNightPosition(30);      //用户指定隔夜最大仓位比例, 白分比.
 

Vars

   NumericSeries Ratio;
   Numeric     oldRatio;
   string      vs1;


Begin

 

   oldRatio = GetPosRatio();
  
  if( oldRatio==InvalidNumeric )
  {
    if( BarStatus==2 )
    {
      SetPosRatio( Ratio[1] );
    }
    oldRatio = Ratio[1];
  }
 
  if( WillClose() )
  {
    //计算夜晚持仓比例
    Ratio = CalculateNightPos()*MaxNightPosition/100; 
  }Else
  {
     // 计算目前日内应持仓比例
     Ratio = CalculateDayPos()*MaxDayPosition/100;
  
     //如果仓位比例不符合要求
    if( oldRatio != Ratio )
    {
       //如果等待,则继续保持隔夜持仓比例
       if( CheckGapToWait(vs1,GetBarsSinceToday,TrendStatus,60) )
      {
          SetFundsRatioWait(1);
          Ratio = oldRatio;
      }Else
     {

         //不等待,则判断之前是否等待过,如果等待则根据情况提升仓位,不符合情况则保持老仓
        if( GetFundsRatioWait()==1 )
        {

            //不符目前提升仓位的要求,继续保持老仓
            if( GapSwitch( TrendStatus )==0 )
          
               Ratio = oldRatio;
           }Else
          {
             //符合提升仓位要求,则关闭等待标志
             SetFundsRatioWait(InvalidNumeric);
          }
       }


     }// CheckGapToWait


   }// oldRatio != Ratio
  
  
 }// WillClose
 
 return Ratio;
End

//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 用户版本 2010/06/08 19:26
// 版权所有 brucecolvin
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
//   每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多