最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)馬丁策略回測(cè)3000只股票的實(shí)例代碼

 更新時(shí)間:2021年01月22日 10:05:28   作者:達(dá)科索斯  
這篇文章主要介紹了python實(shí)現(xiàn)馬丁策略回測(cè)3000只股票,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

上一篇文章講解了如何實(shí)現(xiàn)馬丁策略,但沒有探索其泛化能力,所以這次來嘗試回測(cè)3000只股票來查看盈利比例。

批量爬取股票數(shù)據(jù)

這里爬取數(shù)據(jù)繼續(xù)使用tushare,根據(jù)股票代碼來遍歷,因?yàn)榕廊?shù)據(jù)需要一定時(shí)間,不妨使用多線程來爬取,這里要注意tushare規(guī)定每分鐘爬取不能超過500次,除非你有很多積分,所以線程數(shù)要適當(dāng)調(diào)低。

首先我們生成上證與深證所有股票的代碼:

#上證代碼
shanghaicode = []
for i in range(600000, 604000, 1):
 shanghaicode.append(str(i))
 
#深證代碼
shenzhencode = []
for i in range(1000000, 1005000, 1):
 i = str(i)[1:] 
 shenzhencode.append(i)

然后再定義一個(gè)爬取函數(shù),broker則是上一篇文章創(chuàng)建的實(shí)例:

def getalldata(code):
  if os.path.exists(datapath + code + '.csv'):
   print(code + 'already existed!')
   return
  metadata = broker.get_stock_pro(code)
  if len(metadata) == 0:
   return
  metadata.to_csv('C:/Users/abc/Desktop/' + code + '.csv',index = False)
  print(code + 'finished!')

導(dǎo)入多線程需要的模塊

from concurrent.futures.thread import ThreadPoolExecutor #多線程

遍歷所有代碼開始爬取,max_workers可適當(dāng)調(diào)整

executor = ThreadPoolExecutor(max_workers=3)
 for datatemp in executor.map(getalldata, shenzhencode):
  pass 
 
 executor = ThreadPoolExecutor(max_workers=3)
 for datatemp in executor.map(getalldata, shanghaicode):
  pass 

批量回測(cè)股票

數(shù)據(jù)爬好后則可開始回測(cè)了,因?yàn)榛販y(cè)是CPU瓶頸運(yùn)算,所以這里就不使用多線程了,速度差不多。

首先將一只股票的回測(cè)程序封裝到函數(shù)中,回測(cè)時(shí)間設(shè)置為2020年全年,起始資金設(shè)置為20萬元:

def martinmulti(code):
 broker = backtesting(200000,'20200101', '20201231')
 #獲取股票數(shù)據(jù)
 metadata = pd.read_csv(datapath + code)
 data = np.array(metadata['close'])
 exdata = np.array(metadata['pre_close'])
 everyChange = np.array(metadata['change'])
 date = metadata['trade_date'].values
 everyChange = everyChange/data
 #開始回測(cè)
 broker.startbackmartin(data, exdata, everyChange, date)
 dicttemp = {'股票代碼': code,'終止現(xiàn)金': broker.cash}
 return dicttemp

遍歷股票代碼回測(cè)并記錄終止現(xiàn)金

cashlist = pd.DataFrame(columns= ['股票代碼','終止現(xiàn)金'])
for code in datalist:
 datatemp = martinmulti(code)
 cashlist = cashlist.append(datatemp,ignore_index=True)

回測(cè)過程如下

在這里插入圖片描述

接下來看看哪支股票獲得了最大利潤(rùn):

在這里插入圖片描述

看看平均值

cashlist.mean()
Out[12]: 
終止現(xiàn)金 208279.115166

可以從均值看出馬丁策略賺作為一種相對(duì)保險(xiǎn)的方法賺的不多,當(dāng)然想要找到一勞永逸的方法是不可能的,并且用平均數(shù)不能代表一切,那看看盈利比例如何:

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.style.use('ggplot')
plt.title("盈利分布(萬元)")
bins = []
for i in range(10000, 600000, 10000):
 bins.append(i)
plt.hist(cashlist['終止現(xiàn)金'],bins = bins)
plt.axvline(x = cashlist.mean().values,ls="-",c="green")#添加垂直直線

