五月天婷亚洲天久久综合网,婷婷丁香五月激情亚洲综合,久久男人精品女人,麻豆91在线播放

  • <center id="8gusu"></center><rt id="8gusu"></rt>
    <menu id="8gusu"><small id="8gusu"></small></menu>
  • <dd id="8gusu"><s id="8gusu"></s></dd>
    樓主: 邢不行
    80998 451

    [源碼分享] 【量化小講堂-Python、Pandas系列15】完整策略框架:以均線策略為例   [推廣有獎(jiǎng)]

    院士

    8%

    還不是VIP/貴賓

    -

    威望
    1 級(jí)
    論壇幣
    26743 個(gè)
    通用積分
    152.2379
    學(xué)術(shù)水平
    485 點(diǎn)
    熱心指數(shù)
    505 點(diǎn)
    信用等級(jí)
    456 點(diǎn)
    經(jīng)驗(yàn)
    52955 點(diǎn)
    帖子
    574
    精華
    26
    在線時(shí)間
    1145 小時(shí)
    注冊(cè)時(shí)間
    2010-4-30
    最后登錄
    2024-12-25

    樓主
    邢不行 在職認(rèn)證  發(fā)表于 2016-8-3 16:27:51 |只看作者 |壇友微信交流群|倒序 |AI寫論文
    相似文件 換一批

    +2 論壇幣
    k人 參與回答

    經(jīng)管之家送您一份

    應(yīng)屆畢業(yè)生專屬福利!

    求職就業(yè)群
    趙安豆老師微信:zhaoandou666

    經(jīng)管之家聯(lián)合CDA

    送您一個(gè)全額獎(jiǎng)學(xué)金名額~ !

    感謝您參與論壇問題回答

    經(jīng)管之家送您兩個(gè)論壇幣!

    +2 論壇幣

    引言:

    本系列帖子“量化小講堂”,通過實(shí)際案例教初學(xué)者使用python、pandas進(jìn)行金融數(shù)據(jù)處理,希望能對(duì)大家有幫助。

    【必讀文章】:
    《10年400倍策略分享-附視頻逐行講解代碼》

    【所有系列文章匯總】:http://xalimeijing.com/thread-3950124-1-1.html

    【python量化課程】想要快速、系統(tǒng)的學(xué)習(xí)量化知識(shí),可以參與我與論壇合作開設(shè)的課程:
    《python量化投資入門》,我會(huì)親自授課,隨問隨答。參與課程還可以免費(fèi)加入我的小密圈,我每天會(huì)在圈中分享量化的所見所思,圈子介紹點(diǎn)擊此處。

    微信:xbx_laoshi,量化交流Q群(快滿):438143420,有問題歡迎交流。

    文中用到的A股數(shù)據(jù)可在www.yucezhe.com下載,這里可以下載到所有股票、從上市日起的交易數(shù)據(jù)、財(cái)務(wù)數(shù)據(jù)、分鐘數(shù)據(jù)、分筆數(shù)據(jù)、逐筆數(shù)據(jù)等。




    【量化小講堂-Python、Pandas系列15】完整策略框架:以均線策略為例


    =====策略框架=====


    應(yīng)很多同學(xué)的要求,本篇文章介紹如何從頭到尾的編寫一個(gè)策略框架。一個(gè)完整的策略框架主要包含以下三個(gè)部分:


    • 產(chǎn)生買賣信號(hào)的策略。
    • 根據(jù)買賣信號(hào)生成資金曲線。
    • 根據(jù)資金曲線計(jì)算策略評(píng)價(jià)指標(biāo)。


    其中第一部分是最重要的。本文用最簡(jiǎn)單的均線策略作為示范,關(guān)于均線策略的詳細(xì)內(nèi)容可以看之前的文章【量化小講堂 - python & pandas技巧系列】使用python計(jì)算移動(dòng)平均線。第二、第三部分是通用部分,在大家熟悉框架之后,可以將第一部分修改為自己的策略,其他部分直接復(fù)用。


    # 第一部分:產(chǎn)生買賣信號(hào)的策略,以均線策略為例

    說到均線大家應(yīng)該都不陌生,均線應(yīng)該是股市技術(shù)分析中最簡(jiǎn)單的一個(gè)指標(biāo)了,就是股價(jià)在一段時(shí)間的平均值,一般是指移動(dòng)平均線。例如,5日均線就是最近5個(gè)交易日股票的收盤價(jià)之和除以5。均線最早是由著名的美國投資專家Joseph E.Granville于20世紀(jì)中期提出來的,由于其簡(jiǎn)單容易理解的特點(diǎn),成為當(dāng)今應(yīng)用最普遍的技術(shù)指標(biāo)之一。基于均線本身的趨勢(shì)性和穩(wěn)定性,出現(xiàn)了很多利用均線的不同形態(tài)來產(chǎn)生買賣信號(hào)的策略。


    本文采用的均線策略的具體規(guī)則為:


    • 當(dāng)短期均線上穿長(zhǎng)期均線時(shí),視為買入信號(hào),以第二天開盤價(jià)全倉買入;
    • 當(dāng)短期均線下穿長(zhǎng)期均線時(shí),視為賣出信號(hào),以第二天開盤價(jià)全倉賣出。


    【python量化課程】想要快速、系統(tǒng)的學(xué)習(xí)量化知識(shí),可以參與我與論壇合作開設(shè)的課程:《python量化投資入門》,我會(huì)親自授課,隨問隨答。參與課程還可以免費(fèi)加入我的小密圈,我每天會(huì)在圈中分享量化的所見所思,圈子介紹點(diǎn)擊此處。)

    可見下圖示例:

    1.png


    # 第二部分:根據(jù)信號(hào)生成資金曲線

    在產(chǎn)生買賣信號(hào)后,可以據(jù)此生成每天的倉位。實(shí)際操作中可以不用每次都全倉買賣,本文為了方便,每次買賣都是全倉買入或者賣出。所以倉位只有0和1兩種狀態(tài),1表示滿倉,0表示空倉。由于本文以個(gè)股為例,所以出現(xiàn)買賣信號(hào)后的第二天開盤可能會(huì)出現(xiàn)漲;虻5那闆r,當(dāng)出現(xiàn)漲跌停時(shí)當(dāng)天不進(jìn)行買賣操作,倉位和前一天的倉位保持一致。有了每天的倉位之后,就可以計(jì)算出每日漲跌幅、資金曲線。


    # 第三部分:根據(jù)資金曲線計(jì)算策略評(píng)價(jià)指標(biāo)

    根據(jù)資金曲線可以計(jì)算相應(yīng)的統(tǒng)計(jì)指標(biāo)來判斷這個(gè)策略的好壞。關(guān)于指標(biāo)的相關(guān)內(nèi)容可以參考之前的一篇文章【量化小講堂 - Python、Pandas系列】如何判斷一個(gè)策略的好壞?。


    =====實(shí)戰(zhàn)=====


    一、選擇標(biāo)的股票并計(jì)算復(fù)權(quán)后的價(jià)格

    假設(shè)我們選擇萬科A(sz000002)作為考慮的目標(biāo)股票(程序中可以通過修改股票代碼任選一只個(gè)股),為了數(shù)據(jù)的真實(shí)可靠,本文重新計(jì)算了復(fù)權(quán)后的開盤價(jià)和收盤價(jià),后面計(jì)算均線和漲跌幅都以復(fù)權(quán)后的數(shù)據(jù)為基礎(chǔ)。


    二、判斷所選股票的上市天數(shù)

    接著,為了回測(cè)結(jié)果的可靠性,本文在執(zhí)行均線策略之前會(huì)先判斷該股票上市至今的交易天數(shù),默認(rèn)的交易天數(shù)下限是500天(可以自行設(shè)置),即如果該股票交易天數(shù)小于500,則不運(yùn)行策略。


    三、產(chǎn)生買賣信號(hào)

    所選股票確定之后就是計(jì)算短期和長(zhǎng)期均線了,本文默認(rèn)采用的是5日移動(dòng)平均線和60日移動(dòng)平均線(在程序中是參數(shù),也可以自行設(shè)置),當(dāng)5日均線大于60日均線時(shí),給出買入信號(hào);當(dāng)5日均線小于60日均線時(shí),給出賣出信號(hào),兩者相等時(shí)維持之前的信號(hào)判斷。


    四、根據(jù)信號(hào)產(chǎn)生資金曲線

    根據(jù)上一步產(chǎn)生的買賣信號(hào),可以得到每天的倉位。有了每天的倉位之后,就是計(jì)算資金曲線的日漲跌幅了。在這一步,本文為了盡量接近真實(shí)的投資情況,考慮了手續(xù)費(fèi)和成交的滑點(diǎn)。默認(rèn)的手續(xù)費(fèi)為雙邊千分之2,默認(rèn)的滑點(diǎn)為雙邊千分之1(在程序中為參數(shù),可自行設(shè)置)。具體的計(jì)算過程參見程序代碼的注釋。


    在得到資金曲線每天的漲跌幅之后,可以計(jì)算出資金曲線。本文在計(jì)算回測(cè)資金曲線的時(shí)候,從它上市250個(gè)交易日(在程序中為參數(shù),可自行設(shè)置)之后才開始計(jì)算,并且最早不早于2006年1月1號(hào)(在程序中為參數(shù),也可自行設(shè)置)。


    五、根據(jù)資金曲線計(jì)算統(tǒng)計(jì)指標(biāo)

    在得到資金曲線之后,本文計(jì)算了最近250個(gè)交易日(在程序中為參數(shù),可自行設(shè)置)的股票和策略的累計(jì)收益率以及每年(月,周)的股票和策略收益,并計(jì)算了股票和策略相應(yīng)的年(月,周)的勝率進(jìn)行比較。


    為了直觀的看出采用均線策略后實(shí)際的交易情況,本文還記錄了每次交易(一買一賣視為一次交易)的盈虧情況以及股票同期的漲跌幅,并計(jì)算了與交易相關(guān)的一些指標(biāo),包括交易次數(shù)、最長(zhǎng)持有天數(shù)、每次平均漲幅、單次最大盈利和虧損、年均買賣次數(shù)、最大連續(xù)盈利次數(shù)和最大連續(xù)虧損次數(shù)。


    最后,本文計(jì)算了該均線策略在回測(cè)期間的年化收益和最大回撤,并和股票的年化收益及最大回撤做了一下對(duì)比。



    ==程序==


    要運(yùn)行均線策略,需要某只股票的歷史交易數(shù)據(jù),在www.yucezhe.com可以下載到所有股票歷史至今的數(shù)據(jù)。如下圖所示,每一行是每一天的數(shù)據(jù):

    2.png

    數(shù)據(jù)有以下的字段:

    【code】股票的代碼,上證股票以sh開頭,深證股票以sz開頭

    【date】交易日期

    【open】開盤價(jià)

    【high】最高價(jià)

    【low】最低價(jià)

    【close】收盤價(jià)

    【change】漲跌幅,復(fù)權(quán)之后的真實(shí)漲跌幅,保證準(zhǔn)確

    【volume】成交量

    【money】成交額

    【traded_market_value】流通市值

    【market_value】總市值

    【turnover】換手率,成交量/流通股本

    【adjust_price】后復(fù)權(quán)價(jià),復(fù)權(quán)開始時(shí)間為股票上市日,精確到小數(shù)點(diǎn)后10位


    下面是代碼的截圖,代碼里面有詳細(xì)的注釋,有問題可以留言,附件中有程序的源碼,回復(fù)即可下載。

    3.png
    4.png 5.png
    6.png
    7.png
    8.png
    9.png
    10.png
    11.png
    12.png

    本文以萬科A為例,將數(shù)據(jù)下載下來,運(yùn)行代碼,可以看到在萬科A這只股票上運(yùn)用均線策略的回測(cè)結(jié)果。

    首先是最近250天股票和策略的累計(jì)漲跌幅:

    13.png

    這有助于我們直觀的了解策略在最近一段時(shí)間的表現(xiàn)情況,從數(shù)據(jù)來看,均線策略在15年的效果好像不怎么樣,還不如直接持有萬科的股票,不過本文目的主要是教大家如何從頭到尾用python編寫一個(gè)完整的策略,均線策略只是為了方便作為例子,大家也可以開發(fā)其他一些更好的策略。


    接著是過去每年、每月、每周股票和策略的收益對(duì)比:

    14.png
    15.png
    16.png
    17.png
    18.png

    從結(jié)果可以看出,該均線策略的年勝率和股票一樣,為60%,月勝率低于股票的月勝率但周勝率卻略高于股票本身。


    接下來是每次交易的收益情況和同期的股票漲跌幅,每次交易是盈利還是虧損和同期股票的收益正負(fù)密切相關(guān)。
    19.png

    然后是賬戶交易的各項(xiàng)指標(biāo)的統(tǒng)計(jì)。

    20.png

    從結(jié)果可以看到,對(duì)萬科這只股票采用均線交易策略的話,從它上市至今一共交易了98次,最長(zhǎng)的持有天數(shù)為248天。單次交易的最大盈利為176.16%,賺了一倍多,而單次最大虧損為-19.84%,平均每次交易的收益大概為7.75%。1年內(nèi)平均交易次數(shù)差不多為4次,交易頻率比較低,最大連續(xù)盈利4次,但最大連續(xù)虧損也達(dá)到11次之多,這可能對(duì)大部分人來說有點(diǎn)無法忍受。


    21.png

    最后是在回測(cè)期間(2006年1月1號(hào)之后)策略和股票的年化收益及最大回撤。策略的年化收益為37.7%,超過了股票本身的年化收益32.9%,最大回撤為-48.5%,遠(yuǎn)小于股票的最大回撤-79%,說明該策略總的來說效果還是不錯(cuò)的。大家可以試著選擇其他股票或者修改均線策略的參數(shù),再看看運(yùn)行的效果如何。


    以上就是構(gòu)建一個(gè)完整策略的框架的整個(gè)過程,大家如果有其他的策略,只需要將第一部分信號(hào)產(chǎn)生方式改成自己的策略邏輯就可以進(jìn)行回測(cè)了。




    之后會(huì)講的內(nèi)容:

    關(guān)于《量化小講堂》之后想看的內(nèi)容,或者相關(guān)問題,可以加我微信xbx_laoshi、Q群(快滿):438143420溝通。
    附件中是Python程序文件,回復(fù)可見。覺得文章內(nèi)容有幫助的話,頂貼是最好的鼓勵(lì)!


    本帖隱藏的內(nèi)容

    均線策略最新.zip (172.9 KB)





    二維碼

    掃碼加我 拉你入群

    請(qǐng)注明:姓名-公司-職位

    以便審核進(jìn)群資格,未注明則拒絕

    關(guān)鍵詞:python pandas 量化小講堂 panda Das 學(xué)習(xí)者 文章 財(cái)務(wù) 領(lǐng)域 如何

    均線策略.rar

    4.26 KB

    需要: 2 個(gè)論壇幣  [購買]

    本附件包括:

    • 均線策略.py

    已有 14 人評(píng)分經(jīng)驗(yàn) 論壇幣 學(xué)術(shù)水平 熱心指數(shù) 信用等級(jí) 收起 理由
    sxamfe + 1 + 1 + 1 精彩帖子
    1994 + 1 + 1 + 1 精彩帖子
    fin-qq + 80 + 3 + 3 精彩帖子
    willhoney + 1 精彩帖子
    狂熱的愛好者 + 100 精彩帖子
    accumulation + 100 + 1 + 1 + 1 精彩帖子
    421073390 + 5 + 5 + 5 棒棒噠!
    guo.bailing + 100 精彩帖子
    fantuanxiaot + 88 + 88 精彩帖子
    安然2016 + 10 精彩帖子

    總評(píng)分: 經(jīng)驗(yàn) + 678  論壇幣 + 138  學(xué)術(shù)水平 + 14  熱心指數(shù) + 15  信用等級(jí) + 11   查看全部評(píng)分

    本帖被以下文庫推薦

    不管去哪里 只要在路上
    沙發(fā)
    TIMWOLFIE 發(fā)表于 2016-8-3 21:26:05 |只看作者 |壇友微信交流群
    正在學(xué)習(xí),謝謝樓主
    藤椅
    TIMWOLFIE 發(fā)表于 2016-8-3 21:26:42 |只看作者 |壇友微信交流群
    正在學(xué)習(xí),謝謝樓主
    板凳
    璋瑜 學(xué)生認(rèn)證  發(fā)表于 2016-8-4 09:23:20 |只看作者 |壇友微信交流群
    頂一個(gè)
    報(bào)紙
    goggnn 發(fā)表于 2016-8-4 10:07:31 來自手機(jī) |只看作者 |壇友微信交流群
    邢不行 發(fā)表于 2016-8-3 16:27
    引言:本系列帖子“量化小講堂”,通過實(shí)際的案例讓大家知道如何使用Python、pandas進(jìn)行金融數(shù)據(jù)處理。帖子 ...
    謝謝樓主,學(xué)習(xí)一下
    地板
    bimbashi88 發(fā)表于 2016-8-4 13:01:06 |只看作者 |壇友微信交流群
    謝謝樓主無私奉獻(xiàn)
    7
    rayraul 發(fā)表于 2016-8-4 13:33:21 |只看作者 |壇友微信交流群
    多謝樓主無私奉獻(xiàn)
    8
    lhf8059 發(fā)表于 2016-8-4 13:46:18 |只看作者 |壇友微信交流群
    看看!
    9
    wangjuzi1122 發(fā)表于 2016-8-4 15:25:30 |只看作者 |壇友微信交流群
    謝謝樓主~[em17][em17]
    10
    wangjuzi1122 發(fā)表于 2016-8-4 15:26:02 |只看作者 |壇友微信交流群
    謝謝樓主~~~~~~~~~~~~~~~

    本版微信群
    加好友,備注jr
    拉您進(jìn)交流群

    京ICP備16021002-2號(hào) 京B2-20170662號(hào) 京公網(wǎng)安備 11010802022788號(hào) 論壇法律顧問:王進(jìn)律師 知識(shí)產(chǎn)權(quán)保護(hù)聲明   免責(zé)及隱私聲明

    GMT+8, 2024-12-29 01:55