<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 【國信金工】資產周轉率選股模型 > 來源:https://uqer.io/community/share/565012a0f9f06c4446b48545 資產周轉率選股模型 ## 一、背景介紹 根據研究報告20151113-國信證券-國信alpha選股系列:資產周轉率選股模型構建。 ## 二、周轉率選股模型 這里,研究報告中使用周轉率以及相關基本面因子去預測公司 ROE 的改善,實證檢驗表明, ROE 的改善大概率會隨著未來半年業績的兌現而傳導到股票收益上。綜合考慮,研究報告用以下方式構建周轉率選股模型: 1. 總資產周轉率同比改善; 1. 營業收入同比增長; 1. ROE 在全市場處于較低水平; 1. 營業利潤同比增長。 一年調倉兩次,分別在每年 5 月初、 11 月初調倉。每期選股數量在 50 至 140只之間。平均每期股票 80 只左右。 使用“業績快報”與“合并利潤表”API或缺營業收入與營業利潤只有年報,1月初發行的。所以5月與11月調倉使用的是同意的數據。 所以本策略對原模型稍加改變,使用了‘營業利潤增長率’、‘營業收入增長率’代替‘營業利潤’與‘營業收入’。 PS:其實是懶 - -! 沒找其他的API,坐等大神實現原策略!^_^ ## 三、研究報告回測結果 ![](https://box.kancloud.cn/2016-07-31_579d79ff52065.png) 上圖顯示, 從絕對收益角度來看,周轉率選股模型在 2011 年 11 月至 2013 年 4月這三期當中絕對收益為負; 2011 年 5~10 月,雖然整體市場下跌,但模型組合絕對收益為正; 2015 年 5~10 月,市場先揚后抑,但模型組合仍斬獲正收益。 在 2012 年 11 月至 2015 年 4 月這五期當中,市場經歷了一波牛市,模型組合不但收益為正,而且每期都跑贏了全 A 等權和中證 500。最近 10 期中有 7 期絕對收益為正,而全 A 等權 10 期中有 6 期收益為正,中證 500 在近 10 期中僅有 5 期收益為正。 ![](https://box.kancloud.cn/2016-07-31_579d79ff71dff.png) 在最近 10 期當中,除 2011 年報期之外,模型組合有 9 期跑贏中證 500。 其中,在 2011 年 11 月年報期,模型的相對收益最低,為-1.03%;在 2015 年 5 月中報期,模型的相對收益最高,有 19.30%。平均年化超額收益 20.68%。 從絕對收益角度考慮,由于全 A 等權并無實際對沖標的,而且模型相對中證 500的超額收益較高,所以該模型在中證 500 指數的基礎上做絕對收益不失為一個不錯的選擇。 ```py from CAL.PyCAL import * start = '2010-11-01' # 回測起始時間 end = '2015-05-01' # 回測結束時間 benchmark = 'ZZ500' # 策略參考標準 universe = set_universe('ZZ500')# + set_universe('HS300') # 證券池,支持股票和基金 capital_base = 10000000 # 起始資金 freq = 'd' # 策略類型,'d'表示日間策略使用日線回測,'m'表示日內策略使用分鐘線回測 refresh_rate = 122 # 調倉頻率,表示執行handle_data的時間間隔,若freq = 'd'時間間隔的單位為交易日,若freq = 'm'時間間隔為分鐘 cal = Calendar('China.SSE') stocknum = 80 def initialize(account): # 初始化虛擬賬戶狀態 pass def handle_data(account): # 每個交易日的買入賣出指令 global stocknum # 獲取時間 today = Date.fromDateTime(account.current_date).strftime('%Y%m%d') # 當天日期 lasttime = cal.advanceDate(today,'-1Y',BizDayConvention.Preceding).strftime('%Y%m%d') print '調倉日期:' + str(account.current_date) # 根據條件獲取buylist tf1 = DataAPI.MktStockFactorsOneDayGet(tradeDate=today,secID=account.universe,ticker=u"",field=['secID','OperatingProfitGrowRate','OperatingRevenueGrowRate','TotalAssetsTRate','ROE'],pandas="1") tf1.set_index('secID',inplace=True) tf1 = tf1[(tf1.OperatingProfitGrowRate>0.0)&(tf1.OperatingRevenueGrowRate>0.0)&(tf1.TotalAssetsTRate>0.0)&(tf1.ROE>0.0)].dropna() tf2 = DataAPI.MktStockFactorsOneDayGet(tradeDate=lasttime,secID=account.universe,ticker=u"",field=['secID','OperatingProfitGrowRate','OperatingRevenueGrowRate','TotalAssetsTRate','ROE'],pandas="1") tf2.set_index('secID',inplace=True) tf2 = tf2[(tf2.OperatingProfitGrowRate>0.0)&(tf2.OperatingRevenueGrowRate>0.0)&(tf2.TotalAssetsTRate>0.0)&(tf2.ROE>0.0)].dropna() per_buylist=[] for stock in list(tf1.index): if stock in list(tf2.index): if((tf1['OperatingProfitGrowRate'][stock]>tf2['OperatingProfitGrowRate'][stock])&(tf1['OperatingRevenueGrowRate'][stock]>tf2['OperatingRevenueGrowRate'][stock])&(tf1['TotalAssetsTRate'][stock]>tf2['TotalAssetsTRate'][stock])): per_buylist.append(stock) by = DataAPI.MktStockFactorsOneDayGet(tradeDate=today,secID=account.universe,ticker=u"",field=['secID','ROE'],pandas="1") by.set_index('secID',inplace=True) by = by[by.ROE>=0.0].dropna().sort(columns='ROE',ascending=True) by = by.head(80) buylist = list(by.index) # 賣出股票 for stock in account.valid_secpos: if stock not in buylist: order_to(stock, 0) else: pass # 買入股票 for stock in buylist: if stock not in account.valid_secpos: order(stock, account.cash/account.referencePrice[stock]/stocknum) # print list(account.valid_secpos.keys()) ``` ![](https://box.kancloud.cn/2016-07-30_579cb7364a7dc.jpg) ``` 調倉日期:2010-11-01 00:00:00 調倉日期:2011-05-03 00:00:00 調倉日期:2011-10-31 00:00:00 調倉日期:2012-05-04 00:00:00 調倉日期:2012-10-31 00:00:00 調倉日期:2013-05-08 00:00:00 調倉日期:2013-11-08 00:00:00 調倉日期:2014-05-12 00:00:00 調倉日期:2014-11-07 00:00:00 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看