qmt量化交易策略小白学习笔记第15期【qmt编程之获取龙虎榜数据】

qmt编程之获取龙虎榜数据

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

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

获取龙虎榜数据

获取指定日期区间内的龙虎榜数据

内置python

C.get_longhubang(stock_list, startTime, endTime)

参数

参数名称类型描述
stock_listlist股票列表,如 ['600000.SH', '600036.SH']
startTimestr起始时间,如 '20170101'
endTimestr结束时间,如 '20180101'

返回值

  • 格式为pandas.DataFrame:
参数名称数据类型描述
reasonstr上榜原因
closefloat收盘价
spreadRatefloat涨跌幅
TurnoverVolunefloat成交量
Turnover_Amountfloat成交金额
buyTraderBoothpandas.DataFrame买方席位
sellTraderBoothpandas.DataFrame卖方席位
  • buyTraderBooth 或 sellTraderBooth 包含字段:
参数名称数据类型描述
traderNamestr交易营业部名称
buyAmountfloat买入金额
buyPercentfloat买入金额占总成交占比
sellAmountfloat卖出金额
sellPercentfloat卖出金额占总成交占比
totalAmountfloat该席位总成交金额
rankint席位排行
directionint买卖方向

示例

示例

# coding:gbk

def init(C):
    return

def handlebar(C):
    print(C.get_longhubang(['000002.SZ'],'20100101','20180101'))

返回值

 stockCode stockName                 date                  reason  \
0   000002.SZ       万科A  2010-12-21 00:00:00        日价格涨幅偏离值达7%以上的证券   
1   000002.SZ       万科A  2013-01-21 00:00:00        日价格涨幅偏离值达7%以上的证券   
2   000002.SZ       万科A  2013-06-28 00:00:00        日价格涨幅偏离值达7%以上的证券   
3   000002.SZ       万科A  2014-12-31 00:00:00        日价格涨幅偏离值达7%以上的证券   
4   000002.SZ       万科A  2015-12-01 00:00:00        日价格涨幅偏离值达7%以上的证券   
5   000002.SZ       万科A  2015-12-02 00:00:00  连续三个交易日内涨幅偏离值累计达20%的证券   
6   000002.SZ       万科A  2015-12-02 00:00:00        日价格涨幅偏离值达7%以上的证券   
7   000002.SZ       万科A  2015-12-09 00:00:00        日价格涨幅偏离值达7%以上的证券   
8   000002.SZ       万科A  2015-12-17 00:00:00        日价格涨幅偏离值达7%以上的证券   
9   000002.SZ       万科A  2015-12-18 00:00:00        日价格涨幅偏离值达7%以上的证券   
10  000002.SZ       万科A  2016-07-04 00:00:00        日价格跌幅偏离值达7%以上的证券   
11  000002.SZ       万科A  2016-07-05 00:00:00        日价格跌幅偏离值达7%以上的证券   
12  000002.SZ       万科A  2016-07-05 00:00:00  连续三个交易日内跌幅偏离值累计达20%的证券   
13  000002.SZ       万科A  2016-08-04 00:00:00        日价格涨幅偏离值达7%以上的证券   
14  000002.SZ       万科A  2016-08-12 00:00:00        日价格涨幅偏离值达7%以上的证券   
15  000002.SZ       万科A  2016-08-15 00:00:00        日价格涨幅偏离值达7%以上的证券   
16  000002.SZ       万科A  2016-08-16 00:00:00  连续三个交易日内涨幅偏离值累计达20%的证券   
17  000002.SZ       万科A  2016-08-16 00:00:00        日价格涨幅偏离值达7%以上的证券   
18  000002.SZ       万科A  2016-08-31 00:00:00        日价格涨幅偏离值达7%以上的证券   
19  000002.SZ       万科A  2016-11-09 00:00:00        日价格涨幅偏离值达7%以上的证券   
20  000002.SZ       万科A  2017-01-13 00:00:00        日价格涨幅偏离值达7%以上的证券   
21  000002.SZ       万科A  2017-06-23 00:00:00        日价格涨幅偏离值达7%以上的证券   
22  000002.SZ       万科A  2017-06-26 00:00:00  连续三个交易日内涨幅偏离值累计达20%的证券   
23  000002.SZ       万科A  2017-06-26 00:00:00        日价格涨幅偏离值达7%以上的证券   
24  000002.SZ       万科A  2017-09-07 00:00:00        日价格涨幅偏离值达7%以上的证券   
25  000002.SZ       万科A  2017-11-21 00:00:00        日价格涨幅偏离值达7%以上的证券   
26  000002.SZ       万科A  2021-02-25 00:00:00           日涨幅偏离值达到7%的证券   
27  000002.SZ       万科A  2022-11-11 00:00:00           日涨幅偏离值达到7%的证券   
28  000002.SZ       万科A  2022-11-29 00:00:00           日涨幅偏离值达到7%的证券   

                 close           SpreadRate      TurnoverVolume  \
0   9.1300000000000008                   10  29708.793799999999   
1   11.130000000000001   9.9800000000000004  2343.0893000000001   
2   9.8499999999999996   8.3599999999999994  23490.928500000002   
3                 13.9   9.9700000000000006  48995.445899999999   
4   16.579999999999998                10.02  37501.637000000002   
5   18.239999999999998                10.01  121600.59819999999   
6   18.239999999999998                10.01  121600.59819999999   
7   19.550000000000001                10.02          35985.1973   
8   22.210000000000001                   10  25833.926500000001   
9                24.43                   10  22389.840199999999   
10  21.989999999999998  -9.9900000000000002              426.63   
11  19.789999999999999                  -10  19905.759999999998   
12  19.789999999999999                  -10  19905.759999999998   
13  19.670000000000002                10.01  37134.658199999998   
14  22.780000000000001                   10  37487.086199999998   
15  25.059999999999999                10.01  32311.062999999998   
16               27.57                10.02  33347.805800000002   
17               27.57                10.02  33347.805800000002   
18               24.93                10.02  23831.257399999999   
19  26.300000000000001   8.5899999999999999  40171.613899999997   
20  21.809999999999999   6.9100000000000001          10642.6641   
21               24.07                10.01  12511.867700000001   
22               26.48                10.01          17111.8298   
23               26.48                10.01          17111.8298   
24  25.969999999999999   9.1199999999999992          12745.6991   
25  31.789999999999999                   10  10817.886200000001   
26  32.990000000000002                   10  25954.038499999999   
27               15.76   9.9800000000000004  29116.540400000002   
28  18.829999999999998   9.9900000000000002  25456.029699999999   
...

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、付费专栏及课程。

余额充值