<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國際加速解決方案。 廣告
                # 4.8 EMV ? EMV 技術指標的構建及應用 簡易波動指標(EMV),是為數不多的考慮價量關系的技術指標。它刻畫了股價在下跌的過程當中,由于買氣不斷的萎靡退縮,致使成交量逐漸的減少,EMV 數值也因而尾隨下降,直到股價下跌至某一個合理支撐區,撿便宜貨的買單促使成交量再度活躍,EMV 數值于是作相對反應向上攀升,當EMV 數值由負值向上趨近于零時,表示部分信心堅定的資金,成功的扭轉了股價的跌勢,行情不斷反轉上揚,并且形成另一次的買進訊號。 計算方法: 第一步 ![](https://box.kancloud.cn/2016-07-30_579cbb03557c0.jpg) 這里`TH` 為當天最高價,`TL` 為當天最低價,`YH `為前日最高價,`YL` 為前日最低價。`MID > 0`意味著今天的平均價高于昨天的平均價。 第二步 ![](https://box.kancloud.cn/2016-07-30_579cbb0367e70.jpg) 其中`VOL`代表交易量,`H`、`L`代表同一天的最高價與最低價 第三步 ![](https://box.kancloud.cn/2016-07-30_579cbb037b8ad.jpg) 第四步 `EMV = EM`的N日簡單移動平均 第五步 `MAEMV = EMV`的M日簡單移動平均 ```py def emv(stk_list,current_date,N=14): cal = Calendar('China.SSE') period = '-' + str(N+1) + 'B' begin_date = cal.advanceDate(current_date,period,BizDayConvention.Unadjusted) end_date = cal.advanceDate(current_date,'-1B',BizDayConvention.Unadjusted) eq_emv = {} eq_mid = {} eq_bro = {} eq_Market = DataAPI.MktEqudAdjGet(secID=stk_list,beginDate=begin_date.strftime('%Y%m%d'),endDate=end_date.strftime('%Y%m%d'),field=['secID','highestPrice','lowestPrice','turnoverVol'],pandas="1") avaiable_list = eq_Market['secID'].drop_duplicates().tolist() eq_Market.set_index('secID',inplace=True) for stk in avaiable_list: if len(eq_Market.ix[stk]) == (N+1): eq_mid[stk] = (np.array(eq_Market.ix[stk]['highestPrice'][1:] + eq_Market.ix[stk]['lowestPrice'][1:]) - np.array(eq_Market.ix[stk]['highestPrice'][:-1] + eq_Market.ix[stk]['lowestPrice'][:-1]))/2 eq_bro[stk] = np.array(eq_Market.ix[stk]['turnoverVol'][1:])/np.array(eq_Market.ix[stk]['highestPrice'][1:] + eq_Market.ix[stk]['lowestPrice'][1:]) eq_emv[stk] = np.mean(eq_mid[stk]/eq_bro[stk]) return eq_emv ``` ```py def maemv(stk_list,current_date,N=14): cal = Calendar('China.SSE') period = '-' + str(N+1) + 'B' end_date = cal.advanceDate(current_date,'-1B',BizDayConvention.Unadjusted) start_date = cal.advanceDate(current_date,period,BizDayConvention.Unadjusted) timeSeries = cal.bizDatesList(start_date, end_date) eq_maemv = {} #初始化eq_maemv字典 eq_emv = emv(stk_list,end_date,N) for stk in eq_emv: eq_maemv[stk] = 0 #僅調用N次emv函數 for i in xrange(len(timeSeries)): eq_emv = emv(stk_list,timeSeries[i],N) for stk in eq_emv: eq_maemv[stk] = eq_maemv[stk] + eq_emv[stk] for stk in eq_maemv: eq_maemv[stk] = eq_maemv[stk]/N return eq_maemv ``` ## `EMV`指標基本用法 `EMV` 在0 以下表示弱勢,在0 以上表示強勢;`EMV` 由負轉正應買進,由正轉負應賣出。 ```py import numpy as np import pandas as pd from CAL.PyCAL import * start = '2012-08-01' # 回測起始時間 end = '2015-08-01' # 回測結束時間 benchmark = 'HS300' # 策略參考標準 universe = set_universe('HS300') # 證券池,支持股票和基金 capital_base = 1000000 # 起始資金 freq = 'd' # 策略類型,'d'表示日間策略使用日線回測,'m'表示日內策略使用分鐘線回測 refresh_rate = 10 # 調倉頻率,表示執行handle_data的時間間隔,若freq = 'd'時間間隔的單位為交易日,若freq = 'm'時間間隔為分鐘 cal = Calendar('China.SSE') def initialize(account): # 初始化虛擬賬戶狀態 pass def handle_data(account): # 每個交易日的買入賣出指令 eq_emv = emv(account.universe,account.current_date,N=14) buylist = [] for stk in eq_emv: if eq_emv[stk] > 0: buylist.append(stk) for stk in account.valid_secpos: if stk not in eq_emv or eq_emv[stk] <= 0: order_to(stk,0) else: if stk not in buylist[:]: buylist.append(stk) for stk in buylist: order_to(stk,account.referencePortfolioValue/account.referencePrice[stk]/len(buylist)) ``` ![](https://box.kancloud.cn/2016-07-30_579cbb038d98a.jpg) ## `EMV`結合`MAEMV`使用 `EMV `上穿`MAEMV` 則買入,`EMV` 下穿`MAEMV` 則賣出。 ```py import numpy as np import pandas as pd from CAL.PyCAL import * start = '2012-08-01' # 回測起始時間 end = '2015-08-01' # 回測結束時間 benchmark = 'HS300' # 策略參考標準 universe = set_universe('HS300') # 證券池,支持股票和基金 capital_base = 1000000 # 起始資金 freq = 'd' # 策略類型,'d'表示日間策略使用日線回測,'m'表示日內策略使用分鐘線回測 refresh_rate = 10 # 調倉頻率,表示執行handle_data的時間間隔,若freq = 'd'時間間隔的單位為交易日,若freq = 'm'時間間隔為分鐘 cal = Calendar('China.SSE') def initialize(account): # 初始化虛擬賬戶狀態 pass def handle_data(account): # 每個交易日的買入賣出指令 eq_emv = emv(account.universe,account.current_date,14) eq_maemv = maemv(account.universe,account.current_date,14) buylist = [] for stk in eq_emv: try: if eq_emv[stk] > eq_maemv[stk]: buylist.append(stk) except: pass for stk in account.valid_secpos: if stk not in eq_emv or stk not in eq_maemv or eq_emv[stk] <= eq_maemv[stk]: order_to(stk,0) else: if stk not in buylist[:]: buylist.append(stk) for stk in buylist: order_to(stk,account.referencePortfolioValue/account.referencePrice[stk]/len(buylist)) ``` ![](https://box.kancloud.cn/2016-07-30_579cbb03a69b4.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>

                              哎呀哎呀视频在线观看