码迷,mamicode.com
首页 > 其他好文 > 详细

rqalpha探究 1

时间:2018-02-02 14:08:48      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:pyc   images   open   default   info   版本   准备   回测   pkg   

rqalpha是难得几个好的开源项目,不过由于自己python用的实在不多,看起来还是觉得比较得比较复杂。

因此准备抽取出框架,从最简单的搭建。

 

思路

从setup着手,看一下如何建立一个发布工程,在此基础上完成一个最简单回测模型。

首先建立demo工程bwtougu,确保可以生成脚本文件bwtougu-script.py和bwtougu.exe(如在linux建立,则生成可执行程序bwtougu)

 

操作步骤

1 首先新建文件夹bwtougu, 在里面建立文件setup.py

2 建立依赖文件requirements.txt

3 建立子文件夹bwtougu,并在其中新建版本文件VERSION.txt

4 建立初始化文件__init__.py

5 建立程序入口文件__main__.py

操作完后即可进行测试了,建议用PyCharm进行调试,调试截图如下:

技术分享图片

运行完成后即可在python的安装目录下找到bwtougu.exe文件和bwtougu-script.py

技术分享图片

技术分享图片

 

 

附上对应文件的源码

bwtougu\setup.py

#!usr/bin/evn python3
# -*- coding: utf-8 -*-
from pip.req import parse_requirements
from os.path import (
    dirname, 
    join
)
from setuptools import (
    setup, 
    find_packages,
    )
with open(join(dirname(__file__), ‘bwtougu/VERSION.txt‘), ‘rb‘) as f:
    version = f.read().decode(‘ascii‘).strip()
    
requirements = [str(ir.req) for ir in parse_requirements("requirements.txt", session=False)]
setup(
    name=‘bwtougu‘,
    version=version,
    description=‘bwtougu for python3‘,
    author=‘luhx‘,
    author_email=‘luhx@bangth.com‘,
    license=‘Apache License v2‘,
    package_data={‘‘: [‘*.*‘]},
    url=‘http://www.bangth.com‘,
    packages=find_packages(exclude=[]),
    install_requires=requirements,
    zip_safe=False,
    entry_points={
        "console_scripts":[
            "bwtougu = bwtougu.__main__:entry_point"
        ]
    },
    classifiers=[
        ‘Programming Language :: Python‘,
        ‘Operating System :: Microsoft :: Windows‘,
        ‘Operating System :: Unix‘,
        ‘Programming Language :: Python :: 3.5‘,
        ‘Programming Language :: Python :: 3.6‘,
    ],
)

 

bwtougu\requirements.txt

requests
numpy>=1.11.1
six>=1.10.0
logbook==1.0.0
click>6.6

 

bwtougu\bwtougu\__init__.py

#!usr/bin/env python3
# -*- coding: utf-8 -*-
import pkgutil
__all__ = [
    ‘__version__‘,
version_info
]
__version__ = pkgutil.get_data(__package__, ‘VERSION.txt‘).decode(‘ascii‘).strip()
version_info = tuple(int(v) if v.isdigit() else v
                     for v in __version__.split(‘.‘))

 

bwtougu\bwtougu\__main__.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import six
import click
CONTEXT_SETTINGS={
    ‘default_map‘: {
        ‘run‘: {
        }
    }
}
@click.group(context_settings=CONTEXT_SETTINGS)
@click.option(‘-v‘, ‘--verbose‘, count=True)
@click.help_option(‘-h‘, ‘--help‘)
@click.pass_context
def cli(ctx, verbose):
    ctx.obj["VERBOSE"] = verbose
def entry_point():
    print("entry_point...")  
    cli(obj={})
@cli.command()
@click.option(‘-v‘, ‘--verbose‘, is_flag=True)
def version(**kwargs):
    """
    Output Version Info
    """
    from bwtougu import version_info
    six.print_("Current Version: ", version_info)
    
if __name__ == ‘__main__‘:
    entry_point()

 

完毕

rqalpha探究 1

标签:pyc   images   open   default   info   版本   准备   回测   pkg   

原文地址:https://www.cnblogs.com/luhouxiang/p/8404378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!