通过纯Python完成股票回测框架的搭建。 什么是回测框架? 无论是传统股票交易还是量化交易,无法避免的一个问题是我们需要检验自己的交易策略是否可行,而最简单的方式就是利用历史数据检验交易策略,而回测框架就是提供这样的一个平台让交易策略在历史数据中不断交易,最终生成最终结果,通过查看结果的策略收益,年化收益,最大回测等用以评估交易策略的可行性。 代码地址在最后。 本项目并不是一个已完善的项目, 还在不断的完善。 回测框架 回测框架应该至少包含两个部分, 回测类, 交易类. 回测类提供各种钩子函数,用于放置自己的交易逻辑,交易类用于模拟市场的交易平台,这个类提供买入,卖出的方法。 代码架构 以自
2022-11-23 21:22:50 154KB date python python函数
1
最近用python的正则表达式处理了一些文本数据,需要把结果写到文件里面,但是由于文件比较大,所以运行起来花费的时间很长。但是打开任务管理器发现CPU只占用了25%,上网找了一下原因发现是由于一个叫GIL的存在,使得Python在同一时间只能运行一个线程,所以只占用了一个CPU,由于我的电脑是4核的,所以CPU利用率就是25%了。 既然多线程没有什么用处,那就可以使用多进程来处理,毕竟多进程是可以不受GIL影响的。Python提供了一个multiprocessing的多进程库,但是多进程也有一些问题,比如,如果进程都需要写入同一个文件,那么就会出现多个进程争用资源的问题,如果不解决,那就会使文
2022-11-22 18:39:11 59KB python python函数 python多线程并发
1
本文实例讲述了Python使用time模块实现指定时间触发器。分享给大家供大家参考,具体如下: 其实很简单,指定某个时间让脚本处理一个事件,比如说一个get请求~ 任何语言都会有关于时间的各种方法,Python也不例外。 help(time)之后可以知道time有2种时间表示形式: 1、时间戳表示法,即以整型或浮点型表示的是一个以秒为单位的时间间隔。这个时间的基础值是从1970年的1月1号零点开始算起。 2、元组格式表示法,即一种python的数据结构表示。这个元组有9个整型内容。分别表示不同的时间含义。     year (four digits, e.g. 1998)     month
2022-11-22 16:48:14 75KB python python函数 python算法
1
除了在Matlab中使用PRTools工具箱中的svm算法,Python中一样可以使用支持向量机做分类。因为Python中的sklearn库也集成了SVM算法,本文的运行环境是Pycharm。 一、导入sklearn算法包   Scikit-Learn库已经实现了所有基本机器学习的算法,具体使用详见官方文档说明   skleran中集成了许多算法,其导入包的方式如下所示,   逻辑回归:from sklearn.linear_model import LogisticRegression        朴素贝叶斯:from sklearn.naive_bayes import Gaussian
2022-11-18 16:44:31 178KB matlab函数 python python函数
1
主要介绍了解决python调用自己文件函数/执行函数找不到包问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
2022-11-17 16:10:40 52KB python 文件函数 执行函数
1
下面通过代码给大家介绍python打包压缩指定目录下的指定类型文件,具体代码如下所示: import os import datetime import tarfile import fnmatch def find_spe_file(root, patterns=['*'], non_cludedir=[]): for root, dirnames, filenames in os.walk(root): for pattern in patterns: for filename in filenames: if fnmatch.fnmatch(fi
2022-11-12 09:40:20 43KB csv python python函数
1
本文实例讲述了Python简单实现的代理服务器端口映射功能。分享给大家供大家参考,具体如下: 一 代码 1、模拟服务端代码 import sys import socket import threading #回复消息,原样返回 def replyMessage(conn): while True: data = conn.recv(1024) conn.send(data) if data.decode().lower() == 'bye': break conn.close() def main(): sockScr = socket.so
2022-11-10 20:19:30 81KB data python python函数
1
C4.5算法使用信息增益率来代替ID3的信息增益进行特征的选择,克服了信息增益选择特征时偏向于特征值个数较多的不足。信息增益率的定义如下: # -*- coding: utf-8 -*- from numpy import * import math import copy import cPickle as pickle class C45DTree(object): def __init__(self): # 构造方法 self.tree = {} # 生成树 self.dataSet = [] # 数据集 self.labels = [] # 标签集 # 数据导入
2022-11-10 10:16:14 85KB python python函数 python算法
1
Python基础知识详解 从入门到精通 全集索引篇 为方便查看需要的文章,本人将在这里存放我学习python过程中整理的博客的链接 目前仍在更新中 基础 Python基础知识详解 从入门到精通(一)介绍 Python基础知识详解 从入门到精通(二)基础 Python基础知识详解 从入门到精通(三)语法与函数 Python基础知识详解 从入门到精通(四)列表、元组、字典、集合 Python基础知识详解 从入门到精通(五)模块管理 Python基础知识详解 从入门到精通(六)文件操作 Python基础知识详解 从入门到精通(七)类与对象 Python基础知识详解 从入门到精通(八)魔法方法
2022-11-08 21:52:23 34KB python python函数 索引
1
本文实例讲述了Python基于动态规划算法解决01背包问题。分享给大家供大家参考,具体如下: 在01背包问题中,在选择是否要把一个物品加到背包中,必须把该物品加进去的子问题的解与不取该物品的子问题的解进行比较,这种方式形成的问题导致了许多重叠子问题,使用动态规划来解决。n=5是物品的数量,c=10是书包能承受的重量,w=[2,2,6,5,4]是每个物品的重量,v=[6,3,5,4,6]是每个物品的价值,先把递归的定义写出来: 然后自底向上实现,代码如下: def bag(n,c,w,v): res=[[-1 for j in range(c+1)] for i in range(n+1
2022-11-08 21:22:22 70KB 01背包 python python函数
1