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;
        }

}

C#,数据类型扩展 z的更多相关文章

  1. Java数据类型扩展及面试题讲解

    这是关于数据类型的面试题,还是比较重要的. 1.整数拓展: 我们肯定都或多或少知道一个问题,叫进制问题.咱们常见的电脑里的二进制,然后咱们平时生活中用的是十进制,然后咱们工作的时候还有一个十六进制跟八 ...

  2. 6.JavaSE之数据类型扩展及面试题讲解

    整数:二进制0b 十进制 八进制0 十六进制0x 浮点数:银行业务,关于钱的,Java有个BigDecimal数学工具类,用这个计算.最好完全避免使用浮点数进行比较.因为float 是有限的离散的,它 ...

  3. Java基础系列(9)- 数据类型扩展及常见面试题

    整数拓展 // 整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x // 同一个数字在不同进制中,结果是不同的,进制换算 int i = 10; int i2 = 010; // 八进制 i ...

  4. 【12c】扩展数据类型(Extended Data Types)-- MAX_STRING_SIZE

    [12c]扩展数据类型(Extended Data Types)-- MAX_STRING_SIZE 在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的 ...

  5. Util应用程序框架公共操作类(三):数据类型转换公共操作类(扩展篇)

    上一篇以TDD方式介绍了数据类型转换公共操作类的开发,并提供了单元测试和实现代码,本文将演示通过扩展方法来增强公共操作类,以便调用时更加简化. 下面以字符串转换为List<Guid>为例进 ...

  6. SQL2008 的 日期数据类型

    摘要 你是否曾经想在数据库中存储一个日期而没有时间部分,或者想存储一个时间值希望有更高的精度?在SQL Server 2008的介绍中,微软介绍了一些新的日期数据类允许你只存储一个日期.更高精度的时间 ...

  7. Hive 5、Hive 的数据类型 和 DDL Data Definition Language)

    官方帮助文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL Hive的数据类型 -- 扩展数据类型data_t ...

  8. c#中的数据类型简介

    一.C#中的变量和常量 C#中用于定义常量的方式有两种一个使用const关键字,一个是用readonly关键字.使用const定义的常量叫静态常量(compile-time constant),用re ...

  9. Umbraco扩展开发

    国内Umbraco方面的资料很少,搜集到一些国外的优秀项目或插件.记录下来,便于日后使用: backoffice:https://github.com/TimGeyssens 后台扩展UI,可以在这里 ...

随机推荐

  1. 20165203 预备作业3 Linux安装及学习

    一.安装虚拟机 1.下载问题:当自己在虚拟机上下载ubuntu时,总是下载好长时间,而且最后下载失败,这让我很苦恼. 解决方案:求助同学后,同学给了我一个中文版官网的网址http://cn.ubunt ...

  2. Activity总结练习

    package com.example.wang.myapplication; import android.content.Intent; import android.os.Bundle; imp ...

  3. day7 反射

    反射是python开发中常用的功能,伴随开发的整个过程,因此要熟练掌握反射的用法. 反射常用的函数有四个:hasattr().getattr().setattr()和delattr()四个反射的函数. ...

  4. 【LOJ】#2055. 「TJOI / HEOI2016」排序

    题解 看错题了,我以为是询问Q是个数字,问它在哪个位置 我一想这不直接01序列搞一下就好了嘛(事实上是012) 然后呢,我发现样例没过. 啊我看错题了,问的是Q这个位置是啥-- 哦,套用我之前的想法不 ...

  5. 用户管理和FTP服务配置

    批量创建用户 python脚本:creuser.py import osulist=open('usernames','r')for x in ulist: cmd="useradd -g ...

  6. shell 规范

    代码风格规范 开头有“蛇棒” 所谓shebang其实就是在很多脚本的第一行出现的以”#!”开头的注释,他指明了当我们没有指定解释器的时候默认的解释器,一般可能是下面这样: #!/bin/bash 当然 ...

  7. jdk1.8安装后查看Java -version出错

    最近在电脑行安装了多个jdk的版本 分别是jdk1.6,jdk1.7,jdk1.8三个版本,在配置环境变量的时候,选择的是jdk1.7; 但是奇怪的是,当我在cmd中输入java -version后, ...

  8. Tkinter制作简单的python编辑器

    想要制作简单的python脚本编辑器,其中文字输入代码部分使用Tkinter中的Text控件即可实现. 但是问题是,如何实现高亮呢?参考python自带的编辑器:python27/vidle文件夹中的 ...

  9. [HNOI2011]数学作业 --- 矩阵优化

    [HNOI2011]数学作业 题目描述: 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N 和 M ,要求计算\(Concatenate(1..N)\; Mod\; ...

  10. Codeforces Round #493 (Div 2) (A~E)

    目录 Codeforces 998 A.Balloons B.Cutting C.Convert to Ones D.Roman Digits E.Sky Full of Stars(容斥 计数) C ...