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

用垂饰安装:limit   version   ges   continue   dfa   over   pre      喷嘴   

这是一体我一向猎奇的成绩。,互联网网络上缺乏搜索,Python标明辨析的新制订出,自己动手试试。作者是Python的零基。,必要从一开端开端想出。

写本文的时辰,作者缺乏充分发挥潜在的能力小的辨析目的。,以想出的办法去做。

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

Python根底:

中国1971综合性大学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      喷嘴   

原文: