本帖最后由 TaoZzzzz 于 2018-4-16 15:26 编辑

【指标量化】动量指标——CMO钱德动量摆动指标

1523172855(1).png (72.21 KB, 下载次数: 33)

2018-4-16 15:18 上传

致初学者:

大家好,我是一个马叉虫的宽客:Tao,从本期开始,我将为大家带来一系列的量化指标。众所周知,认识技术指标是作为一个从事二级市场必不可少的技能。相信开始对量化感兴趣的宽客们都有一两个自己擅长的技术指标,而对技术指标进行量化策略的构建是最简单最基本的量化实现,宽客们,通过本期学习,一起来实现并尝试改善专属于自己的技术指标吧!

研究基地及产出地

DigQuant点宽网,全网唯一基于 MATLAB 的专业在线量化社区,“不是人人都能成为宽客”,成为宽客的你都是独特的!

点宽网策略资源池全面开放216+基于MATLAB的量化投资策略,随你下载,任你玩!点宽量化策略研究平台auto-trader支持股票、期货、期权等多品种标的回测、实盘交易。

简介

CMO钱德动量摆动指标,动量指标之一,与其他动量指标摆动指标如相对强弱指标(RSI)和随机指标(KDJ)不同,钱德动量指标在计算公式的分子中采用上涨日和下跌日的数据。 CMO指标是寻找极度超买和极度超卖的条件。

参考文献

[1]]MBA智库百科.CMO词条

[2]百度百科.CMO词条

基本用法

1、当CMO上穿0线,买入信号产生;当CMO下穿0线,卖出信号产生

2、当CMO大于50时,处于超买状态;当CMO小于-50时处于超卖状态

3、CMO的绝对值越高,趋势越强。较低的CMO绝对值(0附近)标示的证券在水平方向波动

4、当CMO上穿/下穿移动平均线时,将是买/卖信号

5、可以利用CMO衡量趋势强度的能力来改进趋势跟踪机制。例如当CMO的绝对值较高时仅根据趋势跟踪指标来操作;当CMO的绝对值较低时转而采用交易范围指标

本策略基本用法

当CMO上穿0线,买入信号产生;当CMO下穿0线,卖出信号产生。

CCI计算方法

其中:

Su是今日收盘价与昨日收盘价(上涨日)差值加总。若当日下跌,则增加值为0;

Sd是今日收盘价与做日收盘价(下跌日)差值的绝对值加总。若当日上涨,则增加值为0;

策略代码

请到点宽策略资源池下载:【指标量化】动量指标——CMO钱德动量摆动指标

策略函数:

function AT_CMO(bInit,bDayBegin,cellPar)

%CMO动量波动指标择时策略:

%arrayfun函数:MATLAB的滚动窗口运行函数,具有并行运算效果,提高代码的运行效率

%%

%全局变量:

global g_idxK;

global g_idxAlpha;

global TLen;

global DayNum;

%赋值:

Len = cellPar{1};

m=cellPar{2};

DayTime=cellPar{3};

%%

if bInit

%初始化读取所有数据:

traderSetParalMode(false); %并行执行时方便设置断点调试

g_idxK=traderRegKData('day',1); %数据提取

TLen = length(g_idxK(:,1)); %股票总数量

g_idxAlpha=traderRegUserIndi(@myCMO,{Len}); %策略逻辑实现

DayNum=0;

else

%主题策略部分:

if bDayBegin

%每日交易第一根Bar初始化设置:

DayNum=DayNum+1;

end

if DayNum==1||mod(DayNum,DayTime)==0

disp(DayNum);

%提取数据:

CMO = traderGetRegUserIndi(g_idxAlpha,1); %alpha因子值读取

if (sum(CMO==0)==TLen)

return;

else

%资金分配:

num=sum(CMO>m);

mp=traderGetAccountPositionV2(1,1:TLen); %仓位读取

[~,MarketCap,~,~,~] = traderGetAccountInfoV2(1); %获取动态权益

Stock_flow = ((MarketCap)*0.4)/num; % 每只股票分配的资金

getKData = traderGetRegKData(g_idxK,1,false);%获取K线数据

Close=getKData(5:8:end,1);

shareNum = 100*floor((Stock_flow./Close)/100); %计算购买股票数量;

%信号设置:

