歴史的瞬間の市場に上海と深セン証券コードと時間のリストに掲載する企業:歴史的瞬間パイソンの市場に上海と深セン証券コードと時間のリストに掲載する企業の道を定量化:Pythonの道路の定量化

道路のPythonの定量化:歴史的瞬間の市場に上海と深セン証券コードと時間のリストに掲載する企業

 

  株式市場と上場廃止の情報が不可欠であるので在庫は、完全なバックテストをしたいので、最近私は、定量化するために株式市場の再生を開始しました。我々は右の上海と深センの株式を含んで特定の日付の構図を知っている必要がありますバックテスト時にあるため。したがって、我々はダウン登るためにすべての時間を上場廃止上海と深セン株式の市場へのすべての時間を持っている(後に地元の速い検索を保存します)。

0.1。主要なツールを確認

  ツールを使用するには、次のとおりです。

  (1)のpython:基本的なツール

  (2)パンダ:フォーマットデータ処理

  (3)データ通信インタフェース:HTTP://www.datayes.com

  (4)通信インタフェースAPI:HTTPS://api.wmcloud.com/docs/pages/viewpage.action PAGEID = 1867781?

 

1.データの取得を開始

  まず第一に、私たちは私たちの任務は非常に簡単であることがわかりますコミュニケーションズデータインタフェースと市場投入までの時間と時間(もしあれば)リストの上場廃止、すべての上場企業を取得する必要があります。

コードをコピー
パンダのインポートデータフレームから
dataapiclientインポートクライアントからの
インポートのJSON 
クライアント=クライアント()
client.init( 'cae5c4acc4ad4ccb93a8aaac4b8adb04363feaa9852c34d14ddd2248613b09b3')
URL = '/ API /株式/ getEqu.json?フィールド=ティッカー、secShortName、listDate、delistDate&listStatusCD = L、S、DE 、UN&secID =&ティッカー=&equTypeCD = A ' 
コード、結果= client.getData(URL)
J = json.loads(result.decode())
D =データフレーム(J [ 'データ'])
D = d.set_index('ティッカー')
= D D [[「、 'secShortName listDate'、 'delistDate']] 
d.to_csv( 'データ/ ticker_and _day_of_(デ)list_date.csv')
コードをコピー

  したがって、ticker_and _day_of_(デ)list_date.csvファイルは、所望のコンテンツに保存されています。データは特殊なケースを持っていることに注意してください。DY600019

  これは、ティッカーDYプレフィックスは違いを示すために追加ゆえコミュニケーションズのデータ​​の前に、メインの変化につながった再編や買収の結果です。

  そして、全ての取引可能なの時刻歴のA株株式コードへのアクセスを容易にするために、我々は、デフォルトでローカルデータを使用して、関数を定義する:get_a_stocks(日付=なし、更新= False)が、日付のデフォルトの日付が現在の日付システムで、更新があるかどうかを示しますあなたは、ローカルデータを更新する必要があります。ファイル名beefinance.py

コードをコピー
パンダインポートデータフレームから
datetime型のインポート日時から
dataapiclientインポートクライアントから
の輸入パンダ
JSONインポート
インポートのOS 
インポートタイプが
日時のインポート
インポート時の

