<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Simple MACD > 來源:https://uqer.io/community/share/560a3007f9f06c597665ef61 MACD 公式算法: + 短期EMA: 短期(例如12日)的收盤價指數移動平均值(Exponential Moving Average) + 長期EMA: 長期(例如26日)的收盤價指數移動平均值(Exponential Moving Average) + DIF線: (Difference)短期EMA和長期EMA的離差值 + DEA線: (Difference Exponential Average)DIF線的M日指數平滑移動平均線 + MACD線: DIF線與DEA線的差 策略實現: + DIF從下而上穿過DEA,買進; + 相反,如DIF從上往下穿過DEA,賣出。 ## 策略中使用`talib`計算MACD ```py import pandas as pd import numpy as np import talib start = '2012-01-01' end = '2015-09-28' benchmark = 'HS300' universe = set_universe('HS300') capital_base = 1000000 refresh_rate = 5 ## 使用talib計算MACD的參數 short_win = 12 # 短期EMA平滑天數 long_win = 26 # 長期EMA平滑天數 macd_win = 20 # DEA線平滑天數 stk_num = 20 # 持倉股票數量 longest_history = 100 def initialize(account): account.universe = universe def handle_data(account): all_close_prices = account.get_attribute_history('closePrice', longest_history) long_bucket = [] short_bucket = [] for stk in account.universe: prices = all_close_prices[stk] if prices is None: continue try: # talib計算MACD macd_tmp = talib.MACD(prices, fastperiod=short_win, slowperiod=long_win, signalperiod=macd_win) DIF = macd_tmp[0] DEA = macd_tmp[1] MACD = macd_tmp[2] except: continue # 判斷MACD走向 if MACD[-1] > 0 and MACD[-4] < 0: long_bucket.append(stk) elif MACD[-1] < 0 and MACD[-4] > 0: short_bucket.append(stk) hold = [] # 處理持倉中的股票 for stk in account.valid_secpos: # 在short_bucket中的,賣出 if stk in short_bucket: order_to(stk, 0) # 不在short_bucket中的,留著 else: hold.append(stk) buy_list = hold for stk in long_bucket: if stk not in hold: buy_list.append(stk) if len(buy_list) > 0: # 無論buy_list中有多少只股票,都將倉位分成stk_num份,每份買入一只股票 amount_per_stk = account.referencePortfolioValue/stk_num for stk in buy_list: amount = int(amount_per_stk/account.referencePrice[stk] / 100.0) * 100 order_to(stk, amount) ``` ![](https://box.kancloud.cn/2016-07-30_579cbb022d595.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>

                              哎呀哎呀视频在线观看