A=CMO>m&mp==0&shareNum>0;  %买入

B=CMO

%下单交易:

idx=1:TLen;

%进仓:

arrayfun(@(x) traderDirectBuyV2(1,x,shareNum(x),0,'market','buy1'), idx(A==1), 'UniformOutput', false);

%平仓:

arrayfun(@(x) traderPositionToV2(1,x,0,0,'market','sell'), idx(B==1), 'UniformOutput', false);

end

end

end

end

function value=myCMO(cellPar,bpPFCell)

%全局变量声明:

global g_idxK;

global TLen;

%赋值:

Len  = cellPar{1};

%提取数据:

getKData = traderGetRegKData(g_idxK,Len,false,bpPFCell);%getKData:双标签矩阵:每8行表示一只标的,

%八行中每行对应的数据为:(1)时间、(2)开盘价、(3)最高价、(4)最低价、(5)收盘价、(6)成交量、(7)成交金额、(8)持仓量。

close=getKData(5:8:end,:);

value=zeros(size(close(:,1)));

if sum(isnan(close(:,1)))==TLen

return;

else

close(isnan(close(:,1)))=0;

CMOValue=zeros(size(close));

diffPrice=zeros(size(close));

diffPrice(:,2:end)=close(:,2:end)-close(:,1:end-1);

value=cell2mat(arrayfun(@(i) rollCMO(diffPrice(:,i-Len+1:i)),Len:size(close,2),'UniformOutput',false));

CMOValue(:,Len:end)=value;

end

value=CMOValue(:,end);

end

function Value=rollCMO(Temp)

A=Temp;

A(A<=0)=0;

B=Temp;

B(B>=0)=0;

Value=(sum(A,2)-sum(abs(B),2))./sum(abs(Temp),2)*100;

end复制代码

执行脚本m文件:

tic;

%读取证券数据:

targetList = traderGetCodeList('hs300');

%参数设置:

Len = 10; %计算长度

m=0; %阈值

DayTime=1;

initTime = 20140101;

lastTime = 20180101;

% 在回测时设置初始资本10 000 000元、手续费率0.000026、无风险利率0.02、滑价0、默认1下一个bar的开盘价、默认0成交价、默认0直接成交

traderSetBacktest(10000000,0.000026,0.02,0,1,0,0);

AccountList = {'StockBackReplay'};

traderRunBacktestV2('runAT_CMO',@AT_CMO,{Len,m,DayTime},AccountList,targetList,'day',1,initTime,lastTime,'FWard');

AccountList = {'StockSimAcc'};

traderRunRealTradeV2('runAT_CMO',@AT_CMO,{Len,m,DayTime,freq},AccountList,targetList,'min',10,20180301,'FWard');

toc;复制代码

回测分析

一、回测设置:

1、回测标的:HS300

2、回测时间:20140101-20180101

3、初始资金:1千万

4、资金分配:根据当期选定的买入股票数,将40%的流动资金平均分配到准备下单的股票标的当中。

二、回测结果:

权益曲线:

绩效分析:指标名称指标值指标名称指标值指标名称指标值

初始资金收益率69.77%最大回撤率19.88%夏普比率1.1263

算术年化收益率18%净利/最大潜在亏损2.36Calmar比率0.6352

几何年化收益率14.63%手续费/净利0.0452Sortino比率1.5455

盈利因子1.4573胜率49.48%平均盈利/平均亏损1.57

结论:

1、CMO指标总体回测效果良好。

2、本策略没有进行止盈止损设置,回测结果有可能存在潜在风险和收益。

