小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

python股票全套系統(tǒng)

 北書房2014 2022-03-30

pythonstock V1 項目簡介

特別說明:股市有風險投資需謹慎,本項目只能用于Python代碼學習,股票分析,投資失敗虧錢不負責,不算BUG。

PythonStock V1 是基于Python的pandas,tushare,bokeh,tornado,stockstats,ta-lib等框架開發(fā)的全棧股票系統(tǒng)。

1)可以直接使用docker直接本地部署運行,整個項目在docker hub上壓縮后200BM,本地占用500MB磁盤空間。

2)使用Docker解決了Python庫安裝問題,使用Mariadb(MySQL)存儲數(shù)據(jù)。借助tushare抓取數(shù)據(jù)(老API,后續(xù)使用tushare pro開發(fā))

3)使用corn做定時任務,每天進行數(shù)據(jù)抓取計算,每天18點開始進行數(shù)據(jù)計算,計算當日數(shù)據(jù),使用300天數(shù)據(jù)進行計算,大約需要15分鐘計算完畢。

4)股票數(shù)據(jù)接口防止被封,按天進行數(shù)據(jù)緩存,儲存最近3天數(shù)據(jù),每天定時清除,同時使用read_pickle to_pickle 的gzip壓縮模式存儲。

5)使用tornado開發(fā)web系統(tǒng),支持股票數(shù)據(jù),滬深300成份股,中證500成份股,龍虎榜數(shù)據(jù),每日股票數(shù)據(jù),每日大盤指數(shù)行情等

6)數(shù)據(jù)展示系統(tǒng),是通用數(shù)據(jù)展示系統(tǒng),配置字典模板之后,頁面自動加載數(shù)據(jù),并完成數(shù)據(jù)展示,后續(xù)自己開發(fā)的指標數(shù)據(jù)可以加入進去。

7)增加曲線數(shù)據(jù)分析,在查看股票中,可以直接跳轉(zhuǎn)到東方財富頁面查看相關(guān)信息,點擊指標之后使用Bokeh將多達 17 個指標的數(shù)據(jù)繪圖,進行圖表展示。

17a6c017889d98cfa126239e0573a70c.png

bokeh 繪圖指標數(shù)據(jù):

8414ef5884eb1a7e2fbc493c9b8c18b0.png

然后根據(jù)3個指標進行股票數(shù)據(jù)計算:

KDJ:

1,超買區(qū):K值在80以上,D值在70以上,J值大于90時為超買。一般情況下,股價有可能下跌。投資者應謹慎行事,局外人不應再追漲,局內(nèi)人應適時賣出。

2,超賣區(qū):K值在20以下,D值在30以下為超賣區(qū)。一般情況下,股價有可能上漲,反彈的可能性增大。局內(nèi)人不應輕易拋出股票,局外人可尋機入場。

RSI:

1.當六日指標上升到達80時,表示股市已有超買現(xiàn)象,如果一旦繼續(xù)上升,超過90以上時,則表示已到嚴重超買的警戒區(qū),股價已形成頭部,極可能在短期內(nèi)反轉(zhuǎn)回轉(zhuǎn)。

2.當六日強弱指標下降至20時,表示股市有超賣現(xiàn)象,如果一旦繼續(xù)下降至10以下時則表示已到嚴重超賣區(qū)域,股價極可能有止跌回升的機會。

CCI

1、當CCI>﹢100時,表明股價已經(jīng)進入非常態(tài)區(qū)間——超買區(qū)間,股價的異動現(xiàn)象應多加關(guān)注。

2、當CCI<﹣100時,表明股價已經(jīng)進入另一個非常態(tài)區(qū)間——超賣區(qū)間,投資者可以逢低吸納股票。

購買條件結(jié)果表:guess_indicators_lite_buy_daily

購買條件結(jié)果表:guess_indicators_lite_sell_daily

每日股票指標數(shù)據(jù)計算17個指標如下(數(shù)據(jù)表 guess_indicators_daily):

計算指標

說明

1,交易量delta指標分析

The Volume Delta (Vol ?)

2,計算n天差

可以計算,向前n天,和向后n天的差。

3,n天漲跌百分百計算

可以看到,-n天數(shù)據(jù)和今天數(shù)據(jù)的百分比。

4, CR指標

http://wiki.mbalib.com/wiki/CR%E6%8C%87%E6%A0%87 價格動量指標 CR跌穿a、b、c、d四條線,再由低點向上爬升160時,為短線獲利的一個良機,應適當賣出股票。 CR跌至40以下時,是建倉良機。而CR高于300~400時,應注意適當減倉。

5,最大值,最小值

計算區(qū)間最大值 volume max of three days ago, yesterday and two days later stock['volume_-3,2,-1_max'] volume min between 3 days ago and tomorrow stock['volume_-31_min'] 實際使用的時候使用 -22 可計算出5天的最大,最小值。

