前言:什么是量化交易
量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。 -- 来源:百度百科解释 ****
量化交易的海量历史数据,是利用计算机来快速处理的,优势不言而喻:
- 处理速度极快,基本按秒甚至毫秒来衡量。
- 处理的数据是海量的,靠人工是不可能实现的。
PS:手动打开交易软件到进行交易需要至少需要十几秒钟
先从量化数据谈起
交易所产生的数据都是已经发生的事实,数据自然是历史数据,预测股价也是根据历史经验采取的行动;策略回测还是根据历史的数据进行测算评估的;哪怕你手动交易,每次买入的时候都是印在脑子里的历史经验所致。在这里一定要把历史数据这个概念牢记,因为金融市场没有新鲜事,历史总是在不断的重演,但历史也不代表未来。
其次,交易数据是参与市场交易的人进行各种博弈产生的买卖订单数据。交易行为大多是对历史数据产生的应对行为。 再往大了说,人的行为也都是根据过去的一切做出的反应,这里就不深入研究讨论了。
最后,产生交易是需要买方和卖方两者,同一笔交易买卖双方的交易逻辑肯定不同。其中交易的逻辑,就是后面的策略依据。
进行量化交易的最小数据范围
完成量化交易至少需要:交易标的的基本信息,历史k线数据,最新实时数据。有这三种数据基本就能完成绝大多数的量化策略。在进行量化交易的时候,你没有了交易软件的各种现成的提示,这时你需要把买入卖出的各种策略依据具体化,不能再使用概括性的语言衡量。
比如你需要根据MACD指标进行交易,MACD金叉的时候进行买入,死叉的时候进行卖出,那么你需要知道:MACD金叉是什么,有什么作用,具体怎么计算等等这些,因为这些都需要你用代码编写出来。
如果你不清楚怎么实现相应的代码,可以使用AI完成,参考下文。
开始编写简单例子
使用当日实时数据
- 固定价格X止盈
# 当价格达到某个价格时进行交易
if high >= X:
sell()
PS:思考这里为什么不能使用最新价格判断?
- 当日股价冲高回落N%进行卖出
# 股价达到某个最高价后回落了
back_rate = (high - last_price )/pre_close * 100
if back_rate > N:
sell()
使用k线数据
- 股价下破10日均线卖出
# 最新价格 低于 10日均线
if last_price < MA10:
sell()
注: 为了防止假盘中假信号,一般选择邻近收盘进行交易, 需要进行交易时间限制
- 5日均线上穿20日均线买入
# 前一个交易日 MA5<MA20 最新交易日 MA5> MA20
# MA是时间降序排列
if MA5[-2] < MA20[-2] AND MA5[-1] > MA[20]:
buy()
相关行情数据接口,adata免费开源的数据库都有提供,adata基于大厂的数据接口,稳定性可以支持低频的量化交易,帮助前期了解学习量化的你。如果你有付费或者其他的数据源,您可以优先使用,。有了量化数据,量化交易之路已经完成了三分一。