每秒几十万上下 - 1分K 当冲策略是否有搞头 ?!

最近股市只有一个字

怕.jpg

https://ithelp.ithome.com.tw/upload/images/20211002/20028592HQtX1ZWUr2.png

今天研究了大多的回测策略,大多都是以日计算,想想可不可以用 1分K 回测看看,研究了一下如何将永丰API的 Kbar 传换成 backtrader 的 feeds,然後跑个简单回测看看效果如何

今天来测试9/1到9/30 台指期的1分K,发现1分K资料量用图呈现出来资料量也蛮惊人的


kbars = api.kbars(api.Contracts.Futures.TXF['TXF202110'], start="2021-09-01", end="2021-09-30")

df = pd.DataFrame({**kbars})
df.ts = pd.to_datetime(df.ts)
df

	Close	ts	Volume	Open	High	Low
0	17340.0	2021-09-01 00:27:00	1	17340.0	17340.0	17340.0
1	17325.0	2021-09-01 02:48:00	2	17326.0	17326.0	17325.0
2	17325.0	2021-09-01 02:54:00	4	17325.0	17325.0	17325.0
3	17321.0	2021-09-01 03:11:00	2	17322.0	17322.0	17321.0
4	17320.0	2021-09-01 03:23:00	1	17320.0	17320.0	17320.0
...	...	...	...	...	...	...
16399	16803.0	2021-09-30 23:56:00	119	16804.0	16805.0	16795.0
16400	16800.0	2021-09-30 23:57:00	138	16803.0	16808.0	16800.0
16401	16797.0	2021-09-30 23:58:00	94	16801.0	16802.0	16797.0
16402	16806.0	2021-09-30 23:59:00	120	16796.0	16807.0	16795.0
16403	16804.0	2021-10-01 00:00:00	94	16805.0	16809.0	16803.0
16404 rows × 6 columns


df.columns = ['close', 'datetime', 'volume', 'open', 'high', 'low' ] 
df.set_index('datetime', inplace=True)

class pandasDataFeed(bt.feeds.PandasData):
  params = (
      ('datetime', -1),
      ('high', 'high'),
      ('low', 'low'),
      ('open', 'open'),
      ('close', 'close'),
      ('volume', 'volume')
  )
data = pandasDataFeed(dataname=newdf)

# feed data
cerebro.adddata(data)
print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())
# add strategy
cerebro.addstrategy(SmaCross)

cerebro.broker.set_cash(1000000.0)
# run backtest
cerebro.run()


2021-09-01 08:50:00, BUY , Price: 17336.0
2021-09-01 08:50:00, BUY , Price: 17336.0
2021-09-01 08:54:00, SELL , Price: 17340.0
2021-09-01 08:54:00, SELL , Price: 17340.0
2021-09-01 09:18:00, SELL , Price: 17377.0
2021-09-01 09:18:00, SELL , Price: 17377.0
2021-09-01 09:26:00, SELL , Price: 17373.0
2021-09-01 09:26:00, SELL , Price: 17373.0
...


# plot diagram
cerebro.plot(height = 30, iplot = False)
plt.show()

结果呈现如下图,买卖讯号非常多,似乎有些许的获利,还要补上摩擦成本计算,明天来调整一下投入资金与策略微调吧
https://ithelp.ithome.com.tw/upload/images/20211002/20028592x76OcSIRQ1.png


<<:  【Day17-音讯】浅谈声音资料的基本分析方式——时间域与频率域

>>:  【D32】结尾

[NestJS 带你飞!] DAY15 - Dynamic Module

前面有介绍过 Module 的一些基本使用方式,然而有一项非常强大的功能没有被提及,就是 动态模组(...

学习Python纪录Day11 - 开启文字档案与写入资料

开启文字档案与写入资料 Python使用内建函式open()开启档案和close()关闭档案。 开启...

[DAY 16] 塩米糕

塩米糕 地点:台南市新营区民治路78-19号 时间:11:00~14:00    17:00~20:...

Google IP List 总表

说明在这份文件 https://support.google.com/a/answer/100263...

远距工作停看听:好处篇

前言 透过系列文章的铺陈,我们可以再跨一步来思考远距工作了,作为一种团队协作思维的转变,为生活与工作...