RonnieZ 发表于 2012-11-8 10:58:38

程序化学习——自己写的数组排序函数和相关应用

目前易盛程序化中暂时没有给数值型数组元素进行自动排序的函数,自己写了一个用户函数sort函数,处理数值型数组的排序问题,支持正序排列和倒序排列。
//--------------------------------------------------------------
// 简称: sort
// 名称: 数组排序
// 类型: 用户函数
// 输出: Numeric
//--------------------------------------------------------------
Params
    NumericArray arr;    //原始数组
    NumericArrayRef arrResult;   //排序后数组
    Integer order(0);    //排序规则,0正序排列,1倒序排序
Vars
    Integer i;
    Integer j;
    Integer temp;
    Numeric Num;
Begin
   For (i=ArrLength(arr)-1;i>0;i--)
   {
         for (j=0;j<i;j++)
      {
         if (arr>arr)
         {
             temp=arr;
            arr=arr;
            arr=temp;
         }
         
      }
   }
   if (order==0)
   arrResult=arr;
   Else
   arrResult=ArrRevers(arr);
   Return 1;
End




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

代码中应用:
Params      
    //参数定义
GlobalVars   
    //全局变量定义
Vars      
    //局部变量定义
    NumericArray Arr;
    NumericArray arr1;
   
Begin      
    //策略执行区
    arr=HisData(Enum_Data_Close,Enum_Period_Min5,"CF305",5);   //取CF305 5分钟线5个周期数据,放到数组中arr中
    sort(arr,arr1,1);   //利用用户函数sort进行倒序排序,从高到低,将结果存入到数组arr1中 。                  
    Print("五周期内收盘价最高:"+Text(arr1)+"   五周期内收盘价次高"+ Text(arr1));//打印结果
End






以上代码抛砖引玉,可继续对算法进行优化和改善,提高排序效率。


guanhuaming 发表于 2012-11-10 15:08:02

期货汇 发表于 2012-11-12 16:44:45

这个 我还真看不懂
以前读书 天天窝在寝室玩游戏 {:soso_e105:}

F_Phoebe 发表于 2013-5-15 14:37:26

楼主是好人~~~
页: [1]
查看完整版本: 程序化学习——自己写的数组排序函数和相关应用