<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 事件驅動策略示例——盈利預增 > 來源:https://uqer.io/community/share/54d972c1f9f06c276f651a72 ## 策略思路 + 從DataAPI中獲取滬深300成分股的盈利預增事件數據 + 每個交易日,將昨天發布盈利預增事件公司加入買入列表 + 根據調倉限制和買入列表進行調倉 + 調倉限制 + (1) 股票持有不超過50只 + (2) 一旦買入,持有40個交易日 + (3) 僅當持有數量低于50只時才買入股票,補滿50只 ```py import pandas as pd from datetime import datetime from functools import partial fields_ef = ['secID', 'publishDate'] get_data = partial(DataAPI.FdmtEfGet, forecastType = 22, field = fields_ef) # forecastType 22: 盈利預增 data_ef = [] for stock in set_universe('HS300'): try: if len(data_ef): data_ef = data_ef.append(get_data(secID = stock)) else: data_ef = get_data(secID = stock) except: pass data_ef['publishDate'] = pd.to_datetime(data_ef['publishDate']) data_ef = data_ef.sort(columns = 'publishDate') data_ef = data_ef[data_ef.publishDate >= datetime(2010, 1, 1)] ``` ```py start = '2010-01-01' end = '2015-04-01' benchmark = 'HS300' universe = set_universe('HS300') capital_base = 1000000 longest_history = 1 max_t = 40 # 持倉時間 max_n = 50 # 持倉數量 def initialize(account): account.hold_period = {} def handle_data(account): yesterday = account.get_symbol_history('tradeDate', 1)[0] data_sub = data_ef[data_ef.publishDate == yesterday] if len(data_sub): buylist = [s for s in data_sub['secID'].tolist() if s in account.universe] rebalance(account, buylist) def rebalance(account, buylist): n = 0 for stock, t in account.hold_period.items(): if t == max_t: order_to(stock, 0) del account.hold_period[stock] else: account.hold_period[stock] += 1 n += 1 if n == max_n or buylist == []: return b = max_n - n buylist = [s for s in buylist if s not in account.hold_period] for stock in buylist[:b]: order(stock, account.referencePortfolioValue / b / account.referencePrice[stock]) account.hold_period[stock] = 0 ``` ![](https://box.kancloud.cn/2016-07-30_579cbaff5d552.jpg)
                  <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>

                              哎呀哎呀视频在线观看