デフget_a_stocksを(日付=なし、更新=偽):
    日付がある場合なし:
        日付= datetime.datetime.now()
    :でisinstance(日付、文字列)の場合
        、日付= datetime.datetime.strptime( "%Y-%M-%D"日付)
    :でisinstanceない場合(日付、datetime.datetimeの)
        ValueErrorを送出し( '日付不接受此类型' )
    
    でisinstanceない場合(更新、ブール値):
        ValueErrorを送出し( '更新不接受此类型')
    
    DATA_DIR = u'data」
    data_filename = DATA_DIR + U '/ ticker_and _day_of_(デ)list_date.csv' 
        D = D [[ 'secShortName'、」 listDate」、 'delistDate']]
    
    そうでない場合はos.path.exists(DATA_DIR):
        os.mkdir(DATA_DIR)
    
    であれば(ないos.path.exists(data_filename))またはupdate:
        クライアント=クライアント()
        client.init( 'cae5c4acc4ad4ccb93a8aaac4b8adb04363feaa9852c34d14ddd2248613b09b3')
        URL = '/ API /equity/getEqu.json?field=ticker,secShortName,listDate,delistDate&listStatusCD=L,S,DE,UN&secID=&ticker=&equTypeCD=A」
        コード、結果= client.getData(URL)
        J = json.loads(result.decode ())
        、D =データフレーム(J [ 'データ'])
        D = d.set_index( 'ティッカー')
        d.to_csv(data_filename、エンコード= 'UTF-8')
        D [ 'listDate'] = pandas.to_datetime(D [ 'listDate'])
        のD [」delistDate '] = pandas.to_datetime(D [' delistDate ']) 
        D = D [D [ 'listDate'] <=日付】
        D1 = D [pandas.isnull(D [ 'delistDate'])] 
        D2 = D [パンダ。 notnull(D [ 'delistDate'])] 
        D2 = D2 [D2 [ 'delistDate']>日付] 
        D = d1.append(D2)
        を返すD 
    他:
        D = pandas.read_csv(data_filename、index_col = 'ティッカー'、parse_dates = [ 'listDate'、 'delistDate']、符号化= 'UTF-8')
        D [ 'listDate'] = pandas.to_datetime(D [ 'listDate'])
        D [ 'delistDate'] = pandas.to_datetime(D [ 'delistDate'])
        D = D [D [ 'listDate'] <=日付】
        D1 = D [pandas.isnull(dは[」delistDate '])] 
        D2 = D [pandas.notnull(D [' delistDate '])]
        D2 = D2 [D2 [ 'delistDate']>日付] 
        D = d1.append(D2)
        リターンD
コードをコピー

 

  以下の試験結果:

beefinanceインポートget_a_stocksから
D = get_a_stocks( '2010-05-05')
プリント(D)
コードをコピー
データ/ ticker_and _day_of_(デ)list_date.csv 
       secShortName listDate delistDate 
ティッカー                                    
000001 PABのNaT 1991年4月3日
000002 1991年1月29日のNaT万科A 
000004国立農業科学技術のNaT 1991年1月14日
000005泉1990-12- NaT 10 
000006 1992年4月27日NATはshenzhenye 
000007新しいNaTの良い1992年4月13日
000008のNaT中国高速鉄道1992年5月7日
000009中国宝安のNaT 1991年6月25日
000010美しい生態のNaT 1995年10月27日
000011深センのプロパティを1992年3月30日のNaT A 
000012 1992年2月28日のNaT CSG A 
000014沙株式1992年6月2日のNaT
000016 1992年3月27日のNaT深い康佳A 
000017 ShenChinaのNaT 1992年3月31日
000018中国の万里の長城のNaT 1992年6月16日
000019 1992年10月12日のNaT Shenshenbao A 
000020深いHuafa A 1992年4月28日のNaT 
000021深い技術のNaT 1994年2月2日
000022 1993年5月5日のNaT赤湾A 
000023 1993年4月29日のNaT地中深く
000025 1993年6月21日のNaT TELLUS A 
000026 FIYTA A 1993年6月3日のNaT 
000027深センエネルギーのNaT 1993年9月3日
000028医薬品継続性NAT 1993年8月9日
000029 1993年9月15日のNaT SHENSHENFANG A 
000030のNaT豊かなオーストリアの株式1993年9月29日
000031 COFCOプロパティ1993年10月8日のNaT
000032深センSongdaのNaT 1993年10月28日
000033 * STの新しい資本のNaT 1994年1月3日
000034デジタルのNaT 1994年5月9日
... ... ... ... 
601899紫金鉱業2008-04- NaT 25 
601918 * STの新しいセットは、NAT 2007-12-19 
601919中国海のNaT 2007-06-26は
601939建設銀行のNaT 2007-09-25 
金モリブデンの601958株式のNaT 2008-04-17 
中国2006-07-05のNAT 601988銀行
601 989中国ヘビーのNaT 2009-12-16妥当性
601991大唐発電のNaT 2006-12-20 
601998 CITIC銀行のNaT 2007-04-27 
601 999出版&メディアのNaT 2007-12-21 
000024不動産投資1993年6月7日2015年12月30日
000522 1993年11月8日2013年4月26日白雲山A 
000527美的1993年11月12日2013年9月18日
000562香港人民元証券1994年2月2日2015年1月26日
000578ソルトレイク・グループ1995-03-032011 -03-22 
000 594バック1996年3月20日2015年7月13日クォックハング
000602ゴールデンホースグループ2013年8月14日1996年8月19日
000 787 * ST Powerise 2013年2月8日1997年6月26日
000 805 * ST Yanhuang 1998年5月29日2013年3月27日
600087 1997年6月12日2014年6月5日に引退市長油
600102莱蕪鋼鉄1997年8月28日2012年2月28日
600253日牙製薬2000-12-27 2013- 7月15日
600 263道路や橋の建設2000-07-25 2012-03-01 
600553太行セメント2002-08-22 2011-02-18 
ブリリアンスの600631株式1993年2月19日2011年8月23日
600656上場廃止Boyuan 1990年から1912年-192016-05-13
東方明珠1994年2月24日2015年5月20日600 832 
600 991長豊2012-03-20 2004-06-14 
601268 * STのダブル2010-02-02 2015年5月21日
601299中国CNR 2009-12-292015 -05-20 

[1815行3列X]
コードをコピー

  かなり良いです。

  株式市場と上場廃止の情報が不可欠であるので在庫は、完全なバックテストをしたいので、最近私は、定量化するために株式市場の再生を開始しました。我々は右の上海と深センの株式を含んで特定の日付の構図を知っている必要がありますバックテスト時にあるため。したがって、我々はダウン登るためにすべての時間を上場廃止上海と深セン株式の市場へのすべての時間を持っている(後に地元の速い検索を保存します)。

0.1。主要なツールを確認

  ツールを使用するには、次のとおりです。

  (1)のpython:基本的なツール

  (2)パンダ:フォーマットデータ処理

  (3)データ通信インタフェース:HTTP://www.datayes.com

  (4)通信インタフェースAPI:HTTPS://api.wmcloud.com/docs/pages/viewpage.action PAGEID = 1867781?

 

1.データの取得を開始

  まず第一に、私たちは私たちの任務は非常に簡単であることがわかりますコミュニケーションズデータインタフェースと市場投入までの時間と時間(もしあれば)リストの上場廃止、すべての上場企業を取得する必要があります。

コードをコピー
パンダのインポートデータフレームから
dataapiclientインポートクライアントからの
インポートのJSON 
クライアント=クライアント()
client.init( 'cae5c4acc4ad4ccb93a8aaac4b8adb04363feaa9852c34d14ddd2248613b09b3')
URL = '/ API /株式/ getEqu.json?フィールド=ティッカー、secShortName、listDate、delistDate&listStatusCD = L、S、DE 、UN&secID =&ティッカー=&equTypeCD = A ' 
コード、結果= client.getData(URL)
J = json.loads(result.decode())
D =データフレーム(J [ 'データ'])
D = d.set_index('ティッカー')
= D D [[「、 'secShortName listDate'、 'delistDate']] 
d.to_csv( 'データ/ ticker_and _day_of_(デ)list_date.csv')
コードをコピー

  したがって、ticker_and _day_of_(デ)list_date.csvファイルは、所望のコンテンツに保存されています。データは特殊なケースを持っていることに注意してください。DY600019

  これは、ティッカーDYプレフィックスは違いを示すために追加ゆえコミュニケーションズのデータ​​の前に、メインの変化につながった再編や買収の結果です。

  そして、全ての取引可能なの時刻歴のA株株式コードへのアクセスを容易にするために、我々は、デフォルトでローカルデータを使用して、関数を定義する:get_a_stocks(日付=なし、更新= False)が、日付のデフォルトの日付が現在の日付システムで、更新があるかどうかを示しますあなたは、ローカルデータを更新する必要があります。ファイル名beefinance.py

コードをコピー
パンダインポートデータフレームから
datetime型のインポート日時から
dataapiclientインポートクライアントから
の輸入パンダ
JSONインポート
インポートのOS 
インポートタイプが
日時のインポート
インポート時の

デフget_a_stocksを(日付=なし、更新=偽):
    日付がある場合なし:
        日付= datetime.datetime.now()
    :でisinstance(日付、文字列)の場合
        、日付= datetime.datetime.strptime( "%Y-%M-%D"日付)
    :でisinstanceない場合(日付、datetime.datetimeの)
        ValueErrorを送出し( '日付不接受此类型' )
    
    でisinstanceない場合(更新、ブール値):
        ValueErrorを送出し( '更新不接受此类型')
    
    DATA_DIR = u'data」
    data_filename = DATA_DIR + U '/ ticker_and _day_of_(デ)list_date.csv' 
    
    でない場合os.path.exists(DATA_DIR):
        os.mkdir(DATA_DIR) 
    ないos.path.exists(data_filename))の場合または更新:
        クライアント=クライアント()
        client.init( 'cae5c4acc4ad4ccb93a8aaac4b8adb04363feaa9852c34d14ddd2248613b09b3')
        URL = '/ API /株式/ getEqu.json?フィールド=ティッカー、secShortName、listDate、delistDate&listStatusCD = L、S、DE、UN&secID =&ティッカー=&equTypeCD = A' 
        コード、結果= client.getData(URL)
        J = json.loads(result.decode())
        D =データフレーム(J [ 'データ'])
        D = d.set_index( 'ティッカー')
        D = D [[ 'secShortName'、」 listDate」、 'delistDate']]
        d.to_csv(data_filename、エンコード= 'UTF-8')
        D [ 'listDate'] pandas.to_datetime(D [ 'listDate'])= 
        D [ 'delistDate'] = pandas.to_datetime(D [ 'delistDate'])
        D = D [D [ 'listDate'] <=日付】
        D1 = D [pandas.isnull(D [ 'delistDate'])] 
        D2 = D [pandas.notnull(D [ 'delistDate'])] 
        D2 = D2 [ D2 [ 'delistDate']>日付] 
        D = d1.append(D2)
        を返すD 
    他:
        D = pandas.read_csv(data_filename、index_col = 'ティッカー'、parse_dates = [ 'listDate'、 'delistDate']、エンコード=」 UTF-8 ')
        D [' listDate '] = pandas.to_datetime(D [' listDate '])
        のD ['delistDate '] = pandas.to_datetime(D [' delistDate ']) 
        D = D [D [' listDate '] <=日付]
        D1 = D [pandas.isnull(D [ 'delistDate'])] 
        D2 = D [pandas.notnull(D [ 'delistDate'])] 
        D2 = D2 [D2 [ 'delistDate']>日付] 
        D = d1.append (D2)
        リターンD
コードをコピー

 

  以下の試験結果:

beefinanceインポートget_a_stocksから
D = get_a_stocks( '2010-05-05')
プリント(D)
コードをコピー
データ/ ticker_and _day_of_(デ)list_date.csv 
       secShortName listDate delistDate 
ティッカー                                    
000001 PABのNaT 1991年4月3日
000002 1991年1月29日のNaT万科A 
000004国立農業科学技術のNaT 1991年1月14日
000005泉1990-12- NaT 10 
000006 1992年4月27日NATはshenzhenye 
000007新しいNaTの良い1992年4月13日
000008のNaT中国高速鉄道1992年5月7日
000009中国宝安のNaT 1991年6月25日
000010美しい生態のNaT 1995年10月27日
000011深センのプロパティを1992年3月30日のNaT A 
000012 1992年2月28日のNaT CSG A 
000014沙株式1992年6月2日のNaT
000016 1992年3月27日のNaT深い康佳A 
000017 ShenChinaのNaT 1992年3月31日
000018中国の万里の長城のNaT 1992年6月16日
000019 1992年10月12日のNaT Shenshenbao A 
000020深いHuafa A 1992年4月28日のNaT 
000021深い技術のNaT 1994年2月2日
000022 1993年5月5日のNaT赤湾A 
000023 1993年4月29日のNaT地中深く
000025 1993年6月21日のNaT TELLUS A 
000026 FIYTA A 1993年6月3日のNaT 
000027深センエネルギーのNaT 1993年9月3日
000028医薬品継続性NAT 1993年8月9日
000029 1993年9月15日のNaT SHENSHENFANG A 
000030のNaT豊かなオーストリアの株式1993年9月29日
000031 COFCOプロパティ1993年10月8日のNaT
000032深センSongdaのNaT 1993年10月28日
000033 * STの新しい資本のNaT 1994年1月3日
000034デジタルのNaT 1994年5月9日
... ... ... ... 
601899紫金鉱業2008-04- NaT 25 
601918 * STの新しいセットは、NAT 2007-12-19 
601919中国海のNaT 2007-06-26は
601939建設銀行のNaT 2007-09-25 
金モリブデンの601958株式のNaT 2008-04-17 
中国2006-07-05のNAT 601988銀行
601 989中国ヘビーのNaT 2009-12-16妥当性
601991大唐発電のNaT 2006-12-20 
601998 CITIC銀行のNaT 2007-04-27 
601 999出版&メディアのNaT 2007-12-21 
000024不動産投資1993年6月7日2015年12月30日
000522 1993年11月8日2013年4月26日白雲山A 
000527美的1993年11月12日2013年9月18日
000562香港人民元証券1994年2月2日2015年1月26日
000578ソルトレイク・グループ1995-03-032011 -03-22 
000 594バック1996年3月20日2015年7月13日クォックハング
000602ゴールデンホースグループ2013年8月14日1996年8月19日
000 787 * ST Powerise 2013年2月8日1997年6月26日
000 805 * ST Yanhuang 1998年5月29日2013年3月27日
600087 1997年6月12日2014年6月5日に引退市長油
600102莱蕪鋼鉄1997年8月28日2012年2月28日
600253日牙製薬2000-12-27 2013- 7月15日
600 263道路や橋の建設2000-07-25 2012-03-01 
600553太行セメント2002-08-22 2011-02-18 
ブリリアンスの600631株式1993年2月19日2011年8月23日
600656上場廃止Boyuan 1990年から1912年-192016-05-13
東方明珠1994年2月24日2015年5月20日600 832 
600 991長豊2012-03-20 2004-06-14 
601268 * STのダブル2010-02-02 2015年5月21日
601299中国CNR 2009-12-292015 -05-20 

[1815行3列X]
コードをコピー

  かなり良いです。

おすすめ

転載: www.cnblogs.com/medik/p/10989794.html
おすすめ