五月天婷亚洲天久久综合网,婷婷丁香五月激情亚洲综合,久久男人精品女人,麻豆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>
    樓主: 邢不行
    81010 451

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

    院士

    8%

    還不是VIP/貴賓

    -

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

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

    +2 論壇幣
    k人 參與回答

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

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

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

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

    送您一個全額獎學金名額~ !

    感謝您參與論壇問題回答

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

    +2 論壇幣

    引言:

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

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

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

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

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

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




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


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


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


    • 產(chǎn)生買賣信號的策略。
    • 根據(jù)買賣信號生成資金曲線。
    • 根據(jù)資金曲線計算策略評價指標。


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


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

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


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


    • 當短期均線上穿長期均線時,視為買入信號,以第二天開盤價全倉買入;
    • 當短期均線下穿長期均線時,視為賣出信號,以第二天開盤價全倉賣出。


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

    可見下圖示例:

    1.png


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

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


    # 第三部分:根據(jù)資金曲線計算策略評價指標

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


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


    一、選擇標的股票并計算復(fù)權(quán)后的價格

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


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

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


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

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


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

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


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


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

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


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


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



    ==程序==


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

    2.png

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

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

    【date】交易日期

    【open】開盤價

    【high】最高價

    【low】最低價

    【close】收盤價

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

    【volume】成交量

    【money】成交額

    【traded_market_value】流通市值

    【market_value】總市值

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

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


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

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

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

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

    13.png

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


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

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

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


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

    然后是賬戶交易的各項指標的統(tǒng)計。

    20.png

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


    21.png

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


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




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

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


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

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





    二維碼

    掃碼加我 拉你入群

    請注明:姓名-公司-職位

    以便審核進群資格,未注明則拒絕

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

    均線策略.rar

    4.26 KB

    需要: 2 個論壇幣  [購買]

    本附件包括:

    • 均線策略.py

    已有 14 人評分經(jīng)驗 論壇幣 學術(shù)水平 熱心指數(shù) 信用等級 收起 理由
    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 精彩帖子

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

    本帖被以下文庫推薦

    不管去哪里 只要在路上
    沙發(fā)
    TIMWOLFIE 發(fā)表于 2016-8-3 21:26:05 |只看作者 |壇友微信交流群
    正在學習,謝謝樓主
    藤椅
    TIMWOLFIE 發(fā)表于 2016-8-3 21:26:42 |只看作者 |壇友微信交流群
    正在學習,謝謝樓主
    板凳
    璋瑜 學生認證  發(fā)表于 2016-8-4 09:23:20 |只看作者 |壇友微信交流群
    頂一個
    報紙
    goggnn 發(fā)表于 2016-8-4 10:07:31 來自手機 |只看作者 |壇友微信交流群
    邢不行 發(fā)表于 2016-8-3 16:27
    引言:本系列帖子“量化小講堂”,通過實際的案例讓大家知道如何使用Python、pandas進行金融數(shù)據(jù)處理。帖子 ...
    謝謝樓主,學習一下
    地板
    bimbashi88 發(fā)表于 2016-8-4 13:01:06 |只看作者 |壇友微信交流群
    謝謝樓主無私奉獻
    7
    rayraul 發(fā)表于 2016-8-4 13:33:21 |只看作者 |壇友微信交流群
    多謝樓主無私奉獻
    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
    拉您進交流群

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

    GMT+8, 2024-12-29 17:03