量化日记:指标实践及理解

DMI 指标

今天学习/实践了 DMI 指标。DMI 指标由三部分组成 ADS +DI -DI。这些值的基础都是K线图四个价格之间的差价。DMI 三个指标的计算过程相对较为复杂。基础原料是 在 最高价和收盘价 最低价和收盘价 最高价和最低价 之间的差中去最大值。并在此基础上 做了 (通常14日)均线的平滑处理。基本上是一个单纯价格波动指标,没有考虑交易量信息。ADS主要代表市场当前状态的强弱,其本身并无方向性。而 +DI -DI 代表的一个是上升动向,一个是下跌动向。两者交叉处通常视为买卖信号。+DI 上穿 -DI 为买入, -DI 上穿 +DI 为卖出。

ADS代表市场趋势的强弱程度,这个指标不管上涨趋势还是下跌趋势,只要趋势强烈,他的值就会很高。趋势转弱,他的值就会降低。感觉这个指标会很有用处,牛皮市中,这个指标的值会很低,之前实现的做市策略就是需要这样的趋势程度检测。在趋势强的时候,上升趋势适合使用网格策略,在牛皮市中更适合做市策略。网格策略是越跌越买,需要有一定趋势才能赚钱。而做市策略是在买1和卖1 之间赚取差价,最怕的就是买入和卖出价格之间的剧烈波动。

今天实现的DMI 指标经过一段时间的调参,在今年1月到现在的这段熊市回测结果还不错,跑赢大盘还盈利0.7个点。总的来说跑赢大盘50多个点。而在去年中旬到现在的这段牛市中,比特币价格总的说是向上70%所有,而这段时间的回测结果只盈利20%,甚至更低。关键的参数有几个:

  1. +DI 上穿 -DI 之间是否立即作出买入信号,还是等待信号做实

感觉DMI跟MACD不同的是,+DI 和 -DI很少出现钝化现象,信号大部分都比较明显,就是准确性可能不如人意。所以策略去掉了 上穿XXX点之后才能买入的这个限制。

  1. 提前信号买入

因为上面的DI指标很少钝化,所以我觉得应该观察 DI之间趋势,如果有收敛交叉迹象则发出买入信号。这段程度还未经过严格回测。总的来说有一些技术难题,即如何判断DI之间趋势正在收敛。现在是使用 +DI 和 -DI 之差,连续三根K线持续收缩到 -1 之下为买入信号。这些参数都是需要仔细调整回测。

该策略还需仔细回测分析,尝试更多参数看能否达到理想的回测结果。

MACD 指标

MACD 指标的策略弄了好长时间,由于最近给 gekko数据的加持,终于有大量数据可供回测。回测的结果很不理想。仔细想了一下,可能原因并不只是在参数调优,而有可能在那些MACD指标失效的情况导致的亏损。MACD指标失效的概率还是蛮高的,具体多高因为没做过具体的统计也不好乱说。但究其原因也是与市场的不确定性不无关系。这也是之前价值投资流派批判技术分析流派一贯的说辞。股价的走势很有可能就是随机行走,这是由于市场中不同类型的参与者过多导致的。不同参与者有着不同的诉求、性格、文化背景、风险承受能力等,还有很多在爆露之前完全是黑盒的黑天鹅事件,。这些因素导致了市场的不可预测性。哪怕是技术上的趋势,技术上的强势,市场的风向也会转瞬即逝,以完全相反的方向运行。嗯 还是那句话,一切都是概率大问题。但概率是最大问题,1%可能性发生的时间在他发生的那一刻就成了100%。不过这是否就证明技术分析的这些手段和方法是无效的呢,我觉得也不能这么说。这些量价指标反映了市场的供需管理,价格是处多空双方博弈的结果,成交信息反映出市场上投资者情绪。这些指标在短期内应该是有效的。短期内市场环境不会发生大的变化,或者还没来得及发生变化。在这个时候,这些反应投资者情绪、供需关系、多空博弈的指标就会派上用武之地。我还是觉得技术分析应该停留在极短期的交易上。比如预测下一分钟股价的趋势,并根据这些趋势的预测高频薄利的赚取利润。但是技术指标的短期 1m - 10m 回测结果都非常不理想。而相对长期 1H 的回测结果要好很多。

虽然归根结底也有可能是策略调参,手续费等的问题。1M-10M的交易频率非常高,亏损几率也非常高。导致最后很有可能回测结果是全亏了 99%。高频交易还是需要细心仔细调整参数和擦略执行方式。低频的趋势跟踪也有问题,趋势策略都是亏小赚大,但是我的 DMI和 MACD都是亏的可不小,次数还非常多导致最后就赔钱了。也许是交易方式,信号判断方面的问题,具体还是要仔细研究一下。

动态加权

动态加权策略已经酝酿了很久还一直没来得记实现。主要的思虑就是根据分析师对股票的评级进行加权,分析师的评级越准确,他的权重就越高。今天还想到一个思虑就是基金的持仓,这也是一个权重收集的好源头。主要是这些数据都是结构化的,不用通过神经网络通篇对新闻和研报进行语义分析(主要是分析的也不准啊)。只需要一个权重模型就好了。机器学习模型还是很棒的,通过ML学习技术指标和处理动态加权都可以。但就是ML模型需要一个优化的过程,现在我的ML水平也就二把刀。说实话也没自己优化过好用的模型。不过倒是可以通过权重模型动态训练一个增强学习模型来处理问题。增强学习就不需要标记,在实践中训练效果会更好些。

2018-08-11