量化回测系统 股票回测系统 极简回测 策略开发

首先感谢大家对simeasure极简回测的支持,以及提供的意见,对第一版本的simeasure做了调整更新。

新版本simeasure2.0下载地址:

量化回测系统股票回测系统极简回测-金融文档类资源-CSDN文库

或者

链接:https://pan.baidu.com/s/15zQLfD-dq8mT2T3AhNSikQ 
提取码:fxe1

对于期货的回测提供了其他方案:

python如何快速验证量化策略,简单模拟回测,用python写一个简单的交易记录实例_专注金融量化投资交易-CSDN博客https://blog.csdn.net/qq_24250441/article/details/104946119 期货和股票有比较大的区别,且期货的各种场景比较多,上面的方案对核心部分做了实例化可自行拓展更多可能性。

关于新版simeasure2.0使用实例不变

极简模拟回测
@Leo
QQ:470770753


版本更新:
2021-12-14
1、放弃对期货的支持,目前仅支持对股票的模拟回测。
2、将文件直接拷贝至程序的根目录直接通过import simeasure导入模块,通过创建实例使用,并通过实例引用成员实现相关的功能。
3、单个交易实例仅支持单个交易标的,如果涉及多个交易标的需建立多个交易实例。
4、每传入一个数据清算一次系统模块内部数据。


重要两个函数创建实例以及传递数据进行运算:
创建实例函数:simeasure.new_settle_account(),初始资金默认为1000000.
数据驱动函数:datain(data),不调用该函数会报错,没有数据进行运算。


函数(功能)说明:
#设置初始资金
set_assets(assets),参数assets为需要设定的初始资金。

#设置交易费
set_transaction_fee(fee),参数fee为需要设定的交易手续费,默认是2/10000.

#实时清算函数
datain(data),参数data每传入一个数据‘data’驱动一次系统计算,没有‘data’驱动不会运算。

#订单函数
order(price=0,direction="",amount=0,type=""),参数price=0下单价格,direction=""下单方向股票一般只有‘BUY’和‘SELL’两个方向,
成功后返回1,否则报错。

#调整可用资金
change_assets(change),参数change为需要调整的资金,当change值为正数时表示转入资金,当change值为负数时表示转出资金。

#获得总资产,无参数。
get_tal_assets()

#获得可用资金,无参数。
get_avl_assets()

#查询交易手续费,无参数。
get_fee()

#查询浮动收益,无参数。
get_float_profit()

#查询仓位,无参数。
get_position()

#查询持仓成本,无参数。
get_cost()

#帮助函数,无参数。
help(),查询系统函数及说明。
      
import simeasure

# 假设closedatalist为某个股票的收盘价
closedatalist = [9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.2, 10.4, 10.3, 10.5, 10.6, 10.7]

mymeasure = simeasure.new_simeasure()  # 默认初始资金是1000000.
# 设置初始资金为100000
mymeasure.set_assets(100000)

# 回放数据
for closedata in closedatalist:
    # 调用datain()函数驱动系统
    mymeasure.datain(closedata)  # 每传入一个数据‘closedata’进行一次运算。
    # 当价格大于10小于10.5且仓位为0时买入100股
    if 10<closedata <10.5 and mymeasure.get_position()==0:
        mymeasure.order(price=closedata, direction="BUY", amount=100)
    #输出仓位、交易费、成本、浮动收益
    print("p:",mymeasure.get_position(),"F:",mymeasure.get_fee(),"C:",mymeasure.get_cost(),"FP:",mymeasure.get_float_profit())

    #当价格大于10.5时卖出所有持仓
    if closedata>10.5 and mymeasure.get_position()>0:
        mymeasure.order(price=closedata,direction="SELL",amount=mymeasure.get_position())
        #输出最终资产
        print("tal_assets:",mymeasure.get_tal_assets())

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值