赌场也有打烊的时候 - 盘後回测

写好 tick 交易策略之後,需要回测一下当天的买卖进出点是否正确


ticks = api.ticks(
    contract=api.Contracts.Stocks["2330"], 
    date="2021-09-22"
)
ticks

格式内容为

Ticks(
    ts=[1583312400821000000, 1583312405836000000, 1583312410849000000, 1583312415864000000, 1583312420877000000], 
    close=[322.0, 321.5, 321.0, 321.0, 321.0],
    volume=[5098, 91, 126, 59, 90],
    bid_price=[321.5, 321.0, 321.0, 321.0, 321.0],
    bid_volume=[5, 100, 94, 78, 20],
    ask_price=[322.0, 321.5, 321.5, 321.5, 321.5],
    ask_volume=[646, 13, 31, 86, 199]
)

可以简单的转换成

ts=[1583312400821000000, 1583312405836000000, 1583312410849000000, 1583312415864000000, 1583312420877000000]
close=[322.0, 321.5, 321.0, 321.0, 321.0]
volume=[5098, 91, 126, 59, 90]
bid_price=[321.5, 321.0, 321.0, 321.0, 321.0]
bid_volume=[5, 100, 94, 78, 20]
ask_price=[322.0, 321.5, 321.5, 321.5, 321.5]
ask_volume=[646, 13, 31, 86, 199]
for i in range(len(close)):
    if bid_price[i] == close[i]:
        ticktype = 2
    elif ask_price[i] == close[i]:
        ticktype = 1

    VolSum = VolSum + volume[i]
    quote = {
        'AmountSum': [866407850.0],
        'Close': [close[i]],
        'Date': '2021/08/24',
        'TickType': [ticktype],
        'Time': datetime.utcfromtimestamp((int(ts[i])/1000000000)).strftime('%H:%M:%S'),
        'VolSum': [VolSum],
        'Volume': [volume[i]]
    }
    quote_callback(topic, quote)

如此这样就可以在没有开盘的时候执行策略测试了


<<:  08 | WordPress 分隔符号区块 Separator Block

>>:  D21: 工程师太师了: 第11话

Day 21 - [语料库模型] 09-回馈机制

聊天机器人虽有问答集可以回覆大部分常见问题,但难免会有疏漏。因此本研究亦设计回馈机制,若使用者发现机...

[Day 3] 前後端技能这麽多,要选哪个呢?

本来打算一篇写完的,结果居然要分成三篇 XD 前端工具挑选 前端的部分可以搭配框架来建立 比较有名的...

Ruby--Find the Difference

Find the Difference 题目连结:https://leetcode.com/pro...

从0开始!Python 数据分析(1)|环境安装

我使用Anaconda帮我们管理套件以及不同的开发环境,让程序码可以在特定套件下执行,还可以在不同环...

[Day 06 - CSS] Flexbox带你飞,实现多样化的网页布局

为什麽要学 Flexbox ?还没学习 Flexbox 的我们,想要让文字段落并排显示时,只能调整元...