6, KDJ指標

http://wiki.mbalib.com/wiki/%E9%9A%8F%E6%9C%BA%E6%8C%87%E6%A0%87 隨機指標(KDJ)一般是根據(jù)統(tǒng)計學的原理,通過一個特定的周期(常為9日、9周等)內(nèi)出現(xiàn)過的最高價、 最低價及最后一個計算周期的收盤價及這三者之間的比例關(guān)系,來計算最后一個計算周期的未成熟隨機值RSV, 然后根據(jù)平滑移動平均線的方法來計算K值、D值與J值,并繪成曲線圖來研判股票走勢。 (3)在使用中,常有J線的指標,即3乘以K值減2乘以D值(3K-2D=J),其目的是求出K值與D值的最大乖離程度, 以領(lǐng)先KD值找出底部和頭部。J大于100時為超買,小于10時為超賣。

7,SMA指標

http://wiki.mbalib.com/wiki/Sma 簡單移動平均線(Simple Moving Average,SMA) 可以動態(tài)輸入?yún)?shù),獲得幾天的移動平均。

8, MACD指標

http://wiki.mbalib.com/wiki/MACD 平滑異同移動平均線(Moving Average Convergence Divergence,簡稱MACD指標),也稱移動平均聚散指標 MACD 則可發(fā)揮其應有的功能,但當市場呈牛皮盤整格局,股價不上不下時,MACD買賣訊號較不明顯。 當用MACD作分析時,亦可運用其他的技術(shù)分析指標如短期 K,D圖形作為輔助工具,而且也可對買賣訊號作雙重的確認。

10, RSI指標

http://wiki.mbalib.com/wiki/RSI 相對強弱指標(Relative Strength Index,簡稱RSI),也稱相對強弱指數(shù)、相對力度指數(shù) 2)強弱指標保持高于50表示為強勢市場,反之低于50表示為弱勢市場。 (3)強弱指標多在70與30之間波動。當六日指標上升到達80時,表示股市已有超買現(xiàn)象,如果一旦繼續(xù)上升,超過90以上時,則表示已到嚴重超買的警戒區(qū),股價已形成頭部,極可能在短期內(nèi)反轉(zhuǎn)回轉(zhuǎn)。

12, CCI指標

http://wiki.mbalib.com/wiki/%E9%A1%BA%E5%8A%BF%E6%8C%87%E6%A0%87 順勢指標又叫CCI指標,其英文全稱為“Commodity Channel Index”, 是由美國股市分析家唐納德·藍伯特(Donald Lambert)所創(chuàng)造的,是一種重點研判股價偏離度的股市分析工具。 1、當CCI指標從下向上突破﹢100線而進入非常態(tài)區(qū)間時,表明股價脫離常態(tài)而進入異常波動階段, 中短線應及時買入,如果有比較大的成交量配合,買入信號則更為可靠。 2、當CCI指標從上向下突破﹣100線而進入另一個非常態(tài)區(qū)間時,表明股價的盤整階段已經(jīng)結(jié)束, 將進入一個比較長的尋底過程,投資者應以持幣觀望為主。 CCI, default to 14 days

13, TR、ATR指標

http://wiki.mbalib.com/wiki/%E5%9D%87%E5%B9%85%E6%8C%87%E6%A0%87 均幅指標(Average True Ranger,ATR)均幅指標(ATR)是取一定時間周期內(nèi)的股價波動幅度的移動平均值,主要用于研判買賣時機。

14, DMA指標

http://wiki.mbalib.com/wiki/DMA DMA指標(Different of Moving Average)又叫平行線差指標,是目前股市分析技術(shù)指標中的一種中短期指標,它常用于大盤指數(shù)和個股的研判。 DMA, difference of 10 and 50 moving average stock['dma’]

15, DMI,+DI,-DI,DX,ADX,ADXR指標

http://wiki.mbalib.com/wiki/DMI 動向指數(shù)Directional Movement Index,DMI) http://wiki.mbalib.com/wiki/ADX 平均趨向指標(Average Directional Indicator,簡稱ADX) http://wiki.mbalib.com/wiki/%E5%B9%B3%E5%9D%87%E6%96%B9%E5%90%91%E6%8C%87%E6%95%B0%E8%AF%84%E4%BC%B0 平均方向指數(shù)評估(ADXR)實際是今日ADX與前面某一日的ADX的平均值。ADXR在高位與ADX同步下滑,可以增加對ADX已經(jīng)調(diào)頭的盡早確認。 ADXR是ADX的附屬產(chǎn)品,只能發(fā)出一種輔助和肯定的訊號,并非入市的指標,而只需同時配合動向指標(DMI)的趨勢才可作出買賣策略。 在應用時,應以ADX為主,ADXR為輔。

16, TRIX,MATRIX指標