在這里插入圖片描述

可以看出有折腰的也有翻倍的,且絕大部分集中于20w元旁邊,分布圖形整體往20萬右側(cè)偏移,該策略還有待改進(jìn)。

到此這篇關(guān)于python實(shí)現(xiàn)馬丁策略回測(cè)3000只股票的文章就介紹到這了,更多相關(guān)python股票策略回測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python3.7 dataclass使用指南小結(jié)

    Python3.7 dataclass使用指南小結(jié)

    本文將帶你走進(jìn)python3.7的新特性dataclass,通過本文你將學(xué)會(huì)dataclass的使用并避免踏入某些陷阱。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • 使用Python操作Elasticsearch數(shù)據(jù)索引的教程

    使用Python操作Elasticsearch數(shù)據(jù)索引的教程

    這篇文章主要介紹了使用Python操作Elasticsearch數(shù)據(jù)索引的教程,Elasticsearch處理數(shù)據(jù)索引非常高效,要的朋友可以參考下
    2015-04-04
  • 解決導(dǎo)入django_filters不成功問題No module named ''django_filter''

    解決導(dǎo)入django_filters不成功問題No module named ''django_filter''

    這篇文章主要介紹了解決導(dǎo)入django_filters不成功問題No module named 'django_filter',具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python如何設(shè)置指定窗口為前臺(tái)活動(dòng)窗口

    Python如何設(shè)置指定窗口為前臺(tái)活動(dòng)窗口

    這篇文章主要介紹了Python如何設(shè)置指定窗口為前臺(tái)活動(dòng)窗口,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 對(duì)python中Librosa的mfcc步驟詳解

    對(duì)python中Librosa的mfcc步驟詳解

    今天小編就為大家分享一篇對(duì)python中Librosa的mfcc步驟詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python Paramiko使用示例

    python Paramiko使用示例

    這篇文章主要介紹了python Paramiko的使用示例,幫助大家遠(yuǎn)程控制類 UNIX 系統(tǒng),感興趣的朋友可以了解下。
    2020-09-09
  • 簡(jiǎn)單了解什么是神經(jīng)網(wǎng)絡(luò)

    簡(jiǎn)單了解什么是神經(jīng)網(wǎng)絡(luò)

    這篇文章主要介紹了簡(jiǎn)單了解什么是神經(jīng)網(wǎng)絡(luò),具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python中2種常用數(shù)據(jù)可視化庫Bokeh和Altair使用示例詳解

    Python中2種常用數(shù)據(jù)可視化庫Bokeh和Altair使用示例詳解

    本文對(duì)Python中兩個(gè)常用的數(shù)據(jù)可視化庫?Bokeh?和?Altair?進(jìn)行了比較和探討,通過對(duì)它們的特點(diǎn)、優(yōu)缺點(diǎn)以及使用示例的詳細(xì)分析,讀者可以更好地了解這兩個(gè)庫的功能和適用場(chǎng)景,從而更好地選擇合適的庫來進(jìn)行數(shù)據(jù)可視化工作,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Django模型序列化返回自然主鍵值示例代碼

    Django模型序列化返回自然主鍵值示例代碼

    這篇文章主要給大家介紹了關(guān)于Django模型序列化返回自然主鍵值的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • python庫安裝與使用示例詳解

    python庫安裝與使用示例詳解

    這篇文章主要介紹了Python中的生成器函數(shù)yield、openslide庫、ASAP庫、concurrent.futures.ThreadPoolExecutor、xml.etree.ElementTree庫、skimage庫和PIL.Image庫的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2025-02-02

最新評(píng)論

双鸭山市| 洮南市| 东宁县| 托里县| 襄垣县| 德庆县| 兴化市| 湘西| 泾阳县| 凤冈县| 哈巴河县| 叶城县| 漳平市| 思茅市| 三门县| 县级市| 阿拉善右旗| 宜昌市| 德格县| 临漳县| 旬阳县| 阳城县| 神池县| 康乐县| 长宁区| 玛多县| 武强县| 辽阳市| 元谋县| 金昌市| 龙泉市| 阿图什市| 普定县| 玉环县| 容城县| 贡嘎县| 犍为县| 郑州市| 澄江县| 太仆寺旗| 苍梧县|