本文简单地介绍向上跳空交易策略的一般方法,通过该示例展示量化交易策略的开发步骤。
策略思路描述大跌后介入反弹的策略
大多数个股连续下跌多个交易日(如A股在今年一月初的情形),如果个股当天交易日相比前一个交易日向上跳开,即可买入。另外,给该策略附加一个条件,即在最近至少3个交易日的低价都未填补前面的向上跳空,这样就变为针对震荡行情的交易策略。

本策略观察的中小盘股票,流通市值大于10亿且小于100亿,价格大于3元小于100元,筛选出了2685只股票(行情截至日期20240222);最近10个交易日至少有7根阴线(不含当前交易日)。激活该策略转入监听的条件是2685只股票中有至少四分之三下跌,该策略激活后,开盘就扫描出现跳空的个股作为交易信号。
实施该策略的部分代码def stockswithupgaps(daily_md,n): open_lst = daily_md.open_p.to_list()[n:] close_lst = daily_md.close_p.tolist()[n:] high_lst = daily_md.high_p.tolist()[n:] low_lst = daily_md.low_p.tolist()[n:] dt_lst = daily_md.dt_occured.tolist()[n:] md_lst = list(zip(open_lst,close_lst,high_lst,low_lst,dt_lst)) tmp_high = high_lst[0:-1] tmp_low = low_lst[1:] tmp_dt = dt_lst[1:] upgaps = [[i,tmp_dt[i]] for i, x in enumerate(list(zip(tmp_low,tmp_high))) if round((x[0]-x[1])/x[1],2) > 0.01] return upgapsstocks_withgaps = []for i in range(0,len(history_mddaily[0])): tmp_results = stockswithupgaps(history_mddaily[0][i],-10) if len(tmp_results)>0: stocks_withgaps.append([i,history_mddaily[0][i].symbol[0],tmp_results])for itm in stocks_withgaps: print(itm) print(len(stocks_withgaps))
输出结果(部分):
[9, '600052', [[5, Timestamp('2024-02-19 00:00:00')]]][17, '600080', [[6, Timestamp('2024-02-20 00:00:00')]]][21, '600084', [[5, Timestamp('2024-02-19 00:00:00')]]][31, '600113', [[5, Timestamp('2024-02-19 00:00:00')]]][46, '600167', [[4, Timestamp('2024-02-08 00:00:00')]]][61, '600212', [[5, Timestamp('2024-02-19 00:00:00')]]][63, '600215', [[5, Timestamp('2024-02-19 00:00:00')]]]...[2575, '301339', [[5, Timestamp('2024-02-19 00:00:00')]]][2582, '301380', [[5, Timestamp('2024-02-19 00:00:00')]]][2584, '301396', [[5, Timestamp('2024-02-19 00:00:00')]]]347
从结果看,该策略筛选出347只股票,其中335只上涨,12只下跌,涨幅超过5%的个股数量142只,12只下跌股票中,跌幅大于3%的2只,跌幅小于1%的9只,还有1只的跌幅为1.71%,总体看,策略在给定的行情环境和条件下,表现很好。
把这些股票的代码转换为通达信可导入的板块个股的文件格式 :stockswithupgaps.ebk,格式如下图:
转换代码如下:
with open('stockswithupgaps.ebk','w') as f: for line in stocks_withgaps: if line[1][0]=='6': x = '1'+str(line[1])+'\n' else: x = '0'+str(line[1])+'\n' f.write(x)
把stockswithupgaps.ebk文件作为通达信的自定义板块文件导入通达信客户端程序,部分结果如下:
通达信内置的量化编程功能毕竟还是很有限的,尤其是灵活性差,难以实现自动化。
本文仅为个人观点,供学习交流,不可作为投资依据。