序文
独自のカスタムインパルスを持って十分なフラッシュ良いような財政計画データアプリケーションが、それでも、当然ではないデータは、前者よりもはるかに良いが、カスタマイズすることが自分のアイデアによれば良いではないでしょう。
目標
無料のデータを介して利用可能なインタフェース、歴史的なトランザクションデータの毎日の増分更新の対象とし、その後Kibanaを介してデータの解析と可視化を行います。
実際には、可視化フレームワークを介しechartsは、可視化をしたいのも良い選択ですが、先行投資が多すぎます。パンダ+需要の大半を満たすのに十分であったが、相互作用の感覚が弱すぎるので、可視化アプリケーションの助けが必要であり、選択はkibanaここでmatplotlibの、その競合製品がGrafanaを持っているがあります。
この目標は、あなたが次のリンクを経由してコードを取得することができ、上に行くためにされている必要があります
https://github.com/youerning/stock_playground
環境設定
python3(推奨Anacondaインストール)
その依存関係をインストールします。
pip install -r requirement.txt
設定eleasticsearch、kibana環境(推奨ドッカ)
Elasticsearch, Logstash, Kibana 7.2.0
データソース
データへのアクセスがあり、ここでは、自然淘汰のアマチュア自由として、多くの方法、料金または無料でtushare.pro選択し、実際には、このような一定の制約のデータ取得頻度として、ビット限られてtushare、およびインターフェースも限定されていますあなたは多くのポイントを必要としています。あなたはこのレジスタに興味があるなら、私はあなたとデータの可視化コンテンツの詳細を共有することができるように、私の紹介リンク聖歌を通じて登録して、私がダウンロードしたデータを共有します。
https://tushare.pro/register?reg=277890
後のメンテナンスコストを避けるために、ほとんど制限なしの無料版もあるtushareが、データのより完全なプロバージョンということに注目すべきであるので、私はプロのバージョンを選択しました。
実際には、他の無料のデータ収集モードがあり、あなたはそれを自分で試すことができます
データを取得します
あなたのトークンを設定
import tushare as ts
ts.set_token("<your_token>")
pro = ts.pro_api("<your_token>")
アクセストークン上のリンクを参照することができます
手動でデータを取得するようにしてください
通过日期取历史某一天的全部历史
df = pro.daily(trade_date='20190725')
df.head()
ts_code trade_date open high low close pre_close change pct_chg vol amount value
0 000032.SZ 20190725 9.49 9.60 9.47 9.56 9.49 0.07 0.7376 12658.35 12075.625 8906.981000
1 000060.SZ 20190725 4.39 4.40 4.35 4.36 4.39 -0.03 -0.6834 129331.65 56462.292 -38586.330353
2 000078.SZ 20190725 3.37 3.38 3.35 3.38 3.37 0.01 0.2967 76681.00 25795.633 7653.564311
3 000090.SZ 20190725 5.66 5.66 5.56 5.61 5.64 -0.03 -0.5319 105582.72 59215.389 -31496.665409
4 000166.SZ 20190725 4.97 4.98 4.93 4.96 4.97 -0.01 -0.2012 268122.48 132793.120 -26717.975744
获取某一只股票的日线行情数据
data = ts.pro_bar(ts_code="601668.SH", adj='qfq', start_date="20120101")
data.head()
ts_code trade_date open high low close pre_close change pct_chg vol amount
0 601668.SH 20190726 6.01 6.06 5.98 6.03 6.04 -0.01 -0.17 696833.16 419634.547
1 601668.SH 20190725 6.05 6.07 6.02 6.04 6.04 0.00 0.00 543074.55 327829.380
2 601668.SH 20190724 6.09 6.11 6.02 6.04 6.05 -0.01 -0.17 788228.12 477542.609
3 601668.SH 20190723 5.93 6.07 5.92 6.05 5.94 0.11 1.85 1077243.46 650250.021
4 601668.SH 20190722 6.02 6.03 5.92 5.94 6.00 -0.06 -1.00 811369.73 485732.343
取得したデータは、自然に自動化されることですが、インターフェイスの制限により、次の質問を考慮する必要があります。
- 在庫リスト
- 限界を超えインタフェースかどうかを判定し、もしそうであれば、しばらくポーズ
キーコードセクション
def save_data(code, start_date, fp):
print("下载股票(%s)日线数据到 %s" % (code, fp))
try:
data = ts.pro_bar(ts_code=code, adj='qfq', start_date=start_date)
# 当超过调用次数限制返回None
if data is None:
time.sleep(10)
return
pass_set.add(code)
except Exception:
time.sleep(10)
print("股票: %s 下载失败" % code)
return
if len(data) == 0:
pass_set.add(code)
return
try:
data.trade_date = pd.to_datetime(data.trade_date)
data = data.sort_values("trade_date")
if path.exists(fp):
data.to_csv(fp, mode="a", header=False, index=False)
else:
data.to_csv(fp, index=False)
except Exception:
print("股票:%s 保存失败" % code)
私たちは、あなたが自動的に次のコマンドを介してデータをダウンロードすることができ、私のGitHubリポジトリsave_data.pyを参照することができます
python save_data.py
次のように2012年1月1日のコンフィギュレーション内のタイムコードを起動し、自分でクラスを変更する必要がある、それは、あなたが同じディレクトリにconfig.jsonを設定する必要があることは注目に値します
{
"token": "<your_token>"
}
そのトークンと相まって
配置elasticsearch, kibana
本明細書で使用される場合、ドッカー構成です。
# 拉取镜像
docker pull sebp/elk:720
# 启动docker环境
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -v /home/elasticsearch/:/var/lib/elasticsearch -itd sebp/elk:720
データをダンプ
データ分析のための内部elasticsearchにデータをアップロード
設定settings.py
# 将ip:port改成自己elasticsearch地址,如192.168.56.102:9200
config["es_host"] = ["ip:port"]
コードを実行します。
# 上传股票数据
python cmd.py dump
# 上传上证指数数据
python cmd.py dump_index
可視化
設定kibanaには少し時間がかかりますが、幸いkibanaは今、ほとんどの構成は、サポートインポートおよびエクスポートは、私たちは、直接私の倉庫をexport.ndjsonでファイルをインポートすることができます
結果は
今インターフェースが株式要因へのアクセスが制限され、制限されているので、より多くの私のポイントを待つことを、私はより多くのダッシュボード、および可視化を追加します。
追伸
私たちは、その後、フリーダムトレイルの作業時間と場所に、一連の記事を構築するためにゼロから自分の取引システムを完成したいと考えています。
ない希望の絶対的な経済的自由、時間と場所のための自由な^ _ ^