最简单的方法是编写策略,从txt中读取数据python 回测平台,将其放入策略中,并最终获得收益. 该程序是一个回测平台. 有些已经有了,但这是回测平台的原型.
当最终统计结果不仅需要收入时,还需要对诸如交易次数,未平仓和空头头寸的数目,盈亏比,平均利润,平均亏损,夏普比率python 回测平台,等等,最终结果还需要添加可视控件. 当您需要添加某些内容时.
现在,从读取数据到运行策略并获得最终结果是可以的,但是在逐个编写一个策略之后,发现这些策略之间有许多共同之处,例如设置时间窗口,寻求MA,寻求RSI等,每次您需要复制和粘贴此部分代码,这会导致代码的冗余,因此可以提取这些常用模块,其中最常用的模块是技术(只是临时名称) ),下次编写策略时,可以直接使用它.
接下来,下一个问题,我读取的数据不是txt,而是csv或中的数据,因此您需要为数据指定一个规范,类似于:
FutureData{
0 string marketDM # 市场代码
1 string instrumentID # 合约代码
2 string date # 时间 exg:2017-8-1 11:30:00
3 double Open
4 double High
5 double Low
6 double Close
7 double volume
8 double buyprice
9 double sellprice
}
尽管每个文件或中的数据类型不同,但是应包括用于回测的基本信息,因此每个这样的数据单元都可以用作名为Bar的包,此Bar的对象具有上述属性
对数据进行回测时的另一个重要问题是必须考虑模型的健壮性. 可以通过设置打滑,增加处理费等控制措施来衡量所谓的坚固性. 因此,还需要将此类风险作为处理费用和延误的一揽子计划.
然后类似地,制作一揽子头寸,包括持有多头或空头头寸的统计信息,头寸价格等.
最后,对策略策略进行另一种抽象,设置策略的父类,通用模块的每个策略代码部分(例如开仓和平仓,配置初始化等). 设置父类方法,从而实现通过让子类继承.
一方面易于理解为什么不使用现有框架就构建回测平台的原因,另一方面,您可以让自己保持自己的立场,还需要设计由自己决定的模块和功能,因此是一个至关重要的问题,在编写代码之前必须了解要求,并且保留一些重要的接口供以后程序扩展.
稍后考虑细节,然后再写.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-268868-1.html