QD优化代码的使用例子

Discussion in 'QuantDeveloper' started by cbi_luoy, Oct 31, 2011.

  1. 最近在qd上实现kelly money management,进行优化时可以参考以下代码。

    using System;
    using RQuant.ParamSet;
    using RQuant.Optimization;

    namespace OptimizationTest
    {

    class Function : IOptimizable
    {
    double x;
    double y;

    public Function()
    {
    x = 100;
    y = 100;
    }

    public void Init(TParamSet ParamSet)
    {
    ParamSet.SetNParam(2);

    ParamSet.SetParam(0, x);
    ParamSet.SetParam(1, y);

    ParamSet.SetLowerBound(0, -100);
    ParamSet.SetLowerBound(1, -100);

    ParamSet.SetUpperBound(0, 100);
    ParamSet.SetUpperBound(1, 100);
    }

    public void Update(TParamSet ParamSet)
    {
    x = ParamSet.GetParam(0);
    y = ParamSet.GetParam(1);
    }

    public double Objective()
    {
    return (x - 10)*(x - 10) + (y + 5) * (y + 5);
    }

    public void OnStep () { ; }
    public void OnCircle() { ; }

    public void Print()
    {
    Console.WriteLine("x = {0}, y = {1}", x, y);
    }
    }

    class MainClass
    {

    static void Main(string[] args)
    {
    Function F = new Function();

    TOptimizer Optimizer = new TCoordinateDescent(F);

    F.Print();

    Optimizer.Optimize();

    F.Print();

    F = new Function();

    Optimizer = new TSimulatedAnnealing(F);

    F.Print();

    Optimizer.Optimize();

    F.Print();
    }
    }

    }
     
  2. Code:
    using RQuant.ParamSet;
    using RQuant.Optimization;
    
    这是 RQant ?
     
  3. 辅助扩展包,很正常啊。