rqalpha探究 1

Posted 永远的麦田

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rqalpha探究 1相关的知识,希望对你有一定的参考价值。

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进行调试,调试截图如下:

image

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

image

image

 

 

附上对应文件的源码

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的主要内容,如果未能解决你的问题,请参考以下文章

利用rqalpha帅选股票 1

rqalpha环境搭建(windows版)

利用rqalpha完成一个股指期货的回测 分钟数据获取和转换

Combine框架中两个相近操作符scan和reduce探究

Combine框架中两个相近操作符scan和reduce探究

C程序存储结构