国盛证券的Ptrade数据无论是回测还是实盘很有问题,前复权不正确,数据断崖

李魔佛 发表了文章 • 0 个评论 • 45 次浏览 • 2024-04-18 00:19 • 来自相关话题

连基本的历史数据都无法保证数据正确。
 
举个例子,比如 煤炭ETF 515220,





 
在4月12日进行的除权,1股变2股,因此,所以4月12日之后的价格会是原来的1/2,如果做前复权,那么前面的价格也都是要根据当前的价格做复权处理。
 
结果国盛的ptrade的历史数据,取的是前复权数据,前复权数据,(重点强调),在4月12日的的时候就出现了断崖。也就是没有做复权的处理。





 
测试代码很简单:
def initialize(context):
run_daily(context, event, '09:38')


def handle_data(context, data):
pass


def event(context):
his60 = get_history(60, '1d', ['close'], ['515220.SS'], fq='pre', include=False)
print(his60)运行时间改成任意的就行。
 
获取历史数据用
get_history,取过去60天的前复权的数据。 然后就是断崖的数据。 已经确定是国盛的ptrade数据问题。因为我用上面的代码,在东莞证券,国金证券,湘财证券的ptrade上运行,均能得到正确的数据。
 
然后更为搞笑的,这么一个问题,反馈了,没有回应。无语。
 
 
  查看全部
连基本的历史数据都无法保证数据正确。
 
举个例子,比如 煤炭ETF 515220,

20240418001102.png

 
在4月12日进行的除权,1股变2股,因此,所以4月12日之后的价格会是原来的1/2,如果做前复权,那么前面的价格也都是要根据当前的价格做复权处理。
 
结果国盛的ptrade的历史数据,取的是前复权数据,前复权数据,(重点强调),在4月12日的的时候就出现了断崖。也就是没有做复权的处理。

微信图片_20240418001026.png

 
测试代码很简单:
def initialize(context):
run_daily(context, event, '09:38')


def handle_data(context, data):
pass


def event(context):
his60 = get_history(60, '1d', ['close'], ['515220.SS'], fq='pre', include=False)
print(his60)
运行时间改成任意的就行。
 
获取历史数据用
get_history,取过去60天的前复权的数据。 然后就是断崖的数据。 已经确定是国盛的ptrade数据问题。因为我用上面的代码,在东莞证券,国金证券,湘财证券的ptrade上运行,均能得到正确的数据。
 
然后更为搞笑的,这么一个问题,反馈了,没有回应。无语。