量化平台
Ptrade|QMT|银行股息率轮动 实盘自动化交易
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 1156 次浏览 • 2024-03-05 09:33
华泰matic能在虚拟机运行吗?
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 1065 次浏览 • 2024-01-05 09:36
但matic却可以在hyper X虚拟机上运行。笔者在win11家庭版的hyper x测试过的。
小市值轮动-量化交易-程序化交易-Ptrade实盘
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2215 次浏览 • 2023-10-07 14:14
当前策略持有30只。
点击查看大图
点击查看大图
基于股票的策略不敢多买,属于试验阶段,后期仍然会不断根据市场调仓; 主仓依然在可转债。
公众号:可转债量化分析
如果需要策略代写,(ptrade、qmt,其他量化平台)
可以公众号后台回复:
策略代写
查看全部
万0.854 免5 量化开户|QMT|Ptrade|掘金量化|国盛证券
券商万一免五 • 李魔佛 发表了文章 • 0 个评论 • 2758 次浏览 • 2023-09-01 22:25
为贯彻落实7月24日中央政治局会议精神和国务院相关会议部署,进一步活跃资本市场,提振投资者信心,形成推动经济持续回升向好的工作合力,证监会指导上海证券交易所、深圳证券交易所、北京证券交易所自8月28日起进一步降低证券交易经手费。沪深交易所此次将A股、B股证券交易经手费从按成交金额的0.00487%双向收取下调为按成交金额的0.00341%双向收取,降幅达30%;北交所在2022年12月调降证券交易经手费50%的基础上,再次将证券交易经手费标准降低50%,由按成交金额的0.025%双边收取下调至按成交金额的0.0125%双边收取。同时,将引导证券公司稳妥做好与客户合同变更及相关交易参数的调整,依法降低经纪业务佣金费率,切实将此次证券交易经手费下降的政策效果传导至广大投资者
在今年8月的时候,交易所下调经手费,经手费是交易所收取的。 所以国盛证券响应国家号召,第一时间下调经手费。
从原来的万1免5,下降到现在的万0.854 免5
对于量化交易Ptrade,QMT,交易费率也是一样,下调到万0.854 免五 !!! 简直良心证券呀,有木有!
目前国盛证券的QMT,miniQMT的开通门槛是入金50W, Ptrade的入金门槛也是50W,而且国盛的Ptrade是可以访问外部数据的。比如你的自己的mysql数据库,还有爬虫获取问财数据等等。 开ptrade的我一般推荐你们开通国盛证券的。 而其他 的湘财证券ptrade,是无法获取外部数据,外部网络的。
需要开通的可以扫码微信开通:
备注: 量化开户
非诚勿扰,欢迎其他券商合作!
查看全部
为贯彻落实7月24日中央政治局会议精神和国务院相关会议部署,进一步活跃资本市场,提振投资者信心,形成推动经济持续回升向好的工作合力,证监会指导上海证券交易所、深圳证券交易所、北京证券交易所自8月28日起进一步降低证券交易经手费。沪深交易所此次将A股、B股证券交易经手费从按成交金额的0.00487%双向收取下调为按成交金额的0.00341%双向收取,降幅达30%;北交所在2022年12月调降证券交易经手费50%的基础上,再次将证券交易经手费标准降低50%,由按成交金额的0.025%双边收取下调至按成交金额的0.0125%双边收取。同时,将引导证券公司稳妥做好与客户合同变更及相关交易参数的调整,依法降低经纪业务佣金费率,切实将此次证券交易经手费下降的政策效果传导至广大投资者
在今年8月的时候,交易所下调经手费,经手费是交易所收取的。 所以国盛证券响应国家号召,第一时间下调经手费。
从原来的万1免5,下降到现在的万0.854 免5
对于量化交易Ptrade,QMT,交易费率也是一样,下调到万0.854 免五 !!! 简直良心证券呀,有木有!
目前国盛证券的QMT,miniQMT的开通门槛是入金50W, Ptrade的入金门槛也是50W,而且国盛的Ptrade是可以访问外部数据的。比如你的自己的mysql数据库,还有爬虫获取问财数据等等。 开ptrade的我一般推荐你们开通国盛证券的。 而其他 的湘财证券ptrade,是无法获取外部数据,外部网络的。
需要开通的可以扫码微信开通:
备注: 量化开户
非诚勿扰,欢迎其他券商合作!
花了1小时用django快速写了个可转债实时系统
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 1593 次浏览 • 2022-09-07 08:08
用django快速搭了个页面给他
点击查看大图
数据是实时选出来的。当时帮他做的回测收益率也是很高,主要回撤控制得很好。
本来想用gin写,发现后台的dataframe还有这要找go下对应的库,避免计算出错,还是用会python吧(-。-)
公众号: 查看全部
从零开始 手撸一个回测框架 (以可转债双低,低溢价为例)
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 2414 次浏览 • 2022-09-01 18:39
Mysql 数据
下面是代码主框架,目前通过之前优矿的导出的csv数据 ,计算 各个因子。 通过不同权重评分,进行轮动。class DataFeed:
def __init__(self):
self.csv_path = CSV_PATH
self.position = {}
self.HighValue = 0
self.Start_Cash = 1000000 # 初始资金
self.MyCash = self.Start_Cash
self.Withdraw = 0
self.daily_netvalue =
self.current_day = 0
self.PosValue = 0
self.threshold = 0 # 阈值
self.HighValue = self.Start_Cash
self.date_list, self.source = self.feed()
self.day_count = 0
def unpossibile(self, df, date):
# 剔除当日涨停的转债,买不入
raise_limited_dict = {
'2022-04-08': ['127057', ],
'2022-07-27': ['127065', ],
'2022-07-28': ['127065', ],
}
target_list = raise_limited_dict.get(date, None)
if target_list is None:
return df
return df.drop(index=target_list, axis=1)
def feed(self):
df = pd.read_csv(self.csv_path,
encoding='utf8',
dtype={'tickerEqu': str, 'tickerBond': str, 'secID_x': str},
)
del df['Unnamed: 0']
df['tradeDate'] = pd.to_datetime(df['tradeDate'], format='%Y-%m-%d')
df = df.set_index('tradeDate')
date_set = set(df.index.tolist())
date_list = list(map(lambda x: x.strftime('%Y-%m-%d'), date_set))
date_list.sort()
return date_list, df
def filters(self, df, today):
# 过滤条件,可添加多个条件
df = self.unpossibile(df, today)
return df
def logprint(self, current):
log.info('当前日期{}'.format(current))
def run(self):
for current in self.date_list:
if current < START_DATE or current > END_DATE:
continue
if self.day_count % FREQ != 0:
self.get_daily_netvalue(current)
else:
self.handle_data(current)
self.day_count += 1
self.after_trade()
双低和低溢价选债轮动:
上面是主要框架代码, 根据数据来驱动交易。 可以根据不同的时间日期进行回测交易。不同持有个数,不同轮动功能天数。【完整代码可以常见 知识星球】
运行: python main.py
运行后会自动保存一个excel文件:
并且可以生成收益率曲线图:
完整代码与数据可以参考星球代码:
查看全部
Mysql 数据
下面是代码主框架,目前通过之前优矿的导出的csv数据 ,计算 各个因子。 通过不同权重评分,进行轮动。
class DataFeed:
def __init__(self):
self.csv_path = CSV_PATH
self.position = {}
self.HighValue = 0
self.Start_Cash = 1000000 # 初始资金
self.MyCash = self.Start_Cash
self.Withdraw = 0
self.daily_netvalue =
self.current_day = 0
self.PosValue = 0
self.threshold = 0 # 阈值
self.HighValue = self.Start_Cash
self.date_list, self.source = self.feed()
self.day_count = 0
def unpossibile(self, df, date):
# 剔除当日涨停的转债,买不入
raise_limited_dict = {
'2022-04-08': ['127057', ],
'2022-07-27': ['127065', ],
'2022-07-28': ['127065', ],
}
target_list = raise_limited_dict.get(date, None)
if target_list is None:
return df
return df.drop(index=target_list, axis=1)
def feed(self):
df = pd.read_csv(self.csv_path,
encoding='utf8',
dtype={'tickerEqu': str, 'tickerBond': str, 'secID_x': str},
)
del df['Unnamed: 0']
df['tradeDate'] = pd.to_datetime(df['tradeDate'], format='%Y-%m-%d')
df = df.set_index('tradeDate')
date_set = set(df.index.tolist())
date_list = list(map(lambda x: x.strftime('%Y-%m-%d'), date_set))
date_list.sort()
return date_list, df
def filters(self, df, today):
# 过滤条件,可添加多个条件
df = self.unpossibile(df, today)
return df
def logprint(self, current):
log.info('当前日期{}'.format(current))
def run(self):
for current in self.date_list:
if current < START_DATE or current > END_DATE:
continue
if self.day_count % FREQ != 0:
self.get_daily_netvalue(current)
else:
self.handle_data(current)
self.day_count += 1
self.after_trade()
双低和低溢价选债轮动:
上面是主要框架代码, 根据数据来驱动交易。 可以根据不同的时间日期进行回测交易。不同持有个数,不同轮动功能天数。【完整代码可以常见 知识星球】
运行: python main.py
运行后会自动保存一个excel文件:
并且可以生成收益率曲线图:
完整代码与数据可以参考星球代码:
python获取通达信可转债日线和分时数据
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 5484 次浏览 • 2022-08-28 10:41
除了优矿,还有哪些可以获取可转债日线,甚至分时tick数据呢?当然笔者压箱底里面还有很多可用数据源的。本文就简单介绍其中一个,下通达信数据源。
安装
使用pip安装第三方库pytdxpip install pytdx
分时数据
下面6行python代码, 就可以获取通达信的可转债分时数据。from pytdx.hq import TdxHq_API
api = TdxHq_API()
with api.connect('119.147.212.81', 7709):
data = api.get_security_bars(7, 0, '123045', 0, 240) # 123045 为转债代码 ,240 为获取 240个转债数据
df = api.to_df(data)
df=df.sort_values('datetime')
如果需要遍历当前最新可转债代码,需要结合前面的文章。【注意这代码会定期更新,因网站架构或者字段是不定时变动】
不过前面的接口只能读取800条数据,以一天240条数据计算,只能读取2天多的数据量,对于需要更多数据的朋友来说,肯定不够的。或者有一个办法,把上面代码写成定时任务,就可以每天收盘后自动存储对应的数据。
如果需要更多的历史数据,那么可以使用pytdx的另外一个功能,那就是使用python读取通达信本地数据文件。
先用通达信同步1分钟(或5分钟)数据到本地.
选择沪深京分钟线,当然,其他数据你也可以选择。勾选一分钟线数据或者5分钟线数据,还有日期。不过这里日期会有限制,只能下载100天的1分钟线,或者500天的5分钟线。所以如果长期需要这个数据,你可以每隔一段时间下载一次。
数据保存路径:通达信安装目录的 vipdoc 子目录比如我的通达信客户端安装在 c:\new_tdx 下,
即
c:\new_tdx\vipdoc\sz\lday\ 下是深圳的日k线数据
c:\new_tdx\vipdoc\sh\lday\ 下是上海的日k线数据
c:\new_tdx\vipdoc\sh\minline\ 下是上海的分钟线数据
c:\new_tdx\vipdoc\sz\minline\ 下是深圳的分钟线数据
如果你需要更久的历史数据,可以到网上找找,下载下来后按照下面代码读取即可。 from pytdx.reader import TdxMinBarReader
path='/home/xda/Downloads/sz128014.lc1'
reader = TdxMinBarReader()
df = reader.get_df(path)
#df.to_excel('tick.xlsx') # 导出为excel
得到dataframe对象后,接着可以保存为excel,数据库都很简单了。一条语句的事情。
可转债日线数据
当然,能够获取到分钟数据,对于日线数据更加不在话下了。日线数据并没有日期限制,想下多少有多少。api = TdxHq_API()
api = api.connect('119.147.212.81', 7709)
data=api.get_k_data('123045', '2020-05-01', '2022-08-26') # 123045 为可转债代码,可以替换任意代码
data.to_excel('k-line.xlsx')
如果想获取正股或者其他股票数据,只需要把代码替换成正股股票代码即可。
如果分钟数据还不满足,还可以使用更小粒度的tick数据。下回有空再继续介绍,敬请关注。
欢迎关注公众号 查看全部
除了优矿,还有哪些可以获取可转债日线,甚至分时tick数据呢?当然笔者压箱底里面还有很多可用数据源的。本文就简单介绍其中一个,下通达信数据源。
安装
使用pip安装第三方库pytdx
pip install pytdx
分时数据
下面6行python代码, 就可以获取通达信的可转债分时数据。
from pytdx.hq import TdxHq_API
api = TdxHq_API()
with api.connect('119.147.212.81', 7709):
data = api.get_security_bars(7, 0, '123045', 0, 240) # 123045 为转债代码 ,240 为获取 240个转债数据
df = api.to_df(data)
df=df.sort_values('datetime')
如果需要遍历当前最新可转债代码,需要结合前面的文章。【注意这代码会定期更新,因网站架构或者字段是不定时变动】
不过前面的接口只能读取800条数据,以一天240条数据计算,只能读取2天多的数据量,对于需要更多数据的朋友来说,肯定不够的。或者有一个办法,把上面代码写成定时任务,就可以每天收盘后自动存储对应的数据。
如果需要更多的历史数据,那么可以使用pytdx的另外一个功能,那就是使用python读取通达信本地数据文件。
先用通达信同步1分钟(或5分钟)数据到本地.
选择沪深京分钟线,当然,其他数据你也可以选择。勾选一分钟线数据或者5分钟线数据,还有日期。不过这里日期会有限制,只能下载100天的1分钟线,或者500天的5分钟线。所以如果长期需要这个数据,你可以每隔一段时间下载一次。
数据保存路径:通达信安装目录的 vipdoc 子目录
比如我的通达信客户端安装在 c:\new_tdx 下,
即
c:\new_tdx\vipdoc\sz\lday\ 下是深圳的日k线数据
c:\new_tdx\vipdoc\sh\lday\ 下是上海的日k线数据
c:\new_tdx\vipdoc\sh\minline\ 下是上海的分钟线数据
c:\new_tdx\vipdoc\sz\minline\ 下是深圳的分钟线数据
如果你需要更久的历史数据,可以到网上找找,下载下来后按照下面代码读取即可。
from pytdx.reader import TdxMinBarReader
path='/home/xda/Downloads/sz128014.lc1'
reader = TdxMinBarReader()
df = reader.get_df(path)
#df.to_excel('tick.xlsx') # 导出为excel
得到dataframe对象后,接着可以保存为excel,数据库都很简单了。一条语句的事情。
可转债日线数据
当然,能够获取到分钟数据,对于日线数据更加不在话下了。日线数据并没有日期限制,想下多少有多少。
api = TdxHq_API()
api = api.connect('119.147.212.81', 7709)
data=api.get_k_data('123045', '2020-05-01', '2022-08-26') # 123045 为可转债代码,可以替换任意代码
data.to_excel('k-line.xlsx')
如果想获取正股或者其他股票数据,只需要把代码替换成正股股票代码即可。
如果分钟数据还不满足,还可以使用更小粒度的tick数据。下回有空再继续介绍,敬请关注。
欢迎关注公众号
6行python代码 获取通达信的可转债分时数据
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 2591 次浏览 • 2022-08-27 14:33
api = TdxHq_API()
with api.connect('119.147.212.81', 7709):
data = api.get_security_bars(7, 0, '123045', 0, 240) # 123045 为转债代码 ,240 为获取 240个转债数据
df = api.to_df(data)
df=df.sort_values('datetime')
点击查看大图
如果需要遍历当前最新可转债代码(集思录),需要结合前面的文章。
公众号:
查看全部
优矿使用的python版本
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 1684 次浏览 • 2022-08-07 08:22
从底层来看它的报错信息:
它是使用python2.7
可是异常操作,却可以使用python3的语法
try:
....
except Exception as e:
.....
所以有些地方还是得要注意一下 py2和py3的区别
比如py2的字典默认顺序是无序的。(这个有一次调试一个bug耗费了一两个小时,结果发现用了字典,取key,结果发现key的顺序全部是乱的,py3从3.6开始字典的key是有序的)
查看全部
可转债多因子回测 优矿代码
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 2665 次浏览 • 2022-08-06 18:00
实际运用里面,可以加入很多很多因子,比如正股涨跌幅,正股波动率,转债到期时间,正股ROE等等多大几十个因子。
之前写了一个多因子回测的优矿python代码,用户可以自己修改参数,
比如下面的正股波动率因子,Bond_Volatility_ENABLE = True
Bond_Volatility_DAYS = 30
TOP_RIPPLE = 50
Bond_Volatility_LOG_ENABLE = True # 波动率日志开关
Bond_Volatility_ENABLE = True 设为True,就是回测过程加入这个因子,设为False就忽略这个因子。
下面的
Bond_Volatility_DAYS 为N天内的正股波动率,一般设置30天,20天内就够了,因为一年之前的即使波动很大,那对当前转债的影响也很小。
TOP_RIPPLE 选择波动率最大的前面N只转债
举个例子,下面转债是根据其对应正股的30天里的波动率选出来的。(当前是8月5日,也就是7月5日到8月5日之间的数据)。
计算波动率具体代码如下;
每个因子写成一个类。
这样可以不用修改主代码,就可以无限地添加,修改因子。# 基类
class ConditionFilter:
def filters(self, *args, **kwargs):
if self.enable:
return self.fun(*args, **kwargs)
else:
return True
def fun(self, *args, **kwargs):
# 继承的实现这个函数
raise NotImplemented
上面是部分过滤因子,也就是不满足的都会被移除。 比如规模大于10亿的会移除。
然后得到的结果,进行因子评分。 # 权重 溢价率、转债价格、正股N天涨幅,正股ROE
weights = {'溢价率': 0, '转债价格': 1, '正股N天涨幅': 0, '正股ROE': 0, '规模': 0}
每个权重赋予一个权重分最高是1,最低是0,如果你想回测 低溢价率 策略,只需要把其他因子的权重全部设置为0,溢价率设置为1即可。双底的话就是 溢价率和价格各为0.5 就可以了。
设置好参数后,设置你要回测的时间,持仓周期,持有个数等可调参数。
稍等片刻就会有结果了。因子越多,运行时间会增加。一般几分钟就可以得到几年来的回测结果。
中途可以查看日志
完整代码以及运行流程可到知识星球咨询了解。
欢迎关注公众号 查看全部
实际运用里面,可以加入很多很多因子,比如正股涨跌幅,正股波动率,转债到期时间,正股ROE等等多大几十个因子。
之前写了一个多因子回测的优矿python代码,用户可以自己修改参数,
比如下面的正股波动率因子,
Bond_Volatility_ENABLE = True
Bond_Volatility_DAYS = 30
TOP_RIPPLE = 50
Bond_Volatility_LOG_ENABLE = True # 波动率日志开关
Bond_Volatility_ENABLE = True 设为True,就是回测过程加入这个因子,设为False就忽略这个因子。
下面的
Bond_Volatility_DAYS 为N天内的正股波动率,一般设置30天,20天内就够了,因为一年之前的即使波动很大,那对当前转债的影响也很小。
TOP_RIPPLE 选择波动率最大的前面N只转债
举个例子,下面转债是根据其对应正股的30天里的波动率选出来的。(当前是8月5日,也就是7月5日到8月5日之间的数据)。
计算波动率具体代码如下;
每个因子写成一个类。
这样可以不用修改主代码,就可以无限地添加,修改因子。
# 基类
class ConditionFilter:
def filters(self, *args, **kwargs):
if self.enable:
return self.fun(*args, **kwargs)
else:
return True
def fun(self, *args, **kwargs):
# 继承的实现这个函数
raise NotImplemented
上面是部分过滤因子,也就是不满足的都会被移除。 比如规模大于10亿的会移除。
然后得到的结果,进行因子评分。
# 权重 溢价率、转债价格、正股N天涨幅,正股ROE
weights = {'溢价率': 0, '转债价格': 1, '正股N天涨幅': 0, '正股ROE': 0, '规模': 0}
每个权重赋予一个权重分最高是1,最低是0,如果你想回测 低溢价率 策略,只需要把其他因子的权重全部设置为0,溢价率设置为1即可。双底的话就是 溢价率和价格各为0.5 就可以了。
设置好参数后,设置你要回测的时间,持仓周期,持有个数等可调参数。
稍等片刻就会有结果了。因子越多,运行时间会增加。一般几分钟就可以得到几年来的回测结果。
中途可以查看日志
完整代码以及运行流程可到知识星球咨询了解。
欢迎关注公众号
qmt获取可转债历史tick行情数据
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 3456 次浏览 • 2022-07-20 19:18
当然拿到数据后,它的tick数据是参差不齐的,虽然是L1的数据,当时有些时间间隔大于3s,而有些却可以小于3s。
所以可以对这些数据进行时间的重采样处理。 比如全部变为1s,或者变为3s,变为1分钟就没必要了。 因为获取行情本身就自带1m的数据参数。
result = df.resample('3S',).first().ffill()
dataframe重采样采用3秒的代码入行,而且要向前补全,因为某些时刻没有交易的话,它的价格还是上一档的价格。
最后处理的数据如上图所示。
查看全部
一创聚宽的实盘只支持每日开盘价和分钟交易
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 1 个评论 • 3088 次浏览 • 2022-07-11 14:26
1.交易佣金是多少?
A股万分之二点五,最低五元手续费;
货币类ETF买卖和申赎均无费用;
场内基金只能买卖不能申赎,交易费用根据客户交易佣金来定,有最低5元限制;
具体情况请联系一创咨询;
2.平台支持的交易频率是多少?
支持「每分」和「每天」两个交易频率
3.平台支持的交易品种有哪些?
目前支持A股、场内基金。
4.可以同时跑几个实盘策略?
目前每个用户可以运行1个实盘策略,需要更多权限请联系自己的客户经理申请。
5.其他问题如何咨询?
查看常见问题及实盘说明文档
点击聚宽官网的在线客服免费咨询
6.请问实盘支持哪些系统
请您使用win7、8、9、10系统和mac系统进行实盘账户的绑定操作。目前暂时不支持win xp等系统和虚拟机。
不支持虚拟机和xp系统,费率万2.5(这个实在要吐槽一下,太太太贵)
只支持股票和场内基金,不支持可转债。
只能跑一个策略。(额。。。无力吐槽)
执行周期最低的是分钟级别,没有秒级别。
其他量化平台实盘案例,可以参考本站其他文章。
查看全部
1.交易佣金是多少?
A股万分之二点五,最低五元手续费;
货币类ETF买卖和申赎均无费用;
场内基金只能买卖不能申赎,交易费用根据客户交易佣金来定,有最低5元限制;
具体情况请联系一创咨询;
2.平台支持的交易频率是多少?
支持「每分」和「每天」两个交易频率
3.平台支持的交易品种有哪些?
目前支持A股、场内基金。
4.可以同时跑几个实盘策略?
目前每个用户可以运行1个实盘策略,需要更多权限请联系自己的客户经理申请。
5.其他问题如何咨询?
查看常见问题及实盘说明文档
点击聚宽官网的在线客服免费咨询
6.请问实盘支持哪些系统
请您使用win7、8、9、10系统和mac系统进行实盘账户的绑定操作。目前暂时不支持win xp等系统和虚拟机。
不支持虚拟机和xp系统,费率万2.5(这个实在要吐槽一下,太太太贵)
只支持股票和场内基金,不支持可转债。
只能跑一个策略。(额。。。无力吐槽)
执行周期最低的是分钟级别,没有秒级别。
其他量化平台实盘案例,可以参考本站其他文章。
小市值轮动-量化交易-程序化交易-Ptrade实盘
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2215 次浏览 • 2023-10-07 14:14
当前策略持有30只。
点击查看大图
点击查看大图
基于股票的策略不敢多买,属于试验阶段,后期仍然会不断根据市场调仓; 主仓依然在可转债。
公众号:可转债量化分析
如果需要策略代写,(ptrade、qmt,其他量化平台)
可以公众号后台回复:
策略代写
查看全部
Ptrade|QMT|银行股息率轮动 实盘自动化交易
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 1156 次浏览 • 2024-03-05 09:33
华泰matic能在虚拟机运行吗?
量化交易 • 李魔佛 发表了文章 • 0 个评论 • 1065 次浏览 • 2024-01-05 09:36
但matic却可以在hyper X虚拟机上运行。笔者在win11家庭版的hyper x测试过的。
小市值轮动-量化交易-程序化交易-Ptrade实盘
Ptrade • 李魔佛 发表了文章 • 0 个评论 • 2215 次浏览 • 2023-10-07 14:14
当前策略持有30只。
点击查看大图
点击查看大图
基于股票的策略不敢多买,属于试验阶段,后期仍然会不断根据市场调仓; 主仓依然在可转债。
公众号:可转债量化分析
如果需要策略代写,(ptrade、qmt,其他量化平台)
可以公众号后台回复:
策略代写
查看全部
万0.854 免5 量化开户|QMT|Ptrade|掘金量化|国盛证券
券商万一免五 • 李魔佛 发表了文章 • 0 个评论 • 2758 次浏览 • 2023-09-01 22:25
为贯彻落实7月24日中央政治局会议精神和国务院相关会议部署,进一步活跃资本市场,提振投资者信心,形成推动经济持续回升向好的工作合力,证监会指导上海证券交易所、深圳证券交易所、北京证券交易所自8月28日起进一步降低证券交易经手费。沪深交易所此次将A股、B股证券交易经手费从按成交金额的0.00487%双向收取下调为按成交金额的0.00341%双向收取,降幅达30%;北交所在2022年12月调降证券交易经手费50%的基础上,再次将证券交易经手费标准降低50%,由按成交金额的0.025%双边收取下调至按成交金额的0.0125%双边收取。同时,将引导证券公司稳妥做好与客户合同变更及相关交易参数的调整,依法降低经纪业务佣金费率,切实将此次证券交易经手费下降的政策效果传导至广大投资者
在今年8月的时候,交易所下调经手费,经手费是交易所收取的。 所以国盛证券响应国家号召,第一时间下调经手费。
从原来的万1免5,下降到现在的万0.854 免5
对于量化交易Ptrade,QMT,交易费率也是一样,下调到万0.854 免五 !!! 简直良心证券呀,有木有!
目前国盛证券的QMT,miniQMT的开通门槛是入金50W, Ptrade的入金门槛也是50W,而且国盛的Ptrade是可以访问外部数据的。比如你的自己的mysql数据库,还有爬虫获取问财数据等等。 开ptrade的我一般推荐你们开通国盛证券的。 而其他 的湘财证券ptrade,是无法获取外部数据,外部网络的。
需要开通的可以扫码微信开通:
备注: 量化开户
非诚勿扰,欢迎其他券商合作!
查看全部
为贯彻落实7月24日中央政治局会议精神和国务院相关会议部署,进一步活跃资本市场,提振投资者信心,形成推动经济持续回升向好的工作合力,证监会指导上海证券交易所、深圳证券交易所、北京证券交易所自8月28日起进一步降低证券交易经手费。沪深交易所此次将A股、B股证券交易经手费从按成交金额的0.00487%双向收取下调为按成交金额的0.00341%双向收取,降幅达30%;北交所在2022年12月调降证券交易经手费50%的基础上,再次将证券交易经手费标准降低50%,由按成交金额的0.025%双边收取下调至按成交金额的0.0125%双边收取。同时,将引导证券公司稳妥做好与客户合同变更及相关交易参数的调整,依法降低经纪业务佣金费率,切实将此次证券交易经手费下降的政策效果传导至广大投资者
在今年8月的时候,交易所下调经手费,经手费是交易所收取的。 所以国盛证券响应国家号召,第一时间下调经手费。
从原来的万1免5,下降到现在的万0.854 免5
对于量化交易Ptrade,QMT,交易费率也是一样,下调到万0.854 免五 !!! 简直良心证券呀,有木有!
目前国盛证券的QMT,miniQMT的开通门槛是入金50W, Ptrade的入金门槛也是50W,而且国盛的Ptrade是可以访问外部数据的。比如你的自己的mysql数据库,还有爬虫获取问财数据等等。 开ptrade的我一般推荐你们开通国盛证券的。 而其他 的湘财证券ptrade,是无法获取外部数据,外部网络的。
需要开通的可以扫码微信开通:
备注: 量化开户
非诚勿扰,欢迎其他券商合作!
花了1小时用django快速写了个可转债实时系统
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 1593 次浏览 • 2022-09-07 08:08
用django快速搭了个页面给他
点击查看大图
数据是实时选出来的。当时帮他做的回测收益率也是很高,主要回撤控制得很好。
本来想用gin写,发现后台的dataframe还有这要找go下对应的库,避免计算出错,还是用会python吧(-。-)
公众号: 查看全部
从零开始 手撸一个回测框架 (以可转债双低,低溢价为例)
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 2414 次浏览 • 2022-09-01 18:39
Mysql 数据
下面是代码主框架,目前通过之前优矿的导出的csv数据 ,计算 各个因子。 通过不同权重评分,进行轮动。class DataFeed:
def __init__(self):
self.csv_path = CSV_PATH
self.position = {}
self.HighValue = 0
self.Start_Cash = 1000000 # 初始资金
self.MyCash = self.Start_Cash
self.Withdraw = 0
self.daily_netvalue =
self.current_day = 0
self.PosValue = 0
self.threshold = 0 # 阈值
self.HighValue = self.Start_Cash
self.date_list, self.source = self.feed()
self.day_count = 0
def unpossibile(self, df, date):
# 剔除当日涨停的转债,买不入
raise_limited_dict = {
'2022-04-08': ['127057', ],
'2022-07-27': ['127065', ],
'2022-07-28': ['127065', ],
}
target_list = raise_limited_dict.get(date, None)
if target_list is None:
return df
return df.drop(index=target_list, axis=1)
def feed(self):
df = pd.read_csv(self.csv_path,
encoding='utf8',
dtype={'tickerEqu': str, 'tickerBond': str, 'secID_x': str},
)
del df['Unnamed: 0']
df['tradeDate'] = pd.to_datetime(df['tradeDate'], format='%Y-%m-%d')
df = df.set_index('tradeDate')
date_set = set(df.index.tolist())
date_list = list(map(lambda x: x.strftime('%Y-%m-%d'), date_set))
date_list.sort()
return date_list, df
def filters(self, df, today):
# 过滤条件,可添加多个条件
df = self.unpossibile(df, today)
return df
def logprint(self, current):
log.info('当前日期{}'.format(current))
def run(self):
for current in self.date_list:
if current < START_DATE or current > END_DATE:
continue
if self.day_count % FREQ != 0:
self.get_daily_netvalue(current)
else:
self.handle_data(current)
self.day_count += 1
self.after_trade()
双低和低溢价选债轮动:
上面是主要框架代码, 根据数据来驱动交易。 可以根据不同的时间日期进行回测交易。不同持有个数,不同轮动功能天数。【完整代码可以常见 知识星球】
运行: python main.py
运行后会自动保存一个excel文件:
并且可以生成收益率曲线图:
完整代码与数据可以参考星球代码:
查看全部
Mysql 数据
下面是代码主框架,目前通过之前优矿的导出的csv数据 ,计算 各个因子。 通过不同权重评分,进行轮动。
class DataFeed:
def __init__(self):
self.csv_path = CSV_PATH
self.position = {}
self.HighValue = 0
self.Start_Cash = 1000000 # 初始资金
self.MyCash = self.Start_Cash
self.Withdraw = 0
self.daily_netvalue =
self.current_day = 0
self.PosValue = 0
self.threshold = 0 # 阈值
self.HighValue = self.Start_Cash
self.date_list, self.source = self.feed()
self.day_count = 0
def unpossibile(self, df, date):
# 剔除当日涨停的转债,买不入
raise_limited_dict = {
'2022-04-08': ['127057', ],
'2022-07-27': ['127065', ],
'2022-07-28': ['127065', ],
}
target_list = raise_limited_dict.get(date, None)
if target_list is None:
return df
return df.drop(index=target_list, axis=1)
def feed(self):
df = pd.read_csv(self.csv_path,
encoding='utf8',
dtype={'tickerEqu': str, 'tickerBond': str, 'secID_x': str},
)
del df['Unnamed: 0']
df['tradeDate'] = pd.to_datetime(df['tradeDate'], format='%Y-%m-%d')
df = df.set_index('tradeDate')
date_set = set(df.index.tolist())
date_list = list(map(lambda x: x.strftime('%Y-%m-%d'), date_set))
date_list.sort()
return date_list, df
def filters(self, df, today):
# 过滤条件,可添加多个条件
df = self.unpossibile(df, today)
return df
def logprint(self, current):
log.info('当前日期{}'.format(current))
def run(self):
for current in self.date_list:
if current < START_DATE or current > END_DATE:
continue
if self.day_count % FREQ != 0:
self.get_daily_netvalue(current)
else:
self.handle_data(current)
self.day_count += 1
self.after_trade()
双低和低溢价选债轮动:
上面是主要框架代码, 根据数据来驱动交易。 可以根据不同的时间日期进行回测交易。不同持有个数,不同轮动功能天数。【完整代码可以常见 知识星球】
运行: python main.py
运行后会自动保存一个excel文件:
并且可以生成收益率曲线图:
完整代码与数据可以参考星球代码:
python获取通达信可转债日线和分时数据
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 5484 次浏览 • 2022-08-28 10:41
除了优矿,还有哪些可以获取可转债日线,甚至分时tick数据呢?当然笔者压箱底里面还有很多可用数据源的。本文就简单介绍其中一个,下通达信数据源。
安装
使用pip安装第三方库pytdxpip install pytdx
分时数据
下面6行python代码, 就可以获取通达信的可转债分时数据。from pytdx.hq import TdxHq_API
api = TdxHq_API()
with api.connect('119.147.212.81', 7709):
data = api.get_security_bars(7, 0, '123045', 0, 240) # 123045 为转债代码 ,240 为获取 240个转债数据
df = api.to_df(data)
df=df.sort_values('datetime')
如果需要遍历当前最新可转债代码,需要结合前面的文章。【注意这代码会定期更新,因网站架构或者字段是不定时变动】
不过前面的接口只能读取800条数据,以一天240条数据计算,只能读取2天多的数据量,对于需要更多数据的朋友来说,肯定不够的。或者有一个办法,把上面代码写成定时任务,就可以每天收盘后自动存储对应的数据。
如果需要更多的历史数据,那么可以使用pytdx的另外一个功能,那就是使用python读取通达信本地数据文件。
先用通达信同步1分钟(或5分钟)数据到本地.
选择沪深京分钟线,当然,其他数据你也可以选择。勾选一分钟线数据或者5分钟线数据,还有日期。不过这里日期会有限制,只能下载100天的1分钟线,或者500天的5分钟线。所以如果长期需要这个数据,你可以每隔一段时间下载一次。
数据保存路径:通达信安装目录的 vipdoc 子目录比如我的通达信客户端安装在 c:\new_tdx 下,
即
c:\new_tdx\vipdoc\sz\lday\ 下是深圳的日k线数据
c:\new_tdx\vipdoc\sh\lday\ 下是上海的日k线数据
c:\new_tdx\vipdoc\sh\minline\ 下是上海的分钟线数据
c:\new_tdx\vipdoc\sz\minline\ 下是深圳的分钟线数据
如果你需要更久的历史数据,可以到网上找找,下载下来后按照下面代码读取即可。 from pytdx.reader import TdxMinBarReader
path='/home/xda/Downloads/sz128014.lc1'
reader = TdxMinBarReader()
df = reader.get_df(path)
#df.to_excel('tick.xlsx') # 导出为excel
得到dataframe对象后,接着可以保存为excel,数据库都很简单了。一条语句的事情。
可转债日线数据
当然,能够获取到分钟数据,对于日线数据更加不在话下了。日线数据并没有日期限制,想下多少有多少。api = TdxHq_API()
api = api.connect('119.147.212.81', 7709)
data=api.get_k_data('123045', '2020-05-01', '2022-08-26') # 123045 为可转债代码,可以替换任意代码
data.to_excel('k-line.xlsx')
如果想获取正股或者其他股票数据,只需要把代码替换成正股股票代码即可。
如果分钟数据还不满足,还可以使用更小粒度的tick数据。下回有空再继续介绍,敬请关注。
欢迎关注公众号 查看全部
除了优矿,还有哪些可以获取可转债日线,甚至分时tick数据呢?当然笔者压箱底里面还有很多可用数据源的。本文就简单介绍其中一个,下通达信数据源。
安装
使用pip安装第三方库pytdx
pip install pytdx
分时数据
下面6行python代码, 就可以获取通达信的可转债分时数据。
from pytdx.hq import TdxHq_API
api = TdxHq_API()
with api.connect('119.147.212.81', 7709):
data = api.get_security_bars(7, 0, '123045', 0, 240) # 123045 为转债代码 ,240 为获取 240个转债数据
df = api.to_df(data)
df=df.sort_values('datetime')
如果需要遍历当前最新可转债代码,需要结合前面的文章。【注意这代码会定期更新,因网站架构或者字段是不定时变动】
不过前面的接口只能读取800条数据,以一天240条数据计算,只能读取2天多的数据量,对于需要更多数据的朋友来说,肯定不够的。或者有一个办法,把上面代码写成定时任务,就可以每天收盘后自动存储对应的数据。
如果需要更多的历史数据,那么可以使用pytdx的另外一个功能,那就是使用python读取通达信本地数据文件。
先用通达信同步1分钟(或5分钟)数据到本地.
选择沪深京分钟线,当然,其他数据你也可以选择。勾选一分钟线数据或者5分钟线数据,还有日期。不过这里日期会有限制,只能下载100天的1分钟线,或者500天的5分钟线。所以如果长期需要这个数据,你可以每隔一段时间下载一次。
数据保存路径:通达信安装目录的 vipdoc 子目录
比如我的通达信客户端安装在 c:\new_tdx 下,
即
c:\new_tdx\vipdoc\sz\lday\ 下是深圳的日k线数据
c:\new_tdx\vipdoc\sh\lday\ 下是上海的日k线数据
c:\new_tdx\vipdoc\sh\minline\ 下是上海的分钟线数据
c:\new_tdx\vipdoc\sz\minline\ 下是深圳的分钟线数据
如果你需要更久的历史数据,可以到网上找找,下载下来后按照下面代码读取即可。
from pytdx.reader import TdxMinBarReader
path='/home/xda/Downloads/sz128014.lc1'
reader = TdxMinBarReader()
df = reader.get_df(path)
#df.to_excel('tick.xlsx') # 导出为excel
得到dataframe对象后,接着可以保存为excel,数据库都很简单了。一条语句的事情。
可转债日线数据
当然,能够获取到分钟数据,对于日线数据更加不在话下了。日线数据并没有日期限制,想下多少有多少。
api = TdxHq_API()
api = api.connect('119.147.212.81', 7709)
data=api.get_k_data('123045', '2020-05-01', '2022-08-26') # 123045 为可转债代码,可以替换任意代码
data.to_excel('k-line.xlsx')
如果想获取正股或者其他股票数据,只需要把代码替换成正股股票代码即可。
如果分钟数据还不满足,还可以使用更小粒度的tick数据。下回有空再继续介绍,敬请关注。
欢迎关注公众号
6行python代码 获取通达信的可转债分时数据
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 2591 次浏览 • 2022-08-27 14:33
api = TdxHq_API()
with api.connect('119.147.212.81', 7709):
data = api.get_security_bars(7, 0, '123045', 0, 240) # 123045 为转债代码 ,240 为获取 240个转债数据
df = api.to_df(data)
df=df.sort_values('datetime')
点击查看大图
如果需要遍历当前最新可转债代码(集思录),需要结合前面的文章。
公众号:
查看全部
优矿使用的python版本
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 1684 次浏览 • 2022-08-07 08:22
从底层来看它的报错信息:
它是使用python2.7
可是异常操作,却可以使用python3的语法
try:
....
except Exception as e:
.....
所以有些地方还是得要注意一下 py2和py3的区别
比如py2的字典默认顺序是无序的。(这个有一次调试一个bug耗费了一两个小时,结果发现用了字典,取key,结果发现key的顺序全部是乱的,py3从3.6开始字典的key是有序的)
查看全部
可转债多因子回测 优矿代码
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 2665 次浏览 • 2022-08-06 18:00
实际运用里面,可以加入很多很多因子,比如正股涨跌幅,正股波动率,转债到期时间,正股ROE等等多大几十个因子。
之前写了一个多因子回测的优矿python代码,用户可以自己修改参数,
比如下面的正股波动率因子,Bond_Volatility_ENABLE = True
Bond_Volatility_DAYS = 30
TOP_RIPPLE = 50
Bond_Volatility_LOG_ENABLE = True # 波动率日志开关
Bond_Volatility_ENABLE = True 设为True,就是回测过程加入这个因子,设为False就忽略这个因子。
下面的
Bond_Volatility_DAYS 为N天内的正股波动率,一般设置30天,20天内就够了,因为一年之前的即使波动很大,那对当前转债的影响也很小。
TOP_RIPPLE 选择波动率最大的前面N只转债
举个例子,下面转债是根据其对应正股的30天里的波动率选出来的。(当前是8月5日,也就是7月5日到8月5日之间的数据)。
计算波动率具体代码如下;
每个因子写成一个类。
这样可以不用修改主代码,就可以无限地添加,修改因子。# 基类
class ConditionFilter:
def filters(self, *args, **kwargs):
if self.enable:
return self.fun(*args, **kwargs)
else:
return True
def fun(self, *args, **kwargs):
# 继承的实现这个函数
raise NotImplemented
上面是部分过滤因子,也就是不满足的都会被移除。 比如规模大于10亿的会移除。
然后得到的结果,进行因子评分。 # 权重 溢价率、转债价格、正股N天涨幅,正股ROE
weights = {'溢价率': 0, '转债价格': 1, '正股N天涨幅': 0, '正股ROE': 0, '规模': 0}
每个权重赋予一个权重分最高是1,最低是0,如果你想回测 低溢价率 策略,只需要把其他因子的权重全部设置为0,溢价率设置为1即可。双底的话就是 溢价率和价格各为0.5 就可以了。
设置好参数后,设置你要回测的时间,持仓周期,持有个数等可调参数。
稍等片刻就会有结果了。因子越多,运行时间会增加。一般几分钟就可以得到几年来的回测结果。
中途可以查看日志
完整代码以及运行流程可到知识星球咨询了解。
欢迎关注公众号 查看全部
实际运用里面,可以加入很多很多因子,比如正股涨跌幅,正股波动率,转债到期时间,正股ROE等等多大几十个因子。
之前写了一个多因子回测的优矿python代码,用户可以自己修改参数,
比如下面的正股波动率因子,
Bond_Volatility_ENABLE = True
Bond_Volatility_DAYS = 30
TOP_RIPPLE = 50
Bond_Volatility_LOG_ENABLE = True # 波动率日志开关
Bond_Volatility_ENABLE = True 设为True,就是回测过程加入这个因子,设为False就忽略这个因子。
下面的
Bond_Volatility_DAYS 为N天内的正股波动率,一般设置30天,20天内就够了,因为一年之前的即使波动很大,那对当前转债的影响也很小。
TOP_RIPPLE 选择波动率最大的前面N只转债
举个例子,下面转债是根据其对应正股的30天里的波动率选出来的。(当前是8月5日,也就是7月5日到8月5日之间的数据)。
计算波动率具体代码如下;
每个因子写成一个类。
这样可以不用修改主代码,就可以无限地添加,修改因子。
# 基类
class ConditionFilter:
def filters(self, *args, **kwargs):
if self.enable:
return self.fun(*args, **kwargs)
else:
return True
def fun(self, *args, **kwargs):
# 继承的实现这个函数
raise NotImplemented
上面是部分过滤因子,也就是不满足的都会被移除。 比如规模大于10亿的会移除。
然后得到的结果,进行因子评分。
# 权重 溢价率、转债价格、正股N天涨幅,正股ROE
weights = {'溢价率': 0, '转债价格': 1, '正股N天涨幅': 0, '正股ROE': 0, '规模': 0}
每个权重赋予一个权重分最高是1,最低是0,如果你想回测 低溢价率 策略,只需要把其他因子的权重全部设置为0,溢价率设置为1即可。双底的话就是 溢价率和价格各为0.5 就可以了。
设置好参数后,设置你要回测的时间,持仓周期,持有个数等可调参数。
稍等片刻就会有结果了。因子越多,运行时间会增加。一般几分钟就可以得到几年来的回测结果。
中途可以查看日志
完整代码以及运行流程可到知识星球咨询了解。
欢迎关注公众号
qmt获取可转债历史tick行情数据
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 0 个评论 • 3456 次浏览 • 2022-07-20 19:18
当然拿到数据后,它的tick数据是参差不齐的,虽然是L1的数据,当时有些时间间隔大于3s,而有些却可以小于3s。
所以可以对这些数据进行时间的重采样处理。 比如全部变为1s,或者变为3s,变为1分钟就没必要了。 因为获取行情本身就自带1m的数据参数。
result = df.resample('3S',).first().ffill()
dataframe重采样采用3秒的代码入行,而且要向前补全,因为某些时刻没有交易的话,它的价格还是上一档的价格。
最后处理的数据如上图所示。
查看全部
一创聚宽的实盘只支持每日开盘价和分钟交易
量化交易-Ptrade-QMT • 李魔佛 发表了文章 • 1 个评论 • 3088 次浏览 • 2022-07-11 14:26
1.交易佣金是多少?
A股万分之二点五,最低五元手续费;
货币类ETF买卖和申赎均无费用;
场内基金只能买卖不能申赎,交易费用根据客户交易佣金来定,有最低5元限制;
具体情况请联系一创咨询;
2.平台支持的交易频率是多少?
支持「每分」和「每天」两个交易频率
3.平台支持的交易品种有哪些?
目前支持A股、场内基金。
4.可以同时跑几个实盘策略?
目前每个用户可以运行1个实盘策略,需要更多权限请联系自己的客户经理申请。
5.其他问题如何咨询?
查看常见问题及实盘说明文档
点击聚宽官网的在线客服免费咨询
6.请问实盘支持哪些系统
请您使用win7、8、9、10系统和mac系统进行实盘账户的绑定操作。目前暂时不支持win xp等系统和虚拟机。
不支持虚拟机和xp系统,费率万2.5(这个实在要吐槽一下,太太太贵)
只支持股票和场内基金,不支持可转债。
只能跑一个策略。(额。。。无力吐槽)
执行周期最低的是分钟级别,没有秒级别。
其他量化平台实盘案例,可以参考本站其他文章。
查看全部
1.交易佣金是多少?
A股万分之二点五,最低五元手续费;
货币类ETF买卖和申赎均无费用;
场内基金只能买卖不能申赎,交易费用根据客户交易佣金来定,有最低5元限制;
具体情况请联系一创咨询;
2.平台支持的交易频率是多少?
支持「每分」和「每天」两个交易频率
3.平台支持的交易品种有哪些?
目前支持A股、场内基金。
4.可以同时跑几个实盘策略?
目前每个用户可以运行1个实盘策略,需要更多权限请联系自己的客户经理申请。
5.其他问题如何咨询?
查看常见问题及实盘说明文档
点击聚宽官网的在线客服免费咨询
6.请问实盘支持哪些系统
请您使用win7、8、9、10系统和mac系统进行实盘账户的绑定操作。目前暂时不支持win xp等系统和虚拟机。
不支持虚拟机和xp系统,费率万2.5(这个实在要吐槽一下,太太太贵)
只支持股票和场内基金,不支持可转债。
只能跑一个策略。(额。。。无力吐槽)
执行周期最低的是分钟级别,没有秒级别。
其他量化平台实盘案例,可以参考本站其他文章。