91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是指數增強

發布時間:2020-05-18 13:31:34 來源:網絡 閱讀:236 作者:ckllf 欄目:編程語言

   什么是指數增強?

   指數增強策略并不是被動的跟蹤某個指數波動,而是采用量化增強模型,利用多因子alpha模型預測股票超額回報,同時力求進行有效的風險控制、降低交易成本、優化投資組合。指數增強策略不會對跟蹤標的成分股進行完全復制,而是會對部分看好的股票增加權重,不看好的股票則減少權重,甚至完全去掉。通過對交易成本模型的不斷監測,盡可能讓交易成本降到最小。綜合來看,就是既做到超額收益,又控制主動風險。

  策略實現(基于掘金量化平臺)

  策略思想

  ? 本策略以0.8為初始權重跟蹤指數標的滬深300中權重大于0.35%的成份股。

  ? 個股所占的百分比為:(0.8 X 成份股權重) /選擇的成分股權重總和 X 100%。

  ? 然后根據個股是否連續上漲5天;連續下跌5天,來判定個股是否為強勢股/弱勢股,并對其把權重由0.8調至1.0或0.6

  策略主要步驟實現

  獲取滬深300成分股及信息

  stock300 = get_history_constituents(index='SHSE.000300',

  start_date=last_day,end_date=last_day)[0]['constituents']

  獲取指數成分股可調用函數get_history_constituents或者get_constituents,返回值類型為list[dict],字典的鍵為股票代碼,值為所占權重。這里調用get_history_constituents是因為再回測時需要獲取上一交易日的成分股,而get_constituents只能獲取最新的成分股:

  ? index需要設置獲取指數的代碼。

  ? start_date和end_date需設置獲取成分股的開始與結束日期。

  訂閱數據

  subscribe(symbols=stock300_symbol, frequency='1d', count=5, wait_group=True)

  訂閱數據需要在定義init函數里面設置,并調用subscribe函數,這里注意,我們需要通過計算前三十根bars來作為開平倉的標準,并在當前bar上做出開平倉操作,所以需要獲取31根bar:

  ? symbols 需要設置訂閱的標的代碼。

  ? frequency需設置訂閱數據的周期級別,這里設置1d 表示以一天為周期。

  ? count需要設置獲取的bar的數量

  數據獲取

  recent_data = context.data(symbol=symbol, frequency='1d', count=5, fields='close')['close'].tolist()

  訂閱數據之后,需要獲取已經訂閱的數據來進行操作,這時需調用context.data函數:

  ? symbols 需要設置訂閱的標的代碼。

  ? frequency需設置訂閱數據的周期級別,這里設置1d表示以一天為周期。

  ? count需要設置獲取的bar的數量

  ? fields需要設置返回值的種類

  獲取持倉信息

  position = context.account().position(symbol=symbol, side=PositionSide_Long)

  在判斷平倉或者加倉條件時,需要獲取持倉信息,這就需要調用context.account().position函數:

  ? symbols 需要設置訂閱的標的代碼。

  ? side需要設置持倉方向,有PositionSide_Long和PositionSide_Short兩個選擇。

  回測報告

  分析

   我們選取了2017年10月至2017年12月作為回測周期,可以看出:

  ? 勝率(具有盈利的平倉次數與總平倉次數之比)達到了66%。

  ? 卡瑪比率(年化收益率與歷史最大回撤之比)是使用最大回撤率來衡量風險。采用最大回撤率來衡量風險,關注的是最極端的情況。卡瑪比率越高表示策略承受每單位最大損失獲得的報酬越高。在這里卡瑪比率達到了6.7。

  ? 夏普比率(年化收益率減無風險收益率的差收益波動率之比)達到2.77。

  ? 策略收益曲線與滬深三百指數具有很大相關性,指數增強策略的關鍵點在于選出成分股中優質的股票,以達到增強指數收益的目的。

  附:指數增強策略源碼

  # coding=utf-8

  from __future__ import print_function, absolute_import, unicode_literals

  import numpy as np

  from gm.api import *

  from pandas import DataFrame

  '''

  本策略以0.8為初始權重跟蹤指數標的滬深300中權重大于0.35%的成份股.

  個股所占的百分比為(0.8*成份股權重)*100%.然后根據個股是否

  連續上漲5天;連續下跌5天

  來判定個股是否為強勢股/弱勢股,并對其把權重由0.8調至1.0或0.6

  回測數據為:SHSE.000300中權重大于0.35%的成份股

  回測時間為:2017-07-01 08:50:00到2017-10-01 17:00:00

  '''

  def init(context):

  # 資產配置的初始權重,配比為0.6-0.8-1.0

  context.ratio = 0.8

  # 獲取滬深300當時的成份股和相關數據

  stock300 = get_history_constituents(index='SHSE.000300', start_date='2017-06-30', end_date='2017-06-30')[0][

  'constituents']

  stock300_symbol = []

  stock300_weight = []

  for key in stock300:

  # 保留權重大于0.35%的成份股

  if (stock300[key] / 100) > 0.0035:

  stock300_symbol.append(key)

  stock300_weight.append(stock300[key] / 100)

  context.stock300 = DataFrame([stock300_weight], columns=stock300_symbol, index=['weight']).T

  context.sum_weight = np.sum(stock300_weight)

  print('選擇的成分股權重總和為: ', context.sum_weight)

  subscribe(symbols=stock300_symbol, frequency='1d', count=5, wait_group=True)

  def on_bar(context, bars):

  # 若沒有倉位則按照初始權重開倉

  for bar in bars:

  symbol = bar['symbol']

  position = context.account().position(symbol=symbol, side=PositionSide_Long)

  if not position:

  buy_percent = context.stock300['weight'][symbol] / context.sum_weight * context.ratio

  order_target_percent(symbol=symbol, percent=buy_percent, order_type=OrderType_Market,

  position_side=PositionSide_Long)

  print(symbol, '以市價單開多倉至倉位:', buy_percent * 100)

  else: 無錫婦科醫院排名 http://www.csfk0731.com/

  # 獲取過去5天的價格數據,若連續上漲則為強勢股,權重+0.2;若連續下跌則為弱勢股,權重-0.2

  recent_data = context.data(symbol=symbol, frequency='1d', count=5, fields='close')['close'].tolist()

  if all(np.diff(recent_data) > 0):

  buy_percent = context.stock300['weight'][symbol] / context.sum_weight * (context.ratio + 0.2)

  order_target_percent(symbol=symbol, percent=buy_percent, order_type=OrderType_Market,

  position_side=PositionSide_Long)

  print('強勢股', symbol, '以市價單調多倉至倉位:', buy_percent * 100)

  elif all(np.diff(recent_data) < 0):

  buy_percent = context.stock300['weight'][symbol] / context.sum_weight * (context.ratio - 0.2)

  order_target_percent(symbol=symbol, percent=buy_percent, order_type=OrderType_Market,

  position_side=PositionSide_Long)

  print('弱勢股', symbol, '以市價單調多倉至倉位:', buy_percent * 100)

  if __name__ == '__main__':

  '''

  本策略基于掘金量化交易平臺 網址:www.myquant.cn

  strategy_id策略ID,由系統生成

  filename文件名,請與本文件名保持一致

  mode實時模式:MODE_LIVE回測模式:MODE_BACKTEST

  token綁定計算機的ID,可在系統設置-密鑰管理中生成

  backtest_start_time回測開始時間

  backtest_end_time回測結束時間

  backtest_adjust股票復權方式不復權:ADJUST_NONE前復權:ADJUST_PREV后復權:ADJUST_POST

  backtest_initial_cash回測初始資金

  backtest_commission_ratio回測傭金比例

  backtest_slippage_ratio回測滑點比例

  '''

  run(strategy_id='c722244f-eaa9-11e7-8618-9cd21ef04ea9',

  filename='指數增強.py',

  mode=MODE_BACKTEST,

  token='c395247a76e8a5caeee699d668d6f550213bc418',

  backtest_start_time='2017-10-01 08:50:00',

  backtest_end_time='2017-12-01 17:00:00',

  backtest_adjust=ADJUST_PREV,

  backtest_initial_cash=10000000,

  backtest_commission_ratio=0.0001,

  backtest_slippage_ratio=0.0001


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南召县| 武隆县| 辽阳市| 景东| 渭南市| 西林县| 安陆市| 专栏| 都江堰市| 怀远县| 许昌县| 达尔| 龙游县| 临潭县| 浦城县| 周宁县| 高州市| 磐石市| 彭州市| 大渡口区| 清水河县| 新安县| 宁陕县| 定结县| 策勒县| 门源| 海安县| 松滋市| 常宁市| 柳江县| 襄樊市| 和林格尔县| 肃南| 遂平县| 利辛县| 杭锦后旗| 湟中县| 新乡市| 临泽县| 衢州市| 佛山市|