上篇文章,本狐讨论了技术指标为什么会亏钱的问题,引发了不少读者的讨论。技术指标亏钱的原因有:技术指标是滞后的,只说明了当前的走势,不能预测未来的走势;技术指标反应了一部分人群的看法,反而成为了庄家、主力反向操作的机会;技术指标是基于历史经验和数据统计获得的,但是由于历史局限性,并未经过有效检验。
实践是检验真理的唯一标准,数据是检验技术指标准确的标准。技术指标是否准确,只有理论推导是不行的,一定需要数据检验。因此,本狐提出了几条数据检验的基准:
长周期的历史交易数据验证。长周期指时间跨度要长,至少经过几次市场的牛熊变换。大数据量的交易数据验证。交易不能局限在几支股票,或者某一类股票,最好是拿全市场的股票数据进行验证,包括创业板(涨跌幅不同),ST,大盘股,小盘股,指数成分股等。对真实交易的模拟,引入各种真实的客观限制。交易者的资金有限,不可能对市场上所有的符合技术指标的股票进行购买,需要限定持仓股数;涨跌幅买卖不成;停牌对资金的占用等。
本狐使用了A股市场2010年到2021年10月,近11年的市场A股所有日线数据进行检验,股票数量一共4424只,交易数据773万+。模拟交易模型分为两类:
无限制的交易模型。假设资金量无限,对交易日市场上的所有股票,只要技术指标是买入信号,且当前未持仓该股票,就进行买入;只要技术指标是卖出信号,且当前持仓该股票,就进行卖出。此交易模型用于检验指标的通用成功率,买卖后盈利计算为成功,买卖后亏损计算为失败,并统计所有买卖的平均盈利和最大亏损。固定持仓交易模型。这个模型更接近于真实,限制同时持仓的股票数量,设定为4只,每只占用约1/4的资金量。只要技术指对持仓股票发出卖出信号,就卖出持仓股票;同时,对市场上发出买入信号的股票随机选取进行买入,保证当前持仓4只股票,除非市场上的股票在当前交易日无买入信号。
以上两个交易模型的成交价均以股票当日的收盘价成交,如果当天涨停或者跌停则交易失败。所有交易忽略交易手续费,仅计算买卖的差价。
在技术指标中,均线是使用最广的技术指标,金叉买入,死叉卖出是大家都知道的买入、卖出信号。本狐这次就使用均线指标进行数据检验,均线使用5日和10日均线。代码使用了Python pandas_ta的sma,对应买入、卖出的代码片段如下:
def model_predict(self, s, fo, model_path):
df = pd.DataFrame({‘close’: s.close_price})
sma5 = df.ta.sma(length=5)
sma10 = df.ta.sma(lenghth=10)
pred_y = [0] * len(sma5)
for i in range(1, len(pred_y)):
if np.isnan(sma5[i]) or np.isnan(sma10[i]):
continue
# 5日上穿10日,买入
if sma5[i – 1] <= sma10[i – 1] and sma5[i] > sma10[i]:
pred_y[i] = self.buy_point
continue
# 5日下穿10日,卖出
if sma5[i – 1] >= sma10[i – 1] and sma5[i] < sma10[i]:
pred_y[i] = self.sell_point
return pred_y
接下来,就上实验的数据结果了:
UnlimitTrade
Evaluate stock count 4424, total sample length:7731826
Total trading count:433378, succeed count:151571, successful rate:0.349743
Revenue:0.003657, max gain:6.152896, max loss:-0.926157
—————————————————————————————————–
FixedTrade
Evaluate stock count 4424, total sample length:7731826
Total trading count:1105, succeed count:425, successful rate:0.384615
Average revenue:-0.000132, peak gain: 3.980542, max single gain:1.930748
Max single loss:-0.529183, max backward:-0.885638
Accumulated revenue:-0.540122, Init asset: 400000, Final asset:183951
数据解读:
无限制交易模型,共交易次数43万次,其中盈利的交易次数34.9%。均线技术指标的成功率只有1/3,是不是远低于你的预期?所有单次交易的最大盈利有6.15倍,最大亏损-92%。平均交易的盈利是0.37%。固定持仓4只股票交易模型,共交易次数1105次,其中盈利的交易次数38%。和无限制交易模型的测试结果差不多,成功率约为3成。交易中的最大亏损有52.9%,最大回撤88%。10年下来的最终盈利是-54%。如果在2010年初有40万,到21年10月就只剩下18万了!
10年真实的牛熊市真实的数据实验检测的结果,是否和你的传统经验有很大的出入?广泛流传并使用的均线技术指标的成功率只有3成!依赖均线技术指标操作最终将带来50%以上的巨大亏损!
很遗憾,投资市场没有所谓的银弹,或者不败的秘籍。远离一切技术指标吧,当看到股评节目中的专家头头是道地进行技术分析时,看看就好,千万不要据此做出买卖决策。技术指标由于受众广,或许能作为投资者的情绪反应,但是万万不能作为投资的风行标