可以把传统行情软件的指标移过来吗?
可以的,并且搬到这边来也是一件很容易的事情,我们的股票自动交易软件已经有提供了一些基础的函数。

到目前为止我们股票自动交易软件提供的函数有

  1. MA平均
  2. EMA滑动平均
  3. WMA加权平均
  4. SMA移动平均
  5. HHV某周期内最高价
  6. LLV某周期最低价
  7. CROSS穿越。

像EMA它的定义是 Y=[2*X+(N-1)*Y']/(N+1) Y'是上一个周期的计算值。这样的函数是一个递归函数,不断的调用前一个周期的值来参加计算的。我们为了加快计算的速度,没有采用递归的方式。
我们软件实现的EMA是这样的
public static List<float> EMA(this List<float> input,int n)
        {
            float[] list = new float[input.Count];
            list[0] = input[0];

float x;
            float y;
            float yLast;
            for (int i = 1;i < input.Count;i++)
            {
                yLast = list[i - 1];
                x = input[i];

y = (x * 2 + (n - 1) * yLast) / (n + 1);
                list[i] = y;
            }
            return list.ToList();
        }

我们直接根据原来的值返回一个有同样位数的返回值。这样软件同样可以非常方便的去判断。最后期的一个值是不是满足条件了。

现在来看一下如何写一个MACD的函数

DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA : EMA(DIFF,M);
MACD : 2*(DIFF-DEA), COLORSTICK;   
上面的是Macd在大智慧中的函数。
先看一下我们软件中的代码 我自己先定义了一个MacdInfo的类

public class MacdInfo
    {
        public List<float> Diff
        { get; set; }

public List<float> DEA
        { get; set; }
public List<float> MACD
        { get; set; }
    }
Diff DEA MACD上面的三个我们都有定义了。再看一下计算类是什么实现的

public class MACD
    {
        /// <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 s,int l,int m)
        {
            var closeList = list.Select(it => it.Close).ToList();//先得到所有的Close的值
            var shortList = closeList.EMA(s);//算出短期的滑动平均
            var longList = closeList.EMA(l);//算出长期的滑动平均

List<float> diff = new List<float>();
            for (int i = 0;i < shortList.Count;i++)//使用循环的方法算出每一个周期的diff
            {
                diff.Add(shortList[i] - longList[i]);
            }
var dea = diff.EMA(m);//跟据diff算出dea
            List<float> macd = new List<float>();
            for (int i = 0;i < diff.Count;i++)//算出macd
            {
                macd.Add(2 * (diff[i] - dea[i]));
            }
            MacdInfo info = new MacdInfo();
            info.DEA = dea;
            info.Diff = diff;
            info.MACD = macd;
return info;
        }
    }
///StockLog是我们的股票K线记录类
 public class StockLog
    {
        public string StockCode
        { get; set; }
public DateTime Date
        { get; set; }
public float Open
        { get; set; }
public float Low
        { get; set; }
public float Close
        { get; set; }
public float High
        { get; set; }
///新浪不支持啊
        //public decimal Amount
        //{ get; set; }
public float Volume
        { get; set; }

        public StockLog Clone()
        {
            return this.MemberwiseClone() as StockLog;
        }
public string ToChartTip()
        {
            return string.Format("高:{0}\r\n低:{1}\r\n开:{2}\r\n收:{3}\r\n日期:{4}", High.ToString("f3"), Low.ToString("f3"), Open.ToString("f3"), Close.ToString("f3"),Date.ToShortDateString());
        }
    }
这样我们就完成了一个macd的指标了,如果把这个指标变成可交易策略。在后续的帮助里会继续介绍到。

转载于:https://www.cnblogs.com/lovebanyi/archive/2011/10/04/2198849.html

如何移植行情软件的指标到千发股票自动交易软件?相关推荐

  1. 腾讯再发股票吸引人才,受益2.57万名员工,人均超8万港元

    记者 | 周姝祺 12月1日晚,腾讯控股(00700.HK)发布公告,公司董事会已决议向不少于25700位奖励人士授予合共4410829股奖励股份.据悉,奖励人士将包括雇员. 行政人员或高级职员.董事 ...

  2. 爱发php企业发卡网源码_爱发个人版自动发卡平台PHP开源源码【官方正版】

    爱发个人版自动发卡平台PHP开源网站源码 是我官方研发出个人版自动发卡平台系统 演示站:http://ka.yc88.net 备用:http://php2.a8tg.com/ 后台:http://ph ...

  3. 自动发货-用千牛如何做到发货号自动转接人工号

    如果你的单量不大.用千牛同时接客服跟发货的话.在自动发旺旺消息的时候尽量不要去切换聊天窗口否则会有发错风险哦 这里只针对使用千牛的用户,设置一个子帐号专门用来发货.主号或者其他号接客服时,买家联系发货 ...

  4. 通达信 移动平均算法_通达信组合指标,如何使用股票池进行自动交易?实现程序化交易...

    除了使用股票池自动交易外,也可以使用预警指标公式自动下单或者图表自动交易来实现股票程序化交易.这一节先介绍利用股票池来实现自动化交易和实现股票程序化交易. 股票池自动交易图文 1.绑定 order.d ...

  5. 人均6.5万!鹅厂又双叒叕给员工发股票了

    转载自:新智元 [导读]鹅厂又发钱了!12月1日,腾讯控股发布公告称,公司决定给不少于2.57万名员工股票奖励,人均可获得超8万港元(约6.5万元).在这个互联网冬天来临的时刻,腾讯不仅是为了留住员工 ...

  6. python 股票指标库talib_TaLib在股票技术分析中的应用

    1.TaLib与技术分析技术分析是股票分析十分有效直接的手段,在实际投资中我们常常需要计算各种简单或复杂的技术指标来分析参考 对于技术指标的定义基本都大同小异,很多都是通用的且模块化的东西 对于不会写 ...

  7. 股票指标 PHP,怎样将股票指标改为选股指标

    刚刚股票入门的股民经常发现有些指标很准确,如是想将股票指标改成选股指标,但不知道如果着手,本文详细介绍怎样将股票指标改为选股指标. 步骤一.将所有的显示式":",改为不显示式&qu ...

  8. 欧奈尔的RPS指标如何使用到股票预测

    前言 1988年,欧奈尔将他的投资理念写成了<笑傲股市How to Make Money in Stocks>.书中总结了选股模式CANSLIM模型,每一个字母都代表一种尚未发动大涨势的潜 ...

  9. jax指标的用法_股票指标参数用法.doc

    股票指标参数用法 ABI 1.ABI绝对广量主要用于扫瞄瞬间极端的多头或空头力道: 2.ABI值高于320-350以上时,视为市场发生[冲力现象]: 3.越高的数据代表市场转向的机会越大: 4.随著上 ...

最新文章

  1. maven 内置参数
  2. 006_Topic消息模式发送对象消息
  3. 【原创】iframe与父页面之间,变量、方法互相调用
  4. C++项目库包含,dll引用问题,直接把缺失的dll或库放置可执行文件里
  5. MATLAB偏振光的反射与折射,仿真程序动画作品--光的反射与折射*
  6. SGI opengl source code download
  7. SolarWinds 供应链攻击中的第四款恶意软件及其它动态
  8. mongodb 集合操作 (增删改查)
  9. python求最值_Python应用:python求极值点(波峰波谷)
  10. DXP-2004软件安装
  11. 美国高防服务器亿速云,亿速云香港高防裸金属服务器上线,更强悍的计算性能,更安全的DDoS攻击防护...
  12. python plt pyplot matplotlib绘图时形状异常
  13. jmeter-same user on each interation
  14. 研发人员欠缺的“不要脸”文化
  15. 恶意PPT文件夹带漏洞攻击和后门程序
  16. Eth-Trunk负载分担不均怎么办,如何通过Hash算法实现负载分担?
  17. 微信小程序——new Date()显示NAN + 正则表达式
  18. JWS 批注参考WebService注解
  19. [Vue warn]: Invalid VNode type: undefined
  20. 【CRR-FMM】A Concise Review of Recent Few-shot Meta-learning Methods

热门文章

  1. rabbitmq 限制速度_技术干货分享:RabbitMQ消息积压的几种解决思路
  2. mmse评估量表_简易精神状态评价量表(mmse量表) 打印版.doc
  3. 高亚芳 mysql_MySQL · 专家投稿 · MySQL数据库SYS CPU高的可能性分析
  4. webgl之3d动画
  5. 12 HTML5中的影音播放
  6. Linux下,如何给PHP安装pdo_mysql扩展
  7. Poj 2887-Big String Splay
  8. office365为新建账号发送欢迎邮件
  9. 先庆祝一下,冠军的心博客园诞生了!!
  10. Oracle误删除数据和表的恢复办法包括truncate