如何判断某只股票的资金流向?如何判断资金的流入量?-利用Python和Tushare做股票的量化分析

经常看到股市分析中看到:“某只股票资金净流入多少多少元”。笔者一度比较疑惑:当买和卖发生的时候,买入的金额和卖出的金额不是相同的吗?为什么有资金流入或者资金流出的说法?

资金流向在国际上是一个成熟的技术指标,其计算方法比较清晰。举例说明:在10:01这一分钟里,某一股票较前一分钟是上涨的,则将10:01这一分钟的成交额计作资金流入,反之则计作资金流出,若指数与前一分钟相比没有发生变化,则不计入。每分钟计算一次,每天统计一次,流入资金与流出资金的差额就是该板块当天的资金净流入。

看到这里,个人是比较失望的,因为个人几乎没有办法来计算出资金的金流入量。因为需要统计每个股票每分钟的成交量及与上一分钟股票的变化进行对比。

这里介绍一个方法是使用tushare获取资金净流向的一个数据,代码如下,以2020年02月27日为例:

import tushare as ts
import pandas as pd
 
token='c0*******8c'
df1 = pro.moneyflow_hsgt(start_date='20200227', end_date='20202028')
df1

输出如下:

其中north-money,代表北向资金的净流入量。这个值等于北向资金的买入量-北向资金的卖出量。

北向资金的买入量(north)=北向深市的买入量+北向沪市的买入量。= -2093.32+(-1847.18) = -3940.5(百万)

是不是比较神奇?通过一个简单的函数接口,就能分析出北向自己的净买入情况。使用这个参数可以进行数据对比,对比沪股通净买入金额和沪指的涨跌情况的关联情况。

通过上面的代码我们可以分析出,20200227的沪深通的资金是净流出的,当天的股价下降的。也就是2月27日一天,净流入金额和当天指数的变化是正相关的。

好了就到这里了。文中代码为全部代码,但是需要使用自己替换文中的token后就能运行。点击免费注册获取token或者前往https://tushare.pro/register?reg=287337,免费注册获取token即可。

各位如果有兴趣,对某只股票的资金运转与股价的对比情况,进行完善的分析。

 

 

// 循环工作表Sheet for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) { //o--对应第一张工作表如默认情况下sheet1 hssfSheet = hssfWorkbook.getSheetAt(numSheet); //System.out.println("表明"+hssfSheet.getSheetName()); if (hssfSheet == null) { continue; } //首先获得第一行的数据 HSSFRow rowFirst=hssfSheet.getRow(0); // 循环行Row for (int rowNum = 1; rowNum <=hssfSheet.getLastRowNum(); rowNum++) {// //获取行对象 HSSFRow hssfRow = hssfSheet.getRow(rowNum); if(hssfRow!=null) { //构建comp对象 CompShows comp=new CompShows(); //初始化所有comp默认为1 comp.setTypeOfTransaction(1); //根据列单元格的名字规划数据 int t=hssfRow.getLastCellNum(); // System.out.println(t+"fffffffffffffsssssssssssss"); for(int i=0;i<t;i++) { //遍历根据i获得数据和列名 HSSFCell hcFirst=rowFirst.getCell(i); // System.out.println(getValueForString(hcFirst)+"========"); //if("客户帐号".equals(hssfrow)) //获得每一列的列名 HSSFCell hc=hssfRow.getCell(i); if("客户名称".equals(getValueForString(hcFirst).toString())||"户名".equals(getValueForString(hcFirst))||"交易户名".equals(getValueForString(hcFirst))) { //System.out.println("客户账号"+getValue(hc)); //表示该列数据存储的是账户名 comp.setName((String)getValueForString(hc)); }else if("账号".equals(getValueForString(hcFirst))||"客户帐号".equals(getValueForString(hcFirst))||"交易账号".equals(getValueForString(hcFirst))) { //表示该列数据存储的是账号 comp.setAccount((String)getValueForString(hc)); //System.out.println("账号"+getValue(hc)); }else if("交易日期".equals(getValueForString(hcFirst))||"交易时间".equals(getValueForString(hcFirst))) {
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值