qmt量化交易策略小白学习笔记第6期【qmt如何获取股票历史涨跌停价格】

qmt如何获取股票历史涨跌停价格

qmt更加详细的教程方法,会持续慢慢梳理。

也可找寻博主的历史文章,搜索关键词查看解决方案 !

感谢关注,需免费开通量化回测与咨询实盘权限,可以和博主联系!

获取股票历史涨跌停价格

提示

  1. 获取该数据前需要先调用xtdata.download_history_data进行下载,period参数选择"stoppricedata"

  2. 该数据通过get_market_data_ex接口获取,period参数选择"stoppricedata"

  3. 若是只需要最新一天的涨跌停价格,可通过get_instrument_detail的UpStopPriceDownStopPrice字段获取

  4. 该数据是VIP权限数据

调用方法

get_market_data_ex([],stock_list,period="stoppricedata",start_time = "", end_time = "")

参数

参数名称类型描述
field_listlist数据字段列表,传空则为全部字段
stock_listlist合约代码列表
periodstring周期
start_timestring起始时间
end_timestring结束时间
countint数据个数。默认参数,大于等于0时,若指定了 start_timeend_time,此时以 end_time 为基准向前取 count 条;若 start_timeend_time 缺省,默认取本地数据最新的 count 条数据;若 start_timeend_timecount 都缺省时,默认取本地全部数据

返回值

返回一个 {stock_code:pd.DataFrame} 结构的dict对象,默认的列索引为取得的全部字段. 如果给定了 fields 参数, 则列索引与给定的 fields 对应.

示例

python


from xtquant import xtdata

stock_list = xtdata.get_stock_list_in_sector("沪深A股")[:5]

# 下载涨跌停价格数据
for i in stock_list:
  xtdata.download_history_data(i, 'stoppricedata', '', '')

# 获取涨跌停价格数据
data = xtdata.get_market_data_ex([], stock_list, 'stoppricedata', '', '')

print(data)

返回值

{'000001.SZ':                time    涨停价   跌停价
 0      663004800000   0.00  0.00
 1      663609600000   0.00  0.00
 2      664214400000   0.00  0.00
 3      664819200000   0.00  0.00
 4      665424000000   0.00  0.00
 ...             ...    ...   ...
 7824  1701360000000  10.65  8.71
 7825  1701619200000  10.63  8.69
 7826  1701705600000  10.59  8.67
 7827  1701792000000  10.43  8.53
 7828  1701878400000  10.45  8.55
 
 [7829 rows x 3 columns],
 '000002.SZ':                time    涨停价    跌停价
 0      663004800000   0.00   0.00
 1      664214400000   0.00   0.00
 2      665078400000   0.00   0.00
 3      665164800000   0.00   0.00
 4      665424000000   0.00   0.00
 ...             ...    ...    ...
 7816  1701360000000  12.58  10.30
 7817  1701619200000  12.54  10.26
 7818  1701705600000  12.30  10.06
 7819  1701792000000  11.87   9.71
 7820  1701878400000  11.94   9.77
 
 [7821 rows x 3 columns],
 '000004.SZ':                time    涨停价    跌停价
 0      663004800000   0.00   0.00
 1      663609600000   0.00   0.00
 2      663782400000   0.00   0.00
 3      663868800000   0.00   0.00
 4      663955200000   0.00   0.00
 ...             ...    ...    ...
 7687  1701360000000  19.09  15.62
 7688  1701619200000  19.71  16.13
 7689  1701705600000  19.94  16.32
 7690  1701792000000  19.00  15.54
 7691  1701878400000  18.72  15.32
 
 [7692 rows x 3 columns],
 '000005.SZ':                time   涨停价   跌停价
 0      661536000000  0.00  0.00
 1      661622400000  0.00  0.00
 2      661708800000  0.00  0.00
 3      661968000000  0.00  0.00
 4      662054400000  0.00  0.00
 ...             ...   ...   ...
 7303  1701360000000  1.47  1.33
 7304  1701619200000  1.47  1.33
 7305  1701705600000  1.48  1.34
 7306  1701792000000  1.48  1.34
 7307  1701878400000  1.47  1.33
 
 [7308 rows x 3 columns],
 '000006.SZ':                time   涨停价   跌停价
 0      704304000000  0.00  0.00
 1      704390400000  0.00  0.00
 2      704476800000  0.00  0.00
 3      704563200000  0.00  0.00
 4      704822400000  0.00  0.00
 ...             ...   ...   ...
 7491  1701360000000  5.09  4.17
 7492  1701619200000  5.14  4.20
 7493  1701705600000  5.12  4.19
 7494  1701792000000  5.07  4.15
 7495  1701878400000  5.27  4.31
 
 [7496 rows x 3 columns]}


 

QMT(Quantum Trader)是由国泰君安证券推出的一款专业的量化交易平台,支持用户编写基于Python或其他语言股票货等金融产品的量化交易策略。但是需要注意的是,**QMT标准版本身并不提供具体的股票量化交易策略源代码**,而是通过其API接口让用户自行开发。 以下是一个简单的关于如何构建股票量化交易策略的基本思路,并附上一段伪代码示例: ### 股票量化交易策略简介 #### 策略类型 常见的股票量化交易策略包括但不限于: 1. **均线突破策略**:当短均线上穿长均线时买入;下穿时卖出。 2. **RSI超买超卖策略**:利用技术指标RSI判断市场是否进入超买或超卖区域。 3. **网格交易策略**:设定价格区间,在低价位买入高价卖出,赚取价差收益。 #### 示例 - 均线突破策略 假设我们希望实现一个简单均线交叉的交易策略,核心思想如下: - 计算短移动平均线 (如5日MA) 和长移动平均线 (如60日MA); - 当短周MA大于长周MA时买入; - 反之则清仓并退出所有持仓。 ```python import pandas as pd from qmt import * # 初始化回测环境 def init(context): context.stock = 'SHSE.600519' # 设置目标股票为贵州茅台 context.short_period = 5 # 定义短均线窗口数 context.long_period = 60 # 长均线窗口数 # 每个交易日运行一次 def handle_data(context, data): stock_price = get_history('close', symbol=context.stock) short_ma = stock_price[-context.short_period:].mean() long_ma = stock_price[-context.long_period:].mean() current_position = context.portfolio.positions.get(context.stock, None) if short_ma > long_ma and not current_position: order_target_value(context.stock, context.portfolio.cash * 0.8) # 全仓买入 elif short_ma < long_ma and current_position: order_target(context.stock, 0) # 清空仓位 if __name__ == '__main__': run(strategy=handle_data, initialize=init, start_date='2022-01-01') ``` 上述代码仅为简化版本,实际应用还需要考虑手续费、滑点成本等因素。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值