完整教程)
本方案由EasyQuant AI量化助手提供。問題背景指數增強、ETF 跟蹤和行業暴露分析都需要知道指數成分股及其權重。QMT 可通過get_index_weight()獲取指數當前成分股權重用于計算組合偏離度或構建權重化股票池。實現思路下載指數與板塊基礎數據。調用get_index_weight()獲取指數權重字典。按權重從高到低排序。計算前十大權重股的集中度。完整代碼示例from xtquant import xtdata INDEX_CODE 000300.SH def download_index_data(): 下載板塊及指數權重相關數據。 xtdata.download_sector_data() print(指數板塊數據下載完成) def get_index_weights(index_code): 獲取指數成分股權重。 返回格式 {股票代碼: 權重百分比} weight_data xtdata.get_index_weight( index_code ) if not weight_data: print(未獲取到指數權重數據) return {} return weight_data def analyse_weights(weight_data): 按權重排序輸出前十大成分股。 sorted_weights sorted( weight_data.items(), keylambda item: item[1], reverseTrue ) print( 前十大權重股 ) top10_weight 0 for stock_code, weight in sorted_weights[:10]: top10_weight weight print( 股票%s權重%.3f%% % (stock_code, weight) ) print( 前十大成分股權重合計%.3f%% % top10_weight ) return sorted_weights def main(): # 第一步下載基礎數據 download_index_data() # 第二步獲取指數權重 weight_data get_index_weights( INDEX_CODE ) if not weight_data: return print( 指數%s成分股數量%d % (INDEX_CODE, len(weight_data)) ) # 第三步排序并分析 analyse_weights(weight_data) if __name__ __main__: main()根據指數權重分配資金def calculate_target_value( total_capital, stock_weight ): 根據指數權重計算目標市值。 stock_weight為百分比例如0.583表示0.583%。 return total_capital * stock_weight / 100注意事項調用前應先執行xtdata.download_sector_data()下載相關數據。權重值通常以百分比表示例如0.583表示0.583%。指數會定期調整成分股與權重策略應定期刷新數據。指數權重只能作為配置參考實際交易還需考慮停牌、漲跌停、最小交易單位和資金規模。歷史指數權重回測應使用對應歷史數據避免直接使用當前權重。總結QMT 的get_index_weight()可快速獲取滬深300等指數的成分股權重是構建指數跟蹤、組合偏離監控和權重化選股策略的重要數據接口。