Python实现Heikin Ashi(平均K线)

Heikin Ashi中文称作平均K线,从传统K线变异而来。相比传统K线,有消除一定噪声的优势,更具可读性和易分析性。无论是量化交易策略中还是交易员的交易中,都具有较高的实用性。

平均K线计算公式

Python实现Heikin Ashi(平均K线)_第1张图片
计算方式也十分的简单,小学二年级都会算。使用Python实现也非常简单。

Python实现

def heikin_ashi(df):
    c = ['open', 'high', 'low', 'close']
    ha = df.copy()
    ha['close'] = (df[c].sum(axis=1))/4
    ha['open'] = (df['open'].shift() + df['close'].shift())/2
    ha['high'] = df[c].max(axis=1)
    ha['low'] = df[c].min(axis=1)
    return ha.dropna()

使用mplfinance库画出K线,比较一下传统K线和平均K线。

ha_data = heikin_ashi(data)
fig = mf.figure(style='charles')
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2)
mf.plot(data, type='candle', ax=ax1, mav=(10, 60), axtitle='Normal K')
mf.plot(ha_data, type='candle', ax=ax2, mav=(10, 60), axtitle='Heikin Ashi')
mf.show()

Python实现Heikin Ashi(平均K线)_第2张图片
可能是我数据的问题,一眼看上去感觉区别不大,但是仔细观察,还是能发现差别。

真的优秀吗?

评判平均K线是否真的如此优秀,是一项比较复杂的工作。不同市场,不同行情,不同合约其表现可能是不同的,甚至千差万别。我只测试了其在双均线策略上的表现。

合约:RB2210,时间:3.26~8.28,周期:15min, 策略:ma8上穿ma230做多,下穿做空。

胜率 盈亏比 收益率 年化收益率 最大回测 年化夏普率 年化提诺比率
传统K线 36.25% 2.81 36.37% 109.29% 32.74% 1.2033 1.1708
平均K线 37.61% 3.13 52.31% 172.30% 33.79% 1.4701 1.4185

平均K线的表现确实略微优秀。但是配合其他指标的表现,需要更多的测试。

你可能感兴趣的:(python,量化交易,python,开发语言)