tushareパッケージのユースケース

Tushareは無料、オープンソースのPythonの財務データ・インタフェース・パッケージです。株式やから他の財務データの主な実績データ収集処理をクレンジング  する  データ・ストレージ・プロセスが大幅に作業負荷を軽減するために、迅速な金融アナリスト、清潔、およびそのアクセスの面でデータのための簡単なデータ分析のさまざまなを提供することができ、彼らは戦略とモデルの研究と実装のより集中しています。Pythonのパンダパッケージを考慮すると、金融優位の定量分析を反映して、データ・フォーマットのほとんどのTushareリターンがパンダのデータフレームタイプです。

使用例については

インポートnumpyのNP AS
 インポートPANDAS AS PD
 インポートPLTのAS matplotlib.pyplot
 インポートTS AS tushare 

各株式市場のデータ取得tushare使用 
DF = ts.get_k_data(' 600519 '、[スタート] = ' 2008-01-01 ' を印刷します(タイプ(DF))
df.to_csv(' 600519.csv ' 
DF = pd.read_csv(' 600519.csv '、index_col = ' DATE '、parse_dates = ' DATE ' ])[ ' オープン'' 閉じる'' ハイ'' ' ]]
 印刷(DF)
在庫が3%または日付のすべてに開放よりも閉じて出力
を印刷(DF [(DF [ ' 閉じる' [-df] ' オープン' ]) / DF [ 開く ]> 0.03 ] .INDEX)

#1 df.shift()は正の移動下方に移動し、負の上方に移動日付閉鎖前日よりすべての株式の開放2%以上を出力 
[DFの[(DFを' 開く' [-df] ' 閉じる' ] .shift(1))/ DF [ ' 閉じます' ]。シフト(1)<=  -  0.02] .INDEX 

私は2008年1月1日スタート、手の株式を購入するために、各月の最初の取引日から、現在まで、毎年の最終取引日どのように私の収益をすべての株式を売却した場合?

price_last = DF [ ' 開く' ] [ - 1 ] 
DF = DF [ ' 2008-01 '' 2018から11 ' ] #の削除不要データ包括

df_monthly = df.resample(" MS ")1次回() あたり月の最初の日
を印刷" df_monthly 2008:" 印刷(df_monthly)
 印刷" df_yearly:" 
df_yearly= df.resample(" A ").last() - 1]  每年最后一天
プリント(df_yearly)

cost_money = 0 
ホールド = 0
 のために範囲(2008,2018 ):
    cost_money + = df_monthly [STR(年)] [ ' オープン' ] .SUM()* 100 
    保留 + = LEN(df_monthly [STR(年)] [ ' オープン' ])* 100 
    cost_money - = df_yearly [STR(年)] [ ' オープン' ] [0 ] * ホールド
    ホールド = 0 

印刷' Cost_money:S%'%(0- cost_money)) 

要求と平均30移動5日

DF = pd.read_csv(' 601318.csvを'、index_col = ' DATE '、parse_dates = ' DATE ' ])[ 【' オープン'' 閉じる'' '' ' ]
 印刷(df.head())

DF [ ' MA5 ' ] = np.NAN 
DF [ ' MA30 '] =np.NAN
 #1 範囲(4、LEN(DF))におけるIのための:
#1      df.loc [df.index [I]、 'MA5'] = DF [ '閉じる'] [4-I:I + 1] .mean()
#1 範囲(29、LEN(DF))におけるIのための:
#1      df.loc [df.index [I]、 'MA30'] = DF [ '閉じる'] [I-29:I + 1 ] .mean()
#1 
#の印刷(df.head(50))

DF [ ' MA5 ' ] = DF [ ' 閉じる' ] .rolling(5).mean() ウィンドウスクロールダウン5 
DF [ ' MA30 ' ] = DF [ ' 閉じる' ] .rolling(30).mean() ウィンドウのスクロールダウン30 
印刷(DF。ヘッド(50 ))

#1 ビデオ図の平均値 
DF DF = [800 ] 
DF [[ ' 閉じる'' MA5 '' MA30は' ]]プロット()
plt.show() 

MACD Sicha及び日付 
golden_cross = [] 
death_cross = [ ]
 のための I における(1レンジ、LEN(DF)):
     IF DF [ ' MA5 ' ] [I]> = DF [ ' MA30 ' ] [I] 及び DF [ ' MA5 '。] [I-1] <DF [ ' MA30 ' ] [I.の1-]:
        golden_cross.append(df.index [I] .to_pydatetime())
    もし DF [ ' MA5 ' ] [I] <= DF [ ' MA30 ' ] [I] 及び DF [ ' MA5 ' ] [I - 1] > DF [ ' MA30 ' ] [I - 1 ]:
        death_cross.append(df.index [i])と

印刷(golden_crossの[5 ])

SR1 = DF [ ' MA5 ' ] <DF [ ' MA30 ' ] 
SR2 = DF 【' MA5 ' ]> = DF [ 'MA30 "] 
death_cross = DF [SR1&sr2.shift(1 )]インデックス。
golden_cross = DF [〜(SR1 | sr2.shift(1 ))。]インデックス

プリント(death_cross)

 

おすすめ

転載: www.cnblogs.com/xiao-apple36/p/11573189.html