-
Notifications
You must be signed in to change notification settings - Fork 2
自动交易程序操作手册
本文以cybex交易所为例,旨在说明我们开发的自动交易程序的操作方法。通过运行此程序,可以使用指定账户进行自动挂单、撤单操作,并根据需要设定相关的策略,包括行情获取、下单间隔、价格设定、风控规则等等。
- 安装Docker
创建的Json配置文件可以通过终端使用Docker运行,可至官网 https://docs.docker.com/install/ 进行下载安装。
- 获取镜像
启动Docker服务,通过Docker pull命令从阿里云的公共镜像库中拉下创建好的镜像,详细命令:
Docker pull registry.cn-hangzhou.aliyuncs.com/cybex/robot:0.1.20181128
参照附件中的config.json.examples文件创建所需的配置文件YYY.json,相关参数配置详解:
- markets: //行情模块
当交易对可通过cryptocompare获取行情信息时,配置如下:
{
"name": "cryptocompare", //行情实例名
"params": {
"url": "https://min-api.cryptocompare.com/data/price?fsym={}&tsyms={}",
"market_expiration": 60, //行情有效期,单位秒
"trading_pairs": [
{"base": "USDT", "quote": "ETH"},
{"base": "BTC", "quote": "ETH"}
]
}
当交易对无法通过cryptocompare获取行情信息时,例如KEY/CYB,CYB无外盘价格,配置如下:
{
"name": "cybex", //行情实例名
"params": {
"url": "https://shanghai.51nebula.com", //cybex生产链访问节点
"market_expiration": 60, //行情有效期,单位秒
"trading_pairs": [
{"base": "CYB", "quote": "JADE.KEY"}
]
}
- strategies: //下单策略模块
{
"name": "robot_ETH_USDT", //下单策略实例名
"type": "robot_strategy", //下单策略模块类型
"params": {
"base": "USDT",
"quote": "ETH",
"price_positive_floating": 0.001, //价格向促进成交方向浮动比例
"price_nagtive_floating": 0.01, //价格向不促进成交方向浮动比例
"amount": 0.05, //以quote计价的下单量,此处意为挂单量为0.05ETH
"amount_floating": 0.5, //下单量可以浮动比,此处意为:0.075ETH>=下单>=0,025ETH
"expiration": 180 //下单超时,单位秒,此处意为超过180秒自动撤单
}
}
- risk: //风控模块
{
"name": "robot_position", //风控实例名
"type": "max_position_risk", // 风控模块类型
"params": {
"max_position": 0.05 //可用于下单的持仓量比,此处意为超过百分之五的仓位既停止下单
}
}
- stoplosses: //止损模块
{
"name": "simple_robot", //止损实例名
"type": "price_stoploss_cancel", //止损模块类型
"params": {
"order_cancel_ratio": 0.01 //自动撤单的价格浮动比例,此处意为当所下单价格与当前成交价格浮动比超过百分之一即自动撤单
}
}
- account: //账户模块
当为配置CYBEX交易所的账户时:
"name": "pytest1", //账户实例名
"type": "cybex", //账户模块类型
"params": {
"name": "rbt-test01", //下单账户的账户名
"url": "https://shanghai .51nebula.com", //cybex交易所生产访问方式
"wif":"wif-priv-key-here" //下单账户的私钥
当为配置其他交易所的账户时:
待完善
- instances: //调用以上配置
{
"strategy": "robot_ETH_USDT", //调用名为robot_ETH_USDT的下单策略实例
"account": "pytest1", //调用名为pytest1的账户实例
"market": ["cryptocompare"], //调用[ ]中的所有行情实例,此处可配置调用一组多个行情实例
"risk": ["robot_position"], //调用[ ]中的所有风险实例,此处可配置调用一组多个风险实例
"stoploss": "simple_robot", //调用名为simple_robot的止损实例
"gap_sec": 1 //下单频率,单位秒
},
{
"strategy": "robot_KEY_CYB",
"account": "pytest4",
"market": ["cybex"],
"risk": ["robot_position"],
"stoploss": "simple_robot",
"gap_sec": 3
} //可重复配置调用多个下单策略实例
通过docker run命令运行所创建的YYY.json
Docker run -it -v ${ABSOLUTE_PATH_OF_YOUR_CFG_JSON}:/config.json egistry.cn-hangzhou.aliyuncs.com/cybex/robot:0.1.20181128
注:其中ABSOLUTE_PATH_OF_YOUR_CFG_JSON为YYY.json为在你本地的绝对路径,如需在后台自动运行,将命令行中的-it替换成-itd
运行成功后,登录交易所核实所配置账户是否根据要求在自动挂单和撤单操作,以及及时观察是否需要为账户进行补仓等操作。