欢迎访问66财经,我们专注于分享专业财经知识!
66财经 > 基金股票 > python做量化交易干货分享(用python做量化交易)

python做量化交易干货分享(用python做量化交易)

优质
66财经 2023-12-15 21:30:02 20次浏览 来源:点及财经
最佳经验
本文由点及财经推荐
全网优质答案

python做量化交易干货分享(用python做量化交易)

牛角问答-股票期货职业投机者。

如果将期货市场定义战场,那多方和空方就是在战场上厮杀的士兵。因此及时了解双方在战场上的战况尤为重要。知己知彼,百战不殆!

一、初识tick数据

在行情每个期货行情软件上,右下角有一个长方形的窗口。这个长方形的窗口每跳动一次就是一个tick,跳动一次什么意思?也就是在这个tick上面有人在开、平操作。请看下图:

python做量化交易干货分享(用python做量化交易)北京:成交时间 价格:当前最新成交的价格 现手:当前tick成交量(双边) 仓差:当前tick上,多空开平争夺后导致了整个合约的持仓量增加、减少或者不变这三种情况 性质:这需要考虑多方面来考量,下面给大家介绍重点介绍

二、计算多空博弈量。

要想计算某个品种的多空持仓量,必须经过以下四步骤:

(一)判断并记录不带方向的开、平(如:开仓,平仓,双平,双开,换手,未知)共六种

二)判断并记录价格成交的方向(如:向上,向下,不变)共三种方向

(三)根据上述两步判断并记录带方向的开平(如:多开,空开,多平,空平,双开,双平,多换,空换,未知开,未知平,未知换)

(四)根据第三步记录的带方向的开平,计算当前tick和全部数据的多空 开平换量(如:多开量,空开量,多平量,空平量,未知开量,未知平量,未知换量)

python做量化交易干货分享(用python做量化交易)

计算多空开平量只需要经过上面四个步骤就可以将其计算出,下面将根据每一步详细介绍判断和计算,并用 Python 实现计算的全过程。

准备工作

1.首先作者使用的软件是Pycharm 。

2.导入数据处理利器‘pandas’,2D绘图包 &39;

3.数据的准备:导入tick数据,RB1910.csv文件,并将数据转换为DataFrame数据格式。并将相应的数据存入每个列表中(习惯用列表处理)。

import pandas as pd import matplotlib.pyplot as plt import talib plt.rcParams[&39;]=[&39;]39;axes.unicode_minus& 用来正常显示负号 count = 6000 39;RB1910.csv&39;UTF-8& -------------------------------------数据清洗 time = [] check_close = [] position = [] volume = [] close = [] sellshort_1 = [] buy_1 = [] for i in range(len(RB_data[&39;])): time.append(RB_data[&39;][i]) position.append(RB_data[&39;][i]) volume.append(RB_data[&39;][i]) close.append(RB_data[&39;][i]) sellshort_1.append(RB_data[&39;][i]) buy_1.append(RB_data[&39;][i])python做量化交易干货分享(用python做量化交易)

运行结果:

python做量化交易干货分享(用python做量化交易)

注意:上述中虽然有现手,不能直接使用因为某平台导出的数据是累加的成交量。因此我们要用:

现手 = 当前tick的成交量-上一tick成交量

同理:

仓差=当前tick的持仓量-上一tick的持仓量

4.计算,现手和仓差。

Now_hand.append(volume[i]-volume[i-1]) Entrepot.append(position[i] - position[i - 1])

完整代码:

----现手 Entrepot = [] 计算出不带方向的开平(未知,换手,双开,双平,平仓,开仓) for i in range(len(volume)): if i ==0 : Now_hand.append(0) Entrepot.append(0) trade_type.append(i) if i>0 : Now_hand.append(volume[i]-volume[i-1]) Entrepot.append(position[i] - position[i - 1])

我们打印一下看看我们的数据长什么样吧!

python做量化交易干货分享(用python做量化交易)数据:展示一个tick数据 |----------------------------------------| 开始时间:20190514090001.0 结束时间:20190514150000.0 ----------------------------------------| 最新价:, 3674.0 卖一价:3674.0 买一价:3672.0 现手:1716.0 仓差:-156.0 |----------------------------------------|

Ok! 我们文章所要用到的数据已经完成收集。下面正式进入第一步:

第一步,不带方向的开平

判断并记录不带方向的开、平(如:开仓,平仓,双平,双开,换手,未知)共六种:

如图所示:

python做量化交易干货分享(用python做量化交易)

检验一下是否正确:下面我在某行情软件上截取的一段tick成交数据,然后对应上述的6中方法随机检验一下。

python做量化交易干货分享(用python做量化交易)第一笔:现手 26 ,仓差 +2 性质 多开; 第二笔:现手 6 ,仓差 -2 性质 空平; 根据上面判断公式得到结果:示范两笔,后面的感兴趣可以自行计算。 第一笔:仓差>0 and 现手 != 仓差 ,判断为‘开’。不带多空方向 第二笔:仓差<0 and 现手+ 仓差 !=0 ,判断为‘平’。不带多空方向

代码:

