Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

mmmaaaggg/IBATS_HuobiTrader_old

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ABAT_trader_4_blockchain

Auto Backtest Analysis Trade Framework (简称ABAT)支持期货、数字货币进行量化交易,集成回测、分析、交易于一体。与市场上同类回测框架相比,有如下优势:

  • 更加完备的支持多品种、多周期策略交易
  • 对跨周期策略回测更加真实,回测模式下,将不同周期数据进行时间排序推送,从而激活对应的周期的响应函数
  • 框架采用分部署架构,行情推送与主框架可分离部署,通过redis进行数据广播
  • 未来将可以支持股票、期货、数字货币多种接口,同时交易

主要组件:

  • 行情代理 md agent
  • 交易代理 trade agent
  • 行情推送 md feeder
  • 回测及实时行情交易框架 ABAT

当前项目主要用于对数字货币进行自动化交易,策略分析使用。

由于精力有限,目前暂未实现前端展现。交易自动执行,通过日至可查看交易执行情况。

安装

系统环境要求:

Python 3.6

MySQL 5.7 (具体配置见下文)

Redis 3.0.6

配置

config.py 配置文件

策略运行示例

strategy 目录下

  • simple_strategy.py 实现简单均线交叉策略回测\
  • file_strategy.py 调仓文件导入式的交易(实时行情)\

其他策略 coming soon

策略研发框架

执行策略

# 参数设置
strategy_params = {}
md_agent_params_list = [
	# {
	#     'name': 'min1',
	#     'md_period': PeriodType.Min1,
	#     'instrument_id_list': ['rb1805', 'i1801'],  # ['jm1711', 'rb1712', 'pb1801', 'IF1710'],
	#     'init_md_date_to': '2017-9-1',
	#     'dict_or_df_as_param': dict
	# },
	{
		'name': 'tick',
		'md_period': PeriodType.Tick,
		'instrument_id_list': ['ethusdt', 'eosusdt'],  # ['jm1711', 'rb1712', 'pb1801', 'IF1710'],
	}]
run_mode_realtime_params = {
	'run_mode': RunMode.Realtime,
	'enable_timer_thread': True,
	'seconds_of_timer_interval': 15,
}
run_mode_backtest_params = {
	'run_mode': RunMode.Backtest,
	'date_from': '2017-9-4',
	'date_to': '2017-9-27',
	'init_cash': 1000000,
	'trade_mode': BacktestTradeMode.Order_2_Deal
}
# 初始化策略处理器
stghandler = StgHandlerBase.factory(
	stg_class_obj=ReadFileStg,
	strategy_params=strategy_params,
	md_agent_params_list=md_agent_params_list,
	**run_mode_realtime_params)
# 开始执行策略
stghandler.start()
# 策略执行 2 分钟后关闭
time.sleep(120)
stghandler.keep_running = False
stghandler.join()
logging.info("执行结束")

StgHandlerBase.factory 为工厂方法,用于产生策略执行对象实力

def factory(stg_class_obj: StgBase.__class__, strategy_params, md_agent_params_list, run_mode: RunMode, **run_mode_params):
    """
    建立策略对象
    建立数据库相应记录信息
    根据运行模式(实时、回测):选择相应的md_agent以及trade_agent
    :param stg_class_obj: 策略类型 StgBase 的子类
    :param strategy_params: 策略参数,策略对象初始化是传入参数使用
    :param md_agent_params_list: 行情代理(md_agent)参数,支持同时订阅多周期、多品种,例如同时订阅 [ethusdt, eosusdt] 1min 行情、[btcusdt, ethbtc] tick 行情
    :param run_mode: 运行模式 RunMode.Realtime  或 RunMode.Backtest
    :param run_mode_params: 运行参数,
    :return: 策略处理对象实力
    """

欢迎赞助

微信

微信支付

支付宝

微信支付

微信打赏(¥10)

微信打赏

MySQL 配置方法

  1. Ubuntu 18.04 环境下安装 MySQL,5.7

    sudo apt install mysql-server
  2. 默认情况下,没有输入用户名密码的地方,因此,安装完后需要手动重置Root密码,方法如下:

    cd /etc/mysql/debian.cnf
    sudo more debian.cnf

    出现类似这样的东西

    # Automatically generated for Debian scripts. DO NOT TOUCH!
    [client]
    host     = localhost
    user     = debian-sys-maint
    password = j1bsABuuDRGKCV5s
    socket   = /var/run/mysqld/mysqld.sock
    [mysql_upgrade]
    host     = localhost
    user     = debian-sys-maint
    password = j1bsABuuDRGKCV5s
    socket   = /var/run/mysqld/mysqld.sock

    以debian-sys-maint为用户名登录,密码就是debian.cnf里那个 password = 后面的东西。 使用mysql -u debian-sys-maint -p 进行登录。 进入mysql之后修改MySQL的密码,具体的操作如下用命令:

    use mysql;
    
    update user set authentication_string=PASSWORD("Dcba4321") where user='root';
    
    update user set plugin="mysql_native_password"; 
     
    flush privileges;
  3. 然后就可以用过root用户登陆了

    mysql -uroot -p
  4. 创建用户 mg 默认密码 Abcd1234

    CREATE USER 'mg'@'%' IDENTIFIED BY 'Abcd1234';
  5. 创建数据库 bc_md

    CREATE DATABASE `abat` default charset utf8 collate utf8_general_ci;
  6. 授权

    grant all privileges on abat.* to 'mg'@'localhost' identified by 'Abcd1234'; 
    
    flush privileges; #刷新系统权限表

About

【停止维护】新版本更新已迁移到 IBATS 项目组对应名称项目中。Auto Backtest Analysis Trade Framework 支持期货、数字货币进行量化交易,集成回测、分析、交易于一体。当前项目主要用于数字货币使用。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.