Giter VIP home page Giter VIP logo

autoxd's Introduction

autoxd 回测框架

简单快捷的A股回测环境, 适合编写T+0策略

特性

  • 使用pandas编写策略
  • 结果可以在页面显示, 类似matlab的publish
  • 并行执行策略(需要安装redis)
  • 本地账户, 模拟实盘交易细节, 支持T+0, 交易成本计算
  • 基于本地数据(datas)维护的前复权, 成交量转换手率

数据维护

  • datas目录下的数据不定期更新, 数据来自同花顺F10
  • 包括股票代码列表, 股票简写, 前复权使用的分红表, 成交量转换手率的股本变更表

依赖

  1. redis 默认使用(推荐)
  2. 支持各平台py3, py2已不维护; 开发平台为win, 其它平台测试比较少, 可能有轻微的问题.
  3. 推荐conda env python=3.7.4

安装

  • 安装Anaconda
  • 下载autoxd
git clone https://github.com/nessessary/autoxd.git
cd autoxd
pip install -r requirements.txt
pip install git+https://github.com/hanxiaomax/pyh.git
python setup.py install

使用

  • 5分钟例子
	python autoxd\strategy\five_chengben.py

  • 日线例子
	python boll_fencang.py

image

autoxd's People

Contributors

nessessary avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

autoxd's Issues

python five_chengben.py 报错

MacOS 系统

/usr/local/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py:5079: FutureWarning: Attribute 'is_copy' is deprecated and will be removed in a future version.
  object.__getattribute__(self, name)
/usr/local/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py:5080: FutureWarning: Attribute 'is_copy' is deprecated and will be removed in a future version.
  return object.__setattr__(self, name, value)
Traceback (most recent call last):
  File "/usr/local/anaconda3/lib/python3.7/site-packages/autoxd-0.4.3-py3.7.egg/autoxd/MultiSubProcess/MultiSubProcess_exec.py", line 79, in <module>
    main(args)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/autoxd-0.4.3-py3.7.egg/autoxd/MultiSubProcess/MultiSubProcess_exec.py", line 59, in main
    r = myexec(s)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/autoxd-0.4.3-py3.7.egg/autoxd/pinyin/myexec.py", line 6, in myexec
    r = exec(s, globals(), _locals)
  File "<string>", line 2, in <module>
  File "/Users/alan/Documents/Stocks/autoxd/autoxd/strategy/five_chengben.py", line 268, in Run
    datasource_fn=fnSample
  File "/usr/local/anaconda3/lib/python3.7/site-packages/autoxd-0.4.3-py3.7.egg/autoxd/backtest_policy.py", line 146, in test_strategy
    p.Run(d1, d2)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/autoxd-0.4.3-py3.7.egg/autoxd/backtest_runner.py", line 88, in Run
    self._Report(policy, start_day, end_day, close)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/autoxd-0.4.3-py3.7.egg/autoxd/backtest_runner.py", line 204, in _Report
    title=title)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/autoxd-0.4.3-py3.7.egg/autoxd/ui.py", line 463, in TradeResult_Boll
    ShowTradeResult2(pl, bars, signals, zhijin,changwei , 0, freq=30, title=title)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/autoxd-0.4.3-py3.7.egg/autoxd/ui.py", line 429, in ShowTradeResult2
    pl.show()
  File "/usr/local/anaconda3/lib/python3.7/site-packages/autoxd-0.4.3-py3.7.egg/autoxd/pypublish/publish.py", line 246, in show
    self.save()
  File "/usr/local/anaconda3/lib/python3.7/site-packages/autoxd-0.4.3-py3.7.egg/autoxd/pypublish/publish.py", line 207, in save
    pl.savefig(fname, dpi=70)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 729, in savefig
    res = fig.savefig(*args, **kwargs)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/figure.py", line 2180, in savefig
    self.canvas.print_figure(fname, **kwargs)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/backend_bases.py", line 2091, in print_figure
    **kwargs)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py", line 527, in print_png
    FigureCanvasAgg.draw(self)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py", line 388, in draw
    self.figure.draw(self.renderer)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/figure.py", line 1709, in draw
    renderer, self, artists, self.suppressComposite)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 2607, in draw
    self._update_title_position(renderer)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 2556, in _update_title_position
    if title.get_window_extent(renderer).ymin < top:
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/text.py", line 890, in get_window_extent
    bbox, info, descent = self._get_layout(self._renderer)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/text.py", line 291, in _get_layout
    ismath="TeX" if self.get_usetex() else False)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py", line 210, in get_text_width_height_descent
    font = self._get_agg_font(prop)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py", line 246, in _get_agg_font
    font = get_font(fname)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/font_manager.py", line 1341, in get_font
    return _get_font(filename, hinting_factor)
FileNotFoundError: [Errno 2] No such file or directory: '/Library/Fonts/STIXGeneral.otf'

有空的话可以简单写个安装教程什么的

可以仿照quantaxis那样写个安装教程,因为有时候数据库配置、回测框架配置,实盘系统配置和各方面的对接对于不熟悉autoxd的人来说是很困难的,一份好的安装教程甚至是使用教程会大大降低使用门槛。
作者如果有空的话可以简单写一份,,要自己摸索的话真的太费时间了。。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.