VeighNa量化社区
你的开源社区量化交易平台
libiya2000's Avatar
Member
离线
5 帖子
声望: 2

libiya2000 wrote:

青青子荆 wrote:

libiya2000 wrote:

shunyuzhiqian wrote:

description

hi 我也遇到相同的问题了,请问你是如何处理这块,而解决的?
请参考一下13楼

也是不好用,我在windows下完全可以用,可是换到Ubuntu20.04 就不好用了。
在def record_tick(self, tick: TickData):里面加打印函数也没反应。
后来通过main_engine.add_engine(WholeMarketRecorder)的方式让def record_tick(self, tick: TickData):里面有了打印。
但是实际上仍然没有在sql里写入数据。
而且全程连个报错也没有出现。

========================================================
问题找到了,在我的版本上面
def save_tick_data(self, ticks: List[TickData]) -> bool:
""""""

    # Convert bar object to dict and adjust timezone
    data = []

    for tick in ticks:
        tick.datetime = convert_tz(tick.datetime)

        d = tick.__dict__
        d["exchange"] = d["exchange"].value
        d.pop("gateway_name")
        d.pop("vt_symbol")
        data.append(d)

    # Upsert data into database
    with self.db.atomic():
        for c in chunked(data, 50):
            DbTickData.insert_many(c).on_conflict_replace().execute()

旧版本这个函数有问题,多了个 d["interval"] = d["interval"].value
新版本已经没有这个问题了。

青青子荆 wrote:

libiya2000 wrote:

shunyuzhiqian wrote:

description

hi 我也遇到相同的问题了,请问你是如何处理这块,而解决的?
请参考一下13楼

也是不好用,我在windows下完全可以用,可是换到Ubuntu20.04 就不好用了。
在def record_tick(self, tick: TickData):里面加打印函数也没反应。
后来通过main_engine.add_engine(WholeMarketRecorder)的方式让def record_tick(self, tick: TickData):里面有了打印。
但是实际上仍然没有在sql里写入数据。
而且全程连个报错也没有出现。

shunyuzhiqian wrote:

description

hi 我也遇到相同的问题了,请问你是如何处理这块,而解决的?

自己找到问题点了, 需要把第三方库peewee.py文件里的 DATETIME='DATETIME', 修改位 DATETIME='DATETIME(3)', 如下:
FIELD = attrdict(
AUTO='INTEGER',
BIGAUTO='BIGINT',
BIGINT='BIGINT',
BLOB='BLOB',
BOOL='SMALLINT',
CHAR='CHAR',
DATE='DATE',
DATETIME='DATETIME(3)',
DECIMAL='DECIMAL',
DEFAULT='',
DOUBLE='REAL',
FLOAT='REAL',
INT='INTEGER',
SMALLINT='SMALLINT',
TEXT='TEXT',
TIME='TIME',
UUID='TEXT',
UUIDB='BLOB',
VARCHAR='VARCHAR')

我用楼主的代码加载tick数据到mysql的时候,500毫秒级的数据就存不到mysql, 就被忽略了,楼主的代码我用的没问题,但是感觉python 在处理mysql数据的datetime的时候,吧毫秒级别的处理没了。
mysql5.6 和 mysql8.0 我都试验过,都是这样的结果。

这块儿怎么改。有遇到过的吗?

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】