http://wiki.mbalib.com/wiki/TRIX TRIX指標又叫三重指數(shù)平滑移動平均指標(Triple Exponentially Smoothed Average)

17, VR,MAVR指標

http://wiki.mbalib.com/wiki/%E6%88%90%E4%BA%A4%E9%87%8F%E6%AF%94%E7%8E%87 成交量比率(Volumn Ratio,VR)(簡稱VR),是一項通過分析股價上升日成交額(或成交量,下同)與股價下降日成交額比值, 從而掌握市場買賣氣勢的中期技術(shù)指標。

使用方法(依賴docker)

使用 mariadb 和 stock 兩個鏡像

mkdir -p /data/mariadb/data

docker pull pythonstock/pythonstock:latest

docker pull mariadb:latest

docker run --name mariadb -v /data/mariadb/data:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=mariadb -p 3306:3306 -d mariadb:latest

docker run -itd --link=mariadb --name stock \

-v /data/notebooks:/data/notebooks \

-p 8888:8888 \

-p 9999:9999 \

pythonstock/pythonstock:latest

直接啟動stock ,使用其他 mysql 數(shù)據(jù)庫,需要配置變量方式:

docker run -itd --name stock \

-v /data/notebooks:/data/notebooks \

-p 8888:8888 \

-p 9999:9999 \

-e MYSQL_HOST=127.0.0.1 \

-e MYSQL_USER=root \

-e MYSQL_PWD=mariadb \

-e MYSQL_DB=stock_data \

pythonstock/pythonstock:latest

進入鏡像:

docker exec -it stock bash

sh /data/stock/jobs/cron.daily/run_daily

說明,啟動容器后,會調(diào)用。run_init.sh 進行數(shù)據(jù)初始化,同時第一次執(zhí)行后臺執(zhí)行當日數(shù)據(jù)。

以后每日18點(只有18點左右才有今日的數(shù)據(jù))進行股票數(shù)據(jù)抓取并計算。

本地訪問端口

查看jupyter的密碼:

docker exec -it stock bash

查看登錄 token 問題:

jupyter notebook list

# 就可以看到 token 了,然后可以登錄了。

1,股票系統(tǒng)設(shè)計

2,架構(gòu)設(shè)計

全系使用python實現(xiàn)。因為都是python的類庫,互相之間調(diào)用方便。

從數(shù)據(jù)抓取,數(shù)據(jù)處理,到數(shù)據(jù)展示數(shù)據(jù)運算都是python實現(xiàn)。

最終的數(shù)據(jù)都到前端展示出來。主要分為4個文件夾。

jobs 抓取數(shù)據(jù)并存儲實現(xiàn)類。

libs 通用工具類。

web 前端展示框架

supervisor 進程管理工具。

3,應用部署

需要mysql數(shù)據(jù)庫啟動。項目放到/data/stock 目錄。

CREATE DATABASE IF NOT EXISTS `stock_data` CHARACTER SET utf8 COLLATE utf8_general_ci;

使用 :

3,web使用datatable顯示報表

通用數(shù)據(jù)配置,在 libs/stock_web_dic.py 配置數(shù)據(jù)之后,可以實現(xiàn)動態(tài)加載菜單,根據(jù)數(shù)據(jù)庫表的行列顯示數(shù)據(jù)。

不用一個表一個表進行開發(fā),通用數(shù)據(jù)展示。

4,使用pandas處理重復數(shù)據(jù)

data = ts.get_report_data(year, quarter)

# 處理重復數(shù)據(jù),保存最新一條數(shù)據(jù)。

data.drop_duplicates(subset='code', keep='last')

5,增加多字段排序

1,點擊是單個字段進行排序。

2,按照【shift】,點擊多個,即可完成多字段排序。

3,服務端分頁排序。

4,按照多個字段進行篩選查詢。

6,開發(fā)環(huán)境執(zhí)行

sh startStock.sh 1

9,解決跑數(shù)據(jù)問題

# 通過數(shù)據(jù)庫鏈接 engine。

def conn():

try:

db = MySQLdb.connect(MYSQL_HOST, MYSQL_USER, MYSQL_PWD, MYSQL_DB, charset='utf8')

# db.autocommit = True

except Exception as e:

print('conn error :', e)

db.autocommit(on=True)

return db.cursor()

之前升級過代碼,造成 db.cursor() 問題。

8,解決日志打印問題

配置 main.py

tornado.options.parse_command_line()

然后啟動配置參數(shù):

/usr/local/bin/python3 /data/stock/web/main.py -log_file_prefix=/data/logs/web.log

10,升級 bokeh 到 2.1.1 版本

https:///project/bokeh/#files

11,解決 Bokeh JS兼容問題。

升級 bokeh 到 2.1.1 版本

升級JS,因為 lib 包升級導致問題。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多