牛角问答-股票期货职业投机者。
如果将期货市场定义战场,那多方和空方就是在战场上厮杀的士兵。因此及时了解双方在战场上的战况尤为重要。知己知彼,百战不殆!
一、初识tick数据
在行情每个期货行情软件上,右下角有一个长方形的窗口。这个长方形的窗口每跳动一次就是一个tick,跳动一次什么意思?也就是在这个tick上面有人在开、平操作。请看下图:
北京:成交时间 价格:当前最新成交的价格 现手:当前tick成交量(双边) 仓差:当前tick上,多空开平争夺后导致了整个合约的持仓量增加、减少或者不变这三种情况 性质:这需要考虑多方面来考量,下面给大家介绍重点介绍二、计算多空博弈量。
要想计算某个品种的多空持仓量,必须经过以下四步骤:
(一)判断并记录不带方向的开、平(如:开仓,平仓,双平,双开,换手,未知)共六种
(二)判断并记录价格成交的方向(如:向上,向下,不变)共三种方向
(三)根据上述两步判断并记录带方向的开平(如:多开,空开,多平,空平,双开,双平,多换,空换,未知开,未知平,未知换)
(四)根据第三步记录的带方向的开平,计算当前tick和全部数据的多空 开平换量(如:多开量,空开量,多平量,空平量,未知开量,未知平量,未知换量)
计算多空开平量只需要经过上面四个步骤就可以将其计算出,下面将根据每一步详细介绍判断和计算,并用 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])运行结果:
注意:上述中虽然有现手,不能直接使用因为某平台导出的数据是累加的成交量。因此我们要用:
现手 = 当前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])我们打印一下看看我们的数据长什么样吧!
数据:展示一个tick数据 |----------------------------------------| 开始时间:20190514090001.0 结束时间:20190514150000.0 ----------------------------------------| 最新价:, 3674.0 卖一价:3674.0 买一价:3672.0 现手:1716.0 仓差:-156.0 |----------------------------------------|Ok! 我们文章所要用到的数据已经完成收集。下面正式进入第一步:
第一步,不带方向的开平
判断并记录不带方向的开、平(如:开仓,平仓,双平,双开,换手,未知)共六种:
如图所示:
检验一下是否正确:下面我在某行情软件上截取的一段tick成交数据,然后对应上述的6中方法随机检验一下。
第一笔:现手 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])运行结果:
紧接着下面第二步。
第二步,计算成交方向
判断并记录价格成交的方向(如:向上,向下,不变)共三种方向:
向上:最新价>=卖一价 & 最新价>=前卖一价 向下:最新价<=买一价 & 最新价<=买卖一价 不变:其他代码:
----价格成交方向( 向上,向下,不变) 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一下看看长啥样。
运行结果:
(二)数据可视化。
最后一步了,是不是很激动,别着急下面我们就看一看多空对手单到底长什么样子吧!
首先,我们先看看tick周期最原始的对手单。
看着没什么规律,密密麻麻的。我们放大点瞅瞅。
原始的图形确实很难看出规律。所以作者直接移动求和,使用df.rolling(count).mean() 求出前count个和这里的count =6000个tick。得到下图,看上去似乎有什么规律,您看出了吗?
再放大看看。
总结。
至此,我们已经将整个多空开平量的计算已经完整的讲解完毕了,至于如何应用在量化策略上,还需要读者自身去发现,作者也仅仅是实现计算的过程。
既然,每个tick的多空方向都算出来了,我想计算多空成本线应该不成问题,值得尝试。将其转换为分钟、小时、日线周期可能会有新发现!
市场如战场,知己知彼,百战不殆!
66财经推荐您看:
(责任编辑:66财经)
版权声明:本文内容由互联网用户自发贡献,已注明文章出处,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭侵权/违法违规的内容,欢迎发送邮件至【68407578@qq.com】举报,并提供相关证据及涉嫌侵权链接,一经查实,本站将立刻删除涉嫌侵权内容。
本文标题:【python做量化交易干货分享(用python做量化交易)】
本文链接:https://www.nxgjcc.com/7617.html
- 2023-11-05 理财一百块钱能赚多少钱(100万的理财方法)
- 2023-09-16 招商银行郑州招聘(2021郑州招商银行招聘)
- 2023-10-22 基金定投的解释(基金定投指的是什么)
- 2024-04-07 基金混合a与混合c是什么意思(基金混合a与混合b的区别)
- 2023-11-23 邮政信用卡逾期几天上征信(工商信用卡逾期几天上征信?)
- 2024-03-09 票据理财风险大吗(银行票据理财可靠吗)
- 2024-02-15 平安信用卡 优惠(平安信用卡10月消费礼)
- 2023-11-09 上海东正汽车金融股份有限公司招聘(上海东正汽车金融怎么样)
- 2023-09-05 怎么应对银行催收(对银行信用卡的催款电话最好是怎么回答)
- 2023-09-26 5日均线的神奇之处(5日均线的作用和意义)
- 搜索
-
- 相关推荐
-
为什么b股股价越来越低(b股为什么叫b股)
2024-05-10 -
什么是洗钱?洗钱有哪些危害(什么是洗钱罪?如何认定?)
2024-04-30 -
通货膨胀有多可怕?(解读通货膨胀)
2024-04-17 -
盘亏库存现金所涉及的会计科目是(库存现金盘亏的分录怎么写?)
2024-04-15 -
什么是独角兽企业和四新类企业(2023独角兽企业榜单)
2024-04-11 -
财政部规范推进ppp(财政部ppp项目指南)
2024-04-10 -
欧元涨跌(欧元又涨了)
2024-03-31 -
营口港详细情况(营口港属于哪个城市)
2024-03-30 -
西部证券最近有什么利好出台(西部证券股票行情分析)
2024-03-28 -
办公用品发票可以不开明细吗(办公用品发票单位是什么)
2024-03-27 -
国外的云手机软件(海外云存储)
2024-05-16 -
跨境云手机是什么(销售助手app华为)
2024-05-16 -
品牌的卖点(产品卖点的意义)
2024-05-16 -
海外云真机(海外云主机优势/配置海外云主机)
2024-05-16 -
中国中信银行(中国工商银行手机app下载)
2024-05-16 -
邮寄手机到澳大利亚(发快递到澳大利亚)
2024-05-16 -
云手机免费版无限挂机(云手机破解版永久免费无限时间)
2024-05-16 -
龙绥1号(long馁)
2024-05-16 -
各大银行预审额度查询(银行预审批通过要多少天)
2024-05-16 -
农行手机银行转账时显示未下载证书(农行转账eb1002:未插k宝)
2024-05-16 -
招商银行一卡通官网(招商银行一卡通百科)
2024-03-20 -
有关通货膨胀的总结(有关通货膨胀的问题)
2023-11-03 -
美国玩信用卡的故事(美国发现信用卡)
2024-02-06 -
免费升舱能享受头等舱的休息室吗(升舱券可以去贵宾休息室)
2023-11-21 -
国际快递查询系统(国际快递在哪查询)
2024-03-15 -
养老金卡片丢失了怎么办?别急,跟我做!(领取养老金的卡找不到了怎么办)
2023-09-14 -
什么叫私募基金产品(私募基金公司排名一览表)
2024-04-19 -
地产投资机构还能做什么业务赚钱(地产公司投资岗主要干啥)
2024-05-03 -
查名下有多少张银行卡怎么查(查询名下有多少张银行卡)
2024-04-28 -
窄幅横盘整理(窄幅横盘震荡)
2024-04-10