GithubHelp home page GithubHelp logo

stock-cci's Introduction

stock-cci

计算股票的cci, 判断cci指标的可行性

概念

顺势指标又叫CCI指标,CCI指标是美国股市技术分析 家唐纳德·蓝伯特(Donald Lambert)于20世纪80年代提出的,专门测量股价、外汇或者贵金属交易是否已超出常态分布范围。属于超买超卖类指标中较特殊的一种。波动于正无穷大和负无穷大之间。但是,又不需要以0为中轴线,这一点也和波动于正无穷大和负无穷大的指标不同。

指标用法

1.CCI指标曲线在+100线~-100线的常态区间里运行时,CCI指标参考意义不大,可以用KDJ等其它技术指标进行研判。

2.CCI指标曲线从上向下突破+100线而重新进入常态区间时,表明市场价格的上涨阶段可能结束,将进入一个比较长时间的震荡整理阶段,应及时平多做空。

3.CCI指标曲线从上向下突破-100线而进入另一个非常态区间(超卖区)时,表明市场价格的弱势状态已经形成,将进入一个比较长的寻底过程,可以持有空单等待更高利润。如果CCI指标曲线在超卖区运行了相当长的一段时间后开始掉头向上,表明价格的短期底部初步探明,可以少量建仓。CCI指标曲线在超卖区运行的时间越长,确认短期的底部的准确度越高。

4. CCI指标曲线从下向上突破-100线而重新进入常态区间时,表明市场价格的探底阶段可能结束,有可能进入一个盘整阶段,可以逢低少量做多。

5. CCI指标曲线从下向上突破+100线而进入非常态区间(超买区)时,表明市场价格已经脱离常态而进入强势状态,如果伴随较大的市场交投,应及时介入成功率将很大。

6. CCI指标曲线从下向上突破+100线而进入非常态区间(超买区)后,只要CCI指标曲线一直朝上运行,表明价格依然保持强势可以继续持有待涨。但是,如果在远离+100线的地方开始掉头向下时,则表明市场价格的强势状态将可能难以维持,涨势可能转弱,应考虑卖出。如果前期的短期涨幅过高同时价格回落时交投活跃,则应该果断逢高卖出或做空。

公式

关于公式有两种:

公式一:

TYP:=(HIGH+LOW+CLOSE)/3;
CCI:(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N));

该公式来自通达信, 含义如下:

TYP赋值:(最高价+最低价+收盘价)/3
输出CCI:(TYP-TYP的N日简单移动平均)/(0.015*TYP的N日平均绝对偏差)

公式二:

cci公式

该公式摘录于https://www.joinquant.com/view/community/detail/219

程序中我采用的是公式二, 生成的CCI单独写入.csv文件

文件说明

  • README.md
  • CCI.py // 主程序

参数说明

id param type default mean demo necessary
1 file_path_prefix str None 日线数据文件目录前缀 'F:\\files\\sharesDatas\\kline\\' True
2 cci_path_prefix str None CCI数据将要保存的目录前缀 'F:\\files\\sharesDatas\\cci\\' True
3 code str / int None 股票代码 000001 False
4 end_date str '0000-00-00' 最早的日期(截止日期) '2009-01-01' False

调用 analyze_all()来计算所有股票的cci;

调用 analyze_one()来计算传入code的股票

总共设计了4个类如下:

  • CCIAnalyze(object)        //  CCI分析类
    • analyze_all(self)     //  分析所有股票
    • analyze_one(self)     //  分析一只股票
    • test_buy(self)       //  测试购买(策略一:在下文说明)
    • test_buy_2(self)      //  测试购买(策略二:在下文说明)
  • CCICalculate(object)      //  根据公式二计算CCI
  • CCICalculate_2(object)    //  根据公式一计算CCI
  • BuyInfo(object)        //  购买辅助类

测试结果

在进行测试购买时, 采用的策略有2种,如下:

策略一:

对应CCIAnalyze(object)中的test_buy(self)方法, 当CCI向下突破-100时, 后一交易日买入, 等到CCI向上突破100时, 后一交易日卖出(由于计算出当日的CCI, 当日已不可买入/卖出,所以计算后一交易日买入/卖出)

策略二:

对应CCIAnalyze(object)中的test_buy_2(self)方法, 当CCI向下突破-100时, 继续观察, 等到向下达到第一个峰值时, 后一交易日买入,等到CCI向上突破100时, 继续观察, 等到向上达到第一个峰值时, 后一交易日卖出(和策略一一样, 计算出CCI后只能后一日买入, 而策略二不同的是, 要判断达到第一个峰值, 必须确定峰值后一日CCI降低, 所以测试时, 购买的是峰值的后第2个交易日)

经过若干次测试,分别使用的数据是2019-01-01 ~ 2019-04-26, 2018-01-01 ~ 2019-04-26, 2017-01-01 ~ 2019-04-26, 测试的结果, 购买策略一的收益率大概为56%, 可见这个指标有一定依据, 但是盈利的几率不够高; 而策略二的收益率大概为57%, 较策略一高一点, 但是依旧无法将其作为购买的唯一指标, 以下是某次运行结果的部分截图:

CCI指标测试截图

stock-cci's People

Contributors

catsjuice avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.