• 如何在C#当中实现同花顺,大智慧哪种相同的公式写法


    下面的是一个MACD的公式 

    DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
    DEA  : EMA(DIFF,M);

    MACD : 2*(DIFF-DEA), COLORSTICK;

    它的变量是可以直接进行加减*除的,但是我们要知道,它里面的Close这个东西实际上也是一个数组类型的。同过总结分析我们可以知道。我们在C#当中可以使用操作符重载来实现数组的相加相减,或者运算。但是数组这个东西是系统自带的类型,我们是没有办法对它再进行操作符的重载,所以我们自己需要构造成一个类型出来。

    在千发股票自动交易软件里面,我创造了一个类型是 FloatList类型,

     public class FloatList : List<float
        {
            public FloatList()
            { }

            public FloatList(int length):base(length)
            {}

            public FloatList(IEnumerable<float> input)
                : base(input)
            { }

            public static FloatList operator +(FloatList input,float m)
            {
                FloatList list = new FloatList();
                for(int i=0;i<input.Count;i++)
                {
                    list.Add(input[i] + m);
                }
                return list;
            }


          ...其它的省略
        }

    因为股票里面的数据实际上就是Float类型了。

    这样你就可以对它进行操作符的重载了。 

    再接下来你要实现的是一个种全局函数,实现的方式是通过父类来实现的。如果在是脚本语言的话,还可以用其它的方式。

    这样的话你只要让你的类去继承BaseFunctions类就可以实现了。

    看我们的一个例子

    public class MACDHelper:BaseFunctions
        {
            /// <summary>
            
    /// DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
            
    /// DEA  : EMA(DIFF,M);
            
    /// MACD : 2*(DIFF-DEA), COLORSTICK;
            
    /// </summary>
            
    /// <param name="list"></param>
            
    /// <param name="?"></param>
            
    /// <returns></returns>
            public  MacdInfo Calculate(List<StockLog> list,int l,int s,int m)
            {
                this.StockLogs = list;
                var diff = EMA(CLOSE,s) - EMA(CLOSE,l);
                var dea = EMA(diff,m);
                var macd =  (diff - dea) *2;

              
                MacdInfo info = new MacdInfo();
                info.DEA = dea;
                info.Diff = diff;
                info.MACD = macd;

                return info;
            }

        }

    如果这个东西有启发到你,充话费的时候到我们店来充一下 http://lanhaifeng.taobao.com/ 

  • 相关阅读:
    学习笔记_2012_4_13垃圾回收原理与String类的学习
    第五篇
    HTML练习代码
    上课第一天base关键字
    第四篇
    firebug使用指南
    HTML5的新特性
    UML建模
    CSS学习总结
    (转载)About me [my way]
  • 原文地址:https://www.cnblogs.com/lovebanyi/p/2334332.html
Copyright © 2020-2023  润新知