[Python数据分析]新股破板买入,赚钱几率如何?-布布扣

附属物:limit   version   ges   continue   dfa   over   pre      使联系   

这是一点钟我一向猎奇的成绩。,互联网网络上缺勤搜索,Python标明剖析的新制订出,自己动手试试。作者是Python的零基。,必要重新开端背诵。

写冠词的时分,作者缺勤完整的小的剖析目的。,以背诵的办法去做。

================================================================

Python根底:

柴纳学院MOOC,南京学院,张黎教导着 应用Python装扮标明

懂根本表达方式和经用作用是本来的的。,剩余宗派应用时间搜索。

财政标明源:

TuShare -

收费,开源Python财务标明使联系包。

GitHub:

现时布告的根本通讯,尽量的剩余宗派的东西都是在线的。,未禁猎地前,下一步将渐渐添加。

================================================================

既然是新股发行后的断板体现,有一段时间,抑或它缺勤意思,因而半载是一段时间,破董事会罪状,冗长的碎屑了。,新年新股被限度局限为年,然而人们可以限度局限一点钟月。,本别剖析,断板收买,30个市日的每日利市概率。

要做的事实可以分为以下数个步:

1. 上半载收买新份标明

2. 每回上市后获取标明

3. 破损板过滤器三十天后的标明,总结

4. 计算每日言归正传的概率

-----

第一步:什么购置物近半载的新份标明。

THUSAE IPOS标明使联系:

出口参量:retry_count, pause

恢复原来信仰的人更多标明,熊猫 标明文件格式正中鹄的标明,皱纹的以下宗派是检验出口的比分。,他们正中鹄的主体人现时不任务。,必要停止过滤器。

关怀的补偿面值:code – 份密码,name – 份系统命名法, issue_date – 上市日期

import tushare as ts
()

过滤器裁决:

issue_date 半载后。

Pandas API:

它可以用参量过滤标明文件:

但这感触必要更多过滤。,抄家,发明可直截了当地控制。

import tushare as ts
df=()
dfDF[DFissue_date]>2016-06-01]

相应地,人们直截了当地购置物6月1日上市的尽量的新股。:

但人们只必要密电码, name 和 发行日期通讯,因而再加聚会的:

import tushare as ts
df=()
dfDF[DFissue_date]>2016-06-01]
df=df[[code,name,issue_date]]

这是手术的比分。:

现时人们早已拿了过来六点月上市的新股标明。,包罗份密码,上市系统命名法及上市日期。

-----

以第二位步:什么每回上市后获取标明

TSUARE历史事务标明使联系:

出口参量:code, start, end, Ktype(标明典型),默许的是k行日。, retry_count, pause

恢复原来信仰的人更多标明,异样也熊猫 标明文件格式正中鹄的标明,皱纹的以下宗派是检验出口的比分。,他们正中鹄的主体人现时不任务。,必要停止过滤器。

关怀的补偿面值:date – 日期,open – 以开盘价, close – 定居点, p_change – 涨跌幅

人们以六月三日上市的新股三腿梯子(603737)为例:

import tushare as ts
df=(603737)

检验运转列举如下:

异样,第一步处置标明:

df=df[[date,open,close,p_change]]

这是眼前的成绩。,逆列举如下:

>>> df=df[[date,open,close,p_change]]
Traceback (主体) recent call last):
  File "", line 1, in 
  File "/Users/shengtianhe/anaconda/lib/python/site-packages/pandas/core/frame.py", line 1991, in __getitem__
    return self._getitem_array(钥匙)
  File "/Users/shengtianhe/anaconda/lib/python/site-packages/pandas/core/frame.py", line 2035, in _getitem_array
    indexer = (钥匙, axis=1)
  File "/Users/shengtianhe/anaconda/lib/python/site-packages/pandas/core/indexing.py", line 1214, in _convert_to_indexer
    raise KeyError(%s not in index % objarr[mask])
KeyError: "[‘date‘] not in index"

反省典型化标明的系统命名法,就思索,第一列将是别的东西,搜索数个有效的命令:

from pandas import 标明文件 #从pandas库中援用标明文件
df_obj = 标明文件() #发现标明文件物体
df_obj.D型s #检查每条线的标明格式
() #看一眼后面几行的标明,默许5行
() #看一眼上面几行的标明,默许5行
df_obj.index #检查涉及
df_obj.columns #检查列名
df_obj.values #检查标明值
df_obj.describe #界定办法性罪状
df_obj.T #扭绞
(专栏) = ‘’)#按列名排序
涉及(按,’’])#多列排序,效能与年龄脱节,请应用SORTTY值
值(按‘‘,‘‘])同上

运转涉及和列,日期是涉及:

>>> df.columns
Index([open, high, close, low, volume, price_change, p_change,
       ma5, ma10, ma20, v_ma5, v_ma10, v_ma20, turnover],
      D型=object)