for i in range(len(volume)): if i ==0 : Now_hand.append(0) Entrepot.append(0) trade_type.append(i) if i>0 : Now_hand.append(volume[i]-volume[i-1]) Entrepot.append(position[i] - position[i - 1]) if Entrepot[i] == 0 and Now_hand[i]==0: trade_type.append(&39;) if Entrepot[i] == 0 and Now_hand[i]>0: trade_type.append(&39;) if Entrepot[i] > 0 and Now_hand[i] == Entrepot[i]: trade_type.append(&39;) if Entrepot[i] > 0 and Now_hand[i]!=Entrepot[i]: trade_type.append(&39;) if Entrepot[i] < 0 and Now_hand[i]+Entrepot[i]==0: trade_type.append(&39;) if Entrepot[i] < 0 and Now_hand[i]+Entrepot[i]!=0: trade_type.append(&39;) print(&39;, trade_type[0:3]) print(&39;, Now_hand[0:3]) print(&39;, Entrepot[0:3])

运行结果:

python做量化交易干货分享(用python做量化交易)

紧接着下面第二步。

第二步,计算成交方向

判断并记录价格成交的方向(如:向上,向下,不变)共三种方向:

向上:最新价>=卖一价 & 最新价>=前卖一价 向下:最新价<=买一价 & 最新价<=买卖一价 不变:其他python做量化交易干货分享(用python做量化交易)

代码:

----价格成交方向( 向上,向下,不变) for i in range(len(Now_hand)): if i == 0: trade_direction.append(0) 39;向上&39;向上&39;向下&39;向下&39;不变&--------------------带方向的开平 trade_netrue = [] 开平性质 if i > 0: 39;换手&39;换手&39;向上&39;多换&39;换手&39;向下&39;空换&&39; elif trade_type[i]==&39; and trade_direction[i]==&39;: trade_netrue.append(&39;) elif trade_type[i]==&39; and trade_direction[i]==&39;: trade_netrue.append(&39;) elif trade_type[i]==&39; and trade_direction[i]==&39;: trade_netrue.append(&39;) 39;双平&39;双平&39;向上&39;双平&39;双平&39;向下&39;双平&39;双平&39;不变&39;双平&&39; elif trade_type[i]==&39; and trade_direction[i]==&39;: trade_netrue.append(&39;) elif trade_type[i]==&39; and trade_direction[i]==&39;: trade_netrue.append(&39;) 39;多开&39;开仓&39;向上&39;多开&39;开仓&39;向下&39;空开&39;换手&39;不变&39;未知换&39;平仓&39;不变&39;未知平&39;开仓&39;不变&39;未知开&39;多换& 多开 trade_buy.append(Now_hand[i] / 2) 多平 trade_sell.append(Now_hand[i] / 2) trade_unknown_exchange.append(0) trade_unknown_entry.append(0) trade_unknown_exit.append(0) elif trade_netrue[i] == &39;: 空平 trade_buytocover.append(Now_hand[i] / 2) trade_sellshort.append(0) 39;双开& 多开 trade_buy.append(Now_hand[i] / 2) 多平 trade_sell.append(0) trade_unknown_exchange.append(0) trade_unknown_entry.append(0) trade_unknown_exit.append(0) else: if trade_netrue[i] == &39;: trade_unknown_entry.append(Now_hand[i]) 39;未知平&未知平 trade_unknown_exchange.append(0) trade_unknown_entry.append(0) trade_buy.append(0) trade_buytocover.append(0) trade_sellshort.append(0) trade_sell.append(0) elif trade_netrue[i] == &39;: trade_unknown_exchange.append(Now_hand[i]) # 未知换 trade_unknown_entry.append(0) trade_unknown_exit.append(0) trade_buy.append(0) trade_buytocover.append(0) trade_sellshort.append(0) trade_sell.append(0)

全部代码已经展示完毕,下面Run一下看看长啥样。

python做量化交易干货分享(用python做量化交易)

运行结果:

python做量化交易干货分享(用python做量化交易)

(二)数据可视化。

最后一步了,是不是很激动,别着急下面我们就看一看多空对手单到底长什么样子吧!

首先,我们先看看tick周期最原始的对手单。

python做量化交易干货分享(用python做量化交易)

看着没什么规律,密密麻麻的。我们放大点瞅瞅。

python做量化交易干货分享(用python做量化交易)

原始的图形确实很难看出规律。所以作者直接移动求和,使用df.rolling(count).mean() 求出前count个和这里的count =6000个tick。得到下图,看上去似乎有什么规律,您看出了吗?

python做量化交易干货分享(用python做量化交易)

再放大看看。

python做量化交易干货分享(用python做量化交易)python做量化交易干货分享(用python做量化交易)

总结。

至此,我们已经将整个多空开平量的计算已经完整的讲解完毕了,至于如何应用在量化策略上,还需要读者自身去发现,作者也仅仅是实现计算的过程。

既然,每个tick的多空方向都算出来了,我想计算多空成本线应该不成问题,值得尝试。将其转换为分钟、小时、日线周期可能会有新发现!

市场如战场,知己知彼,百战不殆!

66财经推荐您看:

街舞基本术语(街舞常见术语)

python做量化交易干货分享(用python做量化交易)

Tags:

(责任编辑:66财经)

版权声明:本文内容由互联网用户自发贡献,已注明文章出处,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭侵权/违法违规的内容,欢迎发送邮件至【68407578@qq.com】举报,并提供相关证据及涉嫌侵权链接,一经查实,本站将立刻删除涉嫌侵权内容。

本文标题:【python做量化交易干货分享(用python做量化交易)】

本文链接:https://www.nxgjcc.com/7617.html

搜索
相关推荐
标签列表