动量风险因子 matlab,【指标量化】动量指标——CMO钱德动量摆动指标相关推荐

  1. 动量风险因子 matlab,期货市场存在较强的时间序列动量效应

    时间序列动量效应,用不同类别金融资产构建的组合具有可观的超额收益,此策略收益不能用传统资产定价理论的风险因子所解释,并且在极端市场行情下表现尤其优异.观察投机者和套期保值者的交易行为,发现投机者基于时 ...

  2. 动量风险因子 matlab,基于时间序列动量策略的研究

    Moskowitz.Ooi和Pedersen(2012)在<时间序列动量>中发现,包括股指期货.外汇远期.商品期货.债券期货在内的58种金融资产的价格都存在明显的"时间序列动量效 ...

  3. matlab中Cci,【指标量化】超买超卖——CCI 顺势指标

    本帖最后由 TaoZzzzz 于 2018-4-16 15:30 编辑 [指标量化]超买超卖--CCI 顺势指标 1523335607(1).png (60.65 KB, 下载次数: 13) 2018 ...

  4. 动量反转模型 Matlab code,量化选股策略——动量翻转模型

    所谓动量效应是指早期收益率较高的股票在接下来的表现仍会超过早期收益率低的股票:而反转效应就是买进过去表现差的股票而卖出过去表现好的股票来进行套利的投资方法. 1993年,美国学者Je-gadeeshk ...

  5. 高频量价因子在股票和期货中的表现 - 动量类因子

    引言 >>> 研究目的 本文参考海通证券研报<高频量价因子在股票和期货中的表现>,对其动量类因子--趋势强度因子和改进反转因子,进行单因子分析测试,以从各个方面考察因子的 ...

  6. 基本面量化(Quantamental)——财务指标量化策略

    公司的基本面因素一直具备滞后性,令基本面的量化出现巨大困难.而从上市公司的基本面因素来看,一般只有每个季度的公布期才会有财务指标的更新,而这种财务指标的滞后性对股票表现是否有影响呢?如何去规避基本面滞 ...

  7. 【指标量化】压力支撑——RSRS阻力支撑相对强度指标

    [压力支撑]RSRS阻力支撑相对强度市场择时指标 致初学者:     大家好,我是一个马叉虫的宽客:Tao,从本期开始,我将为大家带来一系列的量化指标.众所周知,认识技术指标是作为一个从事二级市场必不 ...

  8. 量化交易的相对强弱(RSI )指标计算及策略

    顾名思义,相对强弱指数 (RSI) 指标告诉我们资产的相对强弱.换句话说,RSI 告诉我们股票相对于自身的表现(或不表现).RSI 被视为一种强大的技术指标,可用于分析市场,并且是交易者武器库的重要组 ...

  9. 量化投资常用技能——指标篇2:详解BOLL(布林线)指标,及其代码实现和绘图

    量化投资常用技能 系列文章目录 我们已经介绍了三篇关于量化投资方面绘图的文章和一篇指标类的推导和介绍的文章,大家有兴趣可以了解一下 绘图篇 量化投资常用技能--绘图篇 1:绘制股票收盘价格曲线和och ...

最新文章

  1. 在Android中,如何以编程方式在dp中设置边距?
  2. row_number() over(partition by的用法
  3. 文件创建和删除命令:touch、rm
  4. Linux 进阶笔记(一)
  5. How to find Material based on Sales Organization and Distribution Channel
  6. mysql mongodb b树_为何Mongodb索引用B树,而Mysql用B+树?
  7. 第二百四十八天 how can I 坚持
  8. stm32f1的存储器与复位
  9. 手机为什么取消了内存卡?
  10. DirectX11 With Windows SDK--07 添加光照与常用几何模型、光栅化状态
  11. ant design 时间控件清空值
  12. 移动硬盘制作DOS启动盘的方法
  13. dof景深matlab,景深(DOF)
  14. igraph入门教程
  15. codeigniter linux url 大写,CodeIgniter中使用Smarty3基本配置
  16. Chrome浏览器搜索引擎问题
  17. Sumatra PDF阅读器——快捷键与配置
  18. PEWIN32 PRO site key
  19. 计算机2010基础试题,2010年国硕士研究生入学统一考试计算机基础试题及答案
  20. 转移到ios下载安卓_转移到ios官方app下载|转移到IOS安卓版下载_v2.10.0_9ht安卓下载...

热门文章

  1. 利用Python将图片序列转换成视频
  2. 晶圆测试开发软件,晶圆级可靠性测试:器件开发的关键步骤(一)
  3. SAP配置——生产订单
  4. 通过日期选择器输入时间并判断年龄(周岁)
  5. 变色龙算法chameleon聚类
  6. 以太坊go-ethereum客户端查询交易列表(二)
  7. 数据加密 三种密钥交换算法详解(RSA DHE ECDHE)
  8. EFT测试的实质及影响
  9. 洛杉矶车展公布首届“零排放奖”,共有27款车型入围
  10. cookie,sessionStorage 和 localStorage 的区别 cookie弊端