我要用python建造一个回测平台

简介: 我要用python建造一个回测平台

今天看了一下quantdigger,pyalgotrade的回测,瞬间陷入痛苦之中,对于不熟悉的人,估计需要花很长时间来学习。我决定自己建造一个回测系统,参考quantdigger,pyalgotrade的优点。这是写的一个简单的均线回测平台,但是效率太低,也没有考虑手续费等问题,还有很遥远的距离需要走。

# -*- coding: utf-8 -*-
"""
Created on Tue Aug 22 15:57:36 2017
@author: Administrator
"""
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
########################################获取数据
data=pd.read_csv('C:/Users/Administrator/Desktop/rb00030.csv',encoding='gbk')
data=data.iloc[::,:7]
data.columns=['time','oepn','high','low','close','amt','opi']
data.head()
########################################确定交易信号
data['ma5']=data['close'].rolling(5).mean()
data['ma20']=data['close'].rolling(20).mean()
for i in range(len(data)):
    if i>1:
        if data.ix[i-1,'ma5']>data.ix[i-1,'ma20'] and data.ix[i,'ma5']<=data.ix[i,'ma20']:
            data.ix[i,'sk']=-1
        if data.ix[i-1,'ma5']<data.ix[i-1,'ma20'] and data.ix[i,'ma5']>=data.ix[i,'ma20']:
            data.ix[i,'sk']=1
'''
for i in range(len(data)):
    if i>0:
       if data.ix[i-1,'sk']==-1 and data.ix[i,'sk']!=1:
           data.ix[i,'position']=-1
       if data.ix[i-1,'sk']==-1 and data.ix[i,'sk']==1:
           data.ix[i,'position']=1   
       if data.ix[i-1,'sk']==1 and data.ix[i,'sk']!=-1:
           data.ix[i,'position']=1
       if data.ix[i-1,'sk']==1 and data.ix[i,'sk']==-1:
           data.ix[i,'position']=-1
'''
data['position']=''
for i in range(len(data)):
    if i>0:
        if data.ix[i,'sk']==1:
           data.ix[i,'position']=1
        if data.ix[i,'sk']==-1:
           data.ix[i,'position']=-1  
        if data.ix[i,'sk']!=1 and data.ix[i,'sk']!=-1:
           data.ix[i,'position']=data.ix[i-1,'position']
for i in range(len(data)):
    if i>0:
        if data.ix[i-1,'position']==1:
            data.ix[i,'profit']=data.ix[i,'close']-data.ix[i-1,'close']
        if data.ix[i-1,'position']==-1:
            data.ix[i,'profit']=-data.ix[i,'close']+data.ix[i-1,'close']  
data.profit.cumsum().plot()
目录
相关文章
|
2月前
|
数据可视化 关系型数据库 MySQL
基于python大数据的的海洋气象数据可视化平台
针对海洋气象数据量大、维度多的挑战,设计基于ECharts的可视化平台,结合Python、Django与MySQL,实现数据高效展示与交互分析,提升科研与决策效率。
|
4月前
|
API 开发工具 开发者
【干货满满】电商平台API接口用python调用脚本
这是一个支持淘宝、京东、拼多多、亚马逊等主流电商平台的通用 API 调用 Python 脚本框架,适配 doubao 使用。脚本封装了签名验证、请求处理、异常捕获及限流控制等核心功能,提供统一接口调用方式,便于开发者快速集成与扩展。
|
5月前
|
缓存 监控 API
1688平台开放接口实战:如何通过API获取店铺所有商品数据(Python示列)
本文介绍如何通过1688开放平台API接口获取店铺所有商品,涵盖准备工作、接口调用及Python代码实现,适用于商品同步与数据监控场景。
|
9月前
|
机器学习/深度学习 数据采集 数据可视化
Python/Anaconda双方案加持!Jupyter Notebook全平台下载教程来袭
Jupyter Notebook 是一款交互式编程与数据科学分析工具,支持40多种编程语言,广泛应用于机器学习、数据清洗和学术研究。其核心优势包括实时执行代码片段、支持Markdown文档与LaTeX公式混排,并可导出HTML/PDF/幻灯片等格式。本文详细介绍了Jupyter Notebook的软件定位、特性、安装方案(Anaconda集成环境与原生Python+PIP安装)、首次运行配置及常见问题解决方案,帮助用户快速上手并高效使用该工具。
|
9月前
|
存储 监控 API
1688平台API接口实战:Python实现店铺全量商品数据抓取
本文介绍如何使用Python通过1688开放平台的API接口自动化抓取店铺所有商品数据。首先,开发者需在1688开放平台完成注册并获取App Key和App Secret,申请“商品信息查询”权限。接着,利用`alibaba.trade.product.search4trade`接口,构建请求参数、生成MD5签名,并通过分页机制获取全量商品数据。文中详细解析了响应结构、存储优化及常见问题处理方法,还提供了竞品监控、库存预警等应用场景示例和完整代码。
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
454 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
前端开发 数据可视化 API
Python实现智能家居设备的统一控制平台
【10月更文挑战第6天】 Python实现智能家居设备的统一控制平台
763 11
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
416 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
Python
炫酷!纯Python开发LOL英雄信息查询平台
炫酷!纯Python开发LOL英雄信息查询平台
145 2
|
机器学习/深度学习 前端开发 数据挖掘
基于Python Django的房价数据分析平台,包括大屏和后台数据管理,有线性、向量机、梯度提升树、bp神经网络等模型
本文介绍了一个基于Python Django框架开发的房价数据分析平台,该平台集成了多种机器学习模型,包括线性回归、SVM、GBDT和BP神经网络,用于房价预测和市场分析,同时提供了前端大屏展示和后台数据管理功能。
402 9

推荐镜像

更多