>>> df.index
Index([2016-10-28, 2016-10-27, 2016-10-26, 2016-10-25, 2016-10-24,
       2016-10-21, 2016-10-20, 2016-10-19, 2016-10-18, 2016-10-17,
       2016-10-14, 2016-10-13, 2016-10-12, 2016-10-11, 2016-10-10,
       2016-09-30, 2016-09-29, 2016-09-28, 2016-09-27, 2016-09-26,
       2016-09-23, 2016-09-22, 2016-09-21, 2016-09-20, 2016-09-19,
       2016-09-14, 2016-09-13, 2016-09-12, 2016-09-09, 2016-09-08,
       2016-09-07, 2016-09-06, 2016-09-05, 2016-09-02, 2016-09-01,
       2016-08-31, 2016-08-30, 2016-08-29, 2016-08-26, 2016-08-25,
       2016-08-24, 2016-08-23, 2016-08-22, 2016-08-19, 2016-08-18,
       2016-08-17, 2016-08-16, 2016-08-15, 2016-08-12, 2016-08-11,
       2016-08-10, 2016-08-09, 2016-08-08, 2016-08-05, 2016-08-04,
       2016-08-03, 2016-08-02, 2016-08-01, 2016-07-29, 2016-07-28,
       2016-07-27, 2016-07-26, 2016-07-25, 2016-07-22, 2016-07-21,
       2016-07-20, 2016-07-19, 2016-07-18, 2016-07-15, 2016-07-14,
       2016-07-13, 2016-07-12, 2016-07-11, 2016-07-08, 2016-07-07,
       2016-07-06, 2016-07-05, 2016-07-04, 2016-07-01, 2016-06-30,
       2016-06-29, 2016-06-28, 2016-06-27, 2016-06-24, 2016-06-23,
       2016-06-22, 2016-06-21, 2016-06-20, 2016-06-17, 2016-06-16,
       2016-06-15, 2016-06-14, 2016-06-13, 2016-06-08, 2016-06-07,
       2016-06-06, 2016-06-03],
      D型=object, name=date)

View Code

因而列的国家必须是:

df=df[[open,close,p_change]]

比分列举如下:

现时人们早已在过来半载和D中购置物了新上市的份。。

-----

第三步:什么破损板过滤器三十天后的标明,总结

……二十分钟的考虑和百度……想想如此的的办法来购置物第一点钟禁猎日。

import tushare as ts 
df=(603737‘)
df=df[[open‘,close‘,p_change‘]]
start_dateDF[DFp_change]<].tail(1涉及〔0〕

释一下:df是一点钟标明文件, 可以拖以内列的中部的值的尽量的行。,拖比分依然是标明文件,DF有一点钟叫做余党()的办法来获取决定性的几条标明。,人们早已认识日期是涉及。,因而把日期与涉及[ 0 ],因我缺勤Python的根底…日子的办法是尝试一下。……

接下来,应用此日期停止过滤器,人们只关绝望板后的标明:

df=df[]

我在在这一点上在试验中过。……根据我所持的论点必须写下来。……

接下来,假说断板收买后长的持股10天,因而人们只必要10天的份库存标明。,下面所说的事标明相当洁净。,也简略明了跟进。。假设标明以内10天,则地下室。

经过决定性的一步,人们在十天的定居点,包罗破损板和,将标明替换为标明。

>>> close_array=df.values
>>> close_array
array([ 100.9 ,   99.73,   98.87,  100.51,   99.38,  110.47,  113.71,
        112.75,  115.63,  110.46,  111.82])

View Code

更多停止处置,假设价钱被破,一点钟市日的定居点高于,那么阵列正中鹄的值设置为1。,抑或,它是0。

import tushare as ts
import numpy as np

df=(603737)

df=df[[open,close,p_change]]
start_dateDF[DFp_change]<].tail(1涉及〔0〕
df=df[df.index>=start_date]
df=(11)[close]

close_array=df.values
for i in 余地(1),11):
  if close_array[i]>close_array[0]:
    close_array[i]=1
  else:
    close_array[i]=0

close_array[0]=0

print (close_array)

出口比分:

localhost:~ shengtianhe$ python find.py
[ 0.  0.  0.  0.  0.  1.  1.  1.  1.  1.  1.]

份的标明团体得健康的。,那么从尽量的新股中取出标明,强制应用兼并阵列的办法。,密码中仍一短时间褊狭的必要处置。,我找了个圆认识怎样做,比如,什么恢复原来信仰的人面值断定过失空的

import tushare as ts
import numpy as np
import pandas as pd

df=()
dfDF[DFissue_date]>2016-06-01]
df=df[[code,name,issue_date]]

df=df[[code]]
stock_code=df.values

# print(stock_code)
i=0
df_matrix = None

for stock in stock_code:
  detail=(stock_code[i][0])
  if detail is None:
    i=i+1
    continue  

  detail=detail[[open,close,p_change]]
  hasbreak项目[项目]p_change]<]

  if ==0:
    i=i+1
    continue

  start_date=(1涉及〔0〕
  hasbreak=hasbreak[hasbreak.index>=start_date]
  hasbreak=(11)[close]

  if  <11:
    i=i+1
    continue

  close_array=hasbreak.values
  for day in 余地(1),):
    if close_array[day]>close_array[0]:
      close_array[day]=1
    else:
      close_array[day]=0
  close_array[0]=0

  df_matrix_thisRound=(close_array)
  df_matrix_thisRound=df_matrix_thisRound.T

  if df_matrix is None:
    df_matrix=df_matrix_thisRound
  else:
    df_matrix=np.concatenate((df_matrix,))

  i=i+1

print(df_matrix)  

运转比分列举如下:

-----

四个步:什么计算每日言归正传的概率

这一步对立简略。,直截了当地每一列的平均率值,数字代表当天言归正传的概率。。

添加密码列举如下:

mean=(0)
print(平均率)

运转比分列举如下:

推论:

在目前的的时间,破董事会十天后价格看涨而买入的概率相当高。。

下面所说的事顺序是高音的写,自然,仍很多褊狭的必要改良。,然而你破旧的的比分要出现了。。接下来,人们感兴趣的是用想像出口显示比分。,先上床去睡觉!

大体上,它蒸馏器区别令人满意的。!

哈哈哈

[Python标明剖析]新股断板收买,赚钱的机遇有多大?

附属物:limit   version   ges   continue   dfa   over   pre      使联系   

原文:

发表评论

电子邮件地址不会被公开。 必填项已用*标注