日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tushare找出箱体突破点

發布時間:2023/12/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tushare找出箱体突破点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用第三方庫tushare之前,在anconda promt輸入 pip install tushare

pip install tushare

下載好庫之后,我們需要去tushare大數據社區注冊賬號,新人完善下基本信息,即可免費調取足量的數據。

?完善好信息后,進入個人主頁頁面-接口token,復制里面的代碼,即可進入接下來的api初始化了。

ts.set_token('******') pro=ts.pro_api()

token值(*****)這里輸入自己剛才復制的代碼即可。

獲取某只股票代碼如:ts.get_hist_data('600058') ,參數可以設置起始和截至日期,tushare給我們提供了近3年的數據,寫一些基本的策略驗證對于前期的新手是足夠的。

?拿到基礎數據之后,我們需要對數據進行初步加工。比如這里日期最新的開頭,所以我們需要調換下順序。同時可以取出我們需要的列數據,方便查看。

df.sort_index(ascending=True,inplace=True) df=df[['open','high','close','low','p_change','volume']]

?拿到簡單加工后的數據就可以計算出我們策略需要的指標和數據了。我這里調用自己寫的MACD指標。函數會對原數據直接修改,不需要重新定義變量。

def getmacd(data,short=12,long=26,dea=9,close='收盤價'):data['EMA_short']=data['close'].ewm(span=short).mean()data['EMA_long']=data['close'].ewm(span=long).mean()data['dif']=data['EMA_short']-data['EMA_long']data['dea']=data['dif'].ewm(span=dea).mean()data['macd']= (data['dif']-data['dea'])*2return datagetmacd(df,close=df['close'])

?后面的代碼便是對箱體的數據描述了,我這里把箱體定義成前后10天內漲幅不超過5個點,收盤價不超過10前面10天的最高點,同時加入了一些自己定義的指標,比如某天成交量的放大。定義完所有條件后,我們需要找出對應的日期。即用條件去控制:

cond1=df['p_change'].rolling(10).sum()<5.0 cond2=df['dif']>0 cond3=(df['high']>df['10日箱體頂部'])&(df['high'].shift(1)<df['10日箱體頂部']) cond4=df['p_change'].rolling(5).sum()<5.0 cond5=df['close'].rolling(5).mean()>df['close'].rolling(10).mean() cond6=df['K']>df['K'].shift(1) df.loc[cond1&cond2&cond3&cond4&cond5&cond6,'突破箱體']=1

按照正常思維,我們希望他階段性突破一個壓力位是希望他放量出來的,否則容易被假象欺騙,那么我們再定義一個指標,突破箱體當天的成交量是放大的,而且箱體中,會伴隨著一些天數的成交量變動,感受到是否有資金悄悄接受籌碼。我這里采用10日平均成交量作為一個基準,大于這個量便認為有資金入場。

df.loc[df['volume']>df['volume'].rolling(10).mean(),'主力介入']=1 df.loc[df['突破箱體']==1,'主力介入']=1 df=df[df['主力介入'].isin([1])] df.reset_index(inplace=True)

?到這里已經接近完成了。我們可以看到出現很多次資金放量。但是突破了箱體只有一次。

?但這一次也還沒有完成我們的結果。我想選出這突破的當天,他前面箱體內是出現多次放量的。這里我以基礎3為標準,即突破前10天內出現至少出現3次的量能波動。我們只需要將主力介入為NaN的地方填充為0,變可以方便我們計算。

df['主力介入'].fillna(0,inplace=True) df['波動']=df['主力介入'].rolling(10).sum()

?這里可以看出,突破前只有2次量能波動.顯然不符合我們預期。換個股票代碼002412后看看結果。

?打開東財去看看。

?基本符合預期,那我們只需要加上最后一個條件,波動次數大于3就行。

df=df[df['波動']>3]

下面是完整代碼,感興趣的可以自行修改。

df=ts.get_hist_data('002412') df.sort_index(ascending=True,inplace=True) df=df[['open','high','close','low','p_change','volume']] def getmacd(data,short=12,long=26,dea=9,close='收盤價'):data['EMA_short']=data['close'].ewm(span=short).mean()data['EMA_long']=data['close'].ewm(span=long).mean()data['dif']=data['EMA_short']-data['EMA_long']data['dea']=data['dif'].ewm(span=dea).mean()data['macd']= (data['dif']-data['dea'])*2return data getmacd(df,close=df['close']) df.loc[:,'9_high']=df['high'].rolling(9,min_periods=1).max() df.loc[:,'9_low']=df['low'].rolling(9,min_periods=1).min() df.loc[:,'RSV']=((df['close']-df['9_low'])/(df['9_high']-df['9_low']))*100 df.loc[:,'K']=df['RSV'].ewm(com=2).mean() df.loc[:,'D']=df['K'].ewm(com=2).mean() df['1日漲跌']=df['close'].shift(-1)-df['close'] df['3日漲跌']=df['close'].shift(-3)-df['close'] df['5日漲跌']=df['close'].shift(-5)-df['close'] df['10日漲跌']=df['close'].shift(-10)-df['close'] df=df[['open','high','close','low','p_change','volume','dif','K','1日漲跌','3日漲跌','5日漲跌','10日漲跌']] df.loc[:,'10日箱體頂部']=df['close'].rolling(10).max() cond1=df['p_change'].rolling(10).sum()<5.0 cond2=df['dif']>0 cond3=(df['high']>df['10日箱體頂部'])&(df['high'].shift(1)<df['10日箱體頂部']) cond4=df['p_change'].rolling(5).sum()<5.0 cond5=df['close'].rolling(5).mean()>df['close'].rolling(10).mean() cond6=df['K']>df['K'].shift(1) df.loc[cond1&cond2&cond3&cond4&cond5&cond6,'突破箱體']=1 df.loc[df['volume']>df['volume'].rolling(10).mean(),'主力介入']=1 df.loc[df['突破箱體']==1,'主力介入']=1 # df=df[df['主力介入'].isin([1])] df.reset_index(inplace=True) df['主力介入'].fillna(0,inplace=True) df['波動']=df['主力介入'].rolling(10).sum() df=df[df['突破箱體'].isin([1])] df=df[df['波動']>3] df

總結

以上是生活随笔為你收集整理的tushare找出箱体突破点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。