跳转至

配置

基于算法的应用程序使用 json 配置文件来指定其环境并组装交易逻辑。

json 配置文件包含两种顶级节点: 第一种节点提供信息,它们的格式是节点特定的;第二种节点为应用程序创建组件对象,它们的格式更标准。

信息节点

instance

指定整个实例的名称、日志路径等信息。

"instance":{
    "log_path":"./logs/strategy_demo",
    "name":"strategy_demo",
    "license_id":"",
    "license_key":"",
    "latency_enable":false
}
Field Description Mandatory
name 交易实例的名称。用于构造日志文件名和策略名
log_path 写入日志文件的目录。
log_level 日志记录的级别。
Values: 0: all, 1: debug, 2: info, 3: warnning, 4: error
没有
license_id 您的 Apifiny 帐户中的许可证 ID
license_key 您的 Apifiny 帐户的许可证密钥
latency_enable 延迟文件的启用标志。默认为假 没有

!!! 提示: 可以将 license_key 等常用项放在一个单独的文件中,然后将路径放在后面提到的 include 节点中。

includes

您可以将您的 json 配置分解为多个文件,并使用包含标签将它们链接在一起。 Algo 解析节点中列出的 json 文件,并将它们组合在一起。如果一个项目出现多次,包含的项目将被覆盖。

"includes": [
    "./config_models/huobi_btc_model.json"
]

servers

它包含实例可能连接到的其他服务器软件的配置。

"服务器":{
    "redis_server":"127.0.0.1"                           
}
Field Description Mandatory
redis_server Algo 实例使用这个 redis 服务器来发布统计信息。在此处设置其 IP 地址 没有

exchanges

它列出了此实例将订阅市场数据和/或下订单的交易所。

"exchanges":[
    {"exchange":"OKEX_SWAP","trade_type":"Direct","market_data_type":"Direct"}
]

每个项目包含以下字段:

Field Description Mandatory
exchange 交易所名称。
trade_type 我们如何下订单。
"直接":在此交易所下订单。
"无":不下单。
market_data_type 我们如何处理市场数据。
"直接":直接订阅市场数据。
"Exchange_Setting":使用交易所的配置设置(使用交易所的配置设置(参考market_data_channel中的值))
"无":没有市场数据。
market_data_channel 我们处理的市场数据通道。
BINANCE:"depth@100ms"、"depth@1000ms"和"bookTicker"。
BINANCE_SWAP:"depth@100ms"、"depth@1000ms"和"bookTicker"。
BINANCE_FUTURES:"depth@100ms"、"depth@1000ms"和"bookTicker"。
BINANCEUS:"depth@100ms"、"depth@1000ms"和"bookTicker"。
FTX:"订单簿","股票代码"。
FTX_SWAP:"订单簿","股票代码"。
FTX_FUTURES:"订单","股票代码"。
火币:"ticker"、"bbo"。
HUOBI_SWAP: "depth.size_20.high_freq", "depth.size_150.high_freq", "bbo"。
HUOBI_FUTURES: depth.size_20.high_freq", "depth.size_150.high_freq", "bbo"。
OKCOIN: "depth", "ticker", "depth_l2_tbt"。
OKEX: "books", "books-l2-tbt"、"books50-l2-tbt"、"bbo-tbt"、"books5"。
OKEX_SWAP:"books"、"books-l2-tbt"、"books50-l2-tbt" , "bbo-tbt","books5".
OKEX_FUTURES: "books", "books-l2-tbt", "books50-l2-tbt", "bbo-tbt","books5".
No

### apikeys

它包含交易所的api密钥。实例将下订单的每个交易所都需要在地图中有一个项目。

"apikeys": {
    "OKEX_SWAP": {
        "key": "输入您的api密钥",
        "secret": "enter your api secert",
        "pass": "enter your api passphrase"
    }      
}

每个配置的交易所需要以下字段:

Field Description Mandatory
key api 密钥
secret api 秘密
pass 某些交易所需要的密码

fees

它列出了实例将下订单的每个交易所的制作费用和接受费用。

"fees": {
    "OKEX_SW AP": {
        "make": 0.0,
        "take": 0.0002
    }
}

每个配置的交换都需要以下字段:

Field Description Mandatory
make 制作费率
take 取费率

symbol_info

它保存安全主信息,例如刻度大小。它是可选的。 SDK 默认加载其管理的安全主数据。您可以使用此节点覆盖它们。

"symbol_info": {
    "BTCUSDT.HUOBI": {"ticksize": 0.01, "lotsize": 0.0001, "price_precision": 2, "min_order_size": 0.0001, "qty_precision": 6, "multiple": 1.0, "coin ": "BTC", "base_coin": "USDT", "local_name": "BTC-USDT", "ct_type": true, "lever": 2}
}
Field Description Mandatory
ticksize 最小的价格变化。
lotsize 提供良好费用的最低订购量。与加密货币的 min_order_size 相同
min_order_size 起订量
price_precision 代表订单价格的最大小数位数
qty_precision 表示订单数量的最大小数位数
coin 交易对左侧,即交易货币。
base_coin 交易对右侧,即报价货币。
local_name 交易中使用的交易品种名称。
ct_type 合约类型,标准合约为true,反向合约为false。
multiple 衍生品的合约乘数。默认值为 1。没有
lever 保证金交易的杠杆。请注意,它仅用于 QuantLib 系统,最好与交易所使用的真实杠杆保持一致。默认值为 1。没有

!!!提示 您可以在现货交易中跳至配置 symbol_info。但是,如果您想进行保证金交易,您需要在 symbol_info 中手动指定"杠杆",并在策略组件中设置"use_margin"和"margin_source"。

symbols

它包含此实例使用的符号列表。每个符号都应该有一个 cid,它在当前实例中必须是唯一的。

"symbols": [
    {"port": ["BTCUSDT", "HUOBI"], "cid": 10000}
]
Field Description Mandatory
port 代表交易品种的元组。它的格式是[ticker, exchange]
cid 代表交易品种的唯一数字 没有

Component nodes

第二种类型的节点是一个项目列表,每个项目都包含一个名称及其定义。该定义包含一个类名和一个属性映射。算法应用程序将从类创建一个对象并使用属性对其进行初始化,并为其指定名称。

players

它包含历史数据播放器。它们用于回测和实时交易的预热期。

"players":[
    ["BTCUSDT.HUOBI_Player",["CobJsonPlayer",{"端口":["BTCUSDT","HUOBI"],"路径":"/data/cc/prod/ccc_record_2"}]]
]

玩家的标准属性:

Field Description Mandatory
port 代表交易品种的元组。它的格式是[ticker, exchange]
path 该目录包含历史市场数据

带有 Algo SDK 的播放器:

Class Description
CobJsonPlayer 播放 Algo 的 mktpub 生成的历史数据。
TardisPlayer 从 tardis.dev 播放快照历史数据

risk_formulas

它包含风险公式。风险公式计算投资组合的风险,并在账户组件中使用。

"risk_formulas": [
    ["RF01", ["RiskFormula", {"components": [[["BTCUSDT", "HUOBI"], 1.0]]}]]
]

风险公式的标准属性:

Field Description Mandatory
components 元组列表 [端口,重量]

随 Algo SDK 提供的 RiskFormulas:

Class Description
RiskFormula 计算组件中列出的符号的加权和。

accounts

它包含帐户。账户对交易品种进行分组并计算其头寸、名义和风险。每个账户都有一个 id,您在创建策略时将此账户 id 指定给策略。由策略管理的交易品种随后将包含在账户中。

"accounts": [
    [10001, ["Account", {"risk_formulas": ["RF01"], "id": 10001}]]
]

账户的标准属性:

Field Description Mandatory
risk_formulas 风险公式名称列表。
id 代表帐户的数字,与帐户名称相同。

随 Algo SDK 提供的帐户:

Class Description
Account 管理投资组合的每个符号和风险的头寸和名义。

samplers

它包含采样器。当采样事件发生时,采样器会触发 onSample() 回调,例如经过的持续时间。它还计算此事件的衰减值。 采样器在系统中广泛用于信号计算和数据生成。它们可以基于时间或其他事件。

"samplers": [
    ["ts_basis", ["TimeSampler", {"halflife": 1, "msecs": 100}]]
]

点击这里查看所有采样器

## pricing_models

它包含定价模型。定价模型产生资产的公允价值。它可以从账簿、交易或投资组合中计算出来。

"pricing_models": [
    ["BTCUSDT.HUOBI_midpx", ["MidPx", {"port": ["BTCUSDT", "HUOBI"]}]]
]

点击这里查看所有定价模型

variables

它包含变量。一个变量在任何时候都会生成一个数字。它可以用作独立特征或中间值来计算特征。

"variables": [
    ["Zero", ["Const", {"value": 0.0}]]
]

点击这里查看所有变量

*models *

它包含模型。模型是从一个或多个变量生成的值。它的值代表预测的远期回报,并由 ModelStrategy 使用。

"models": [
    ["Zero_m", ["LinearModel", {"variable": "Zero"}]]
]

点击这里查看所有模型

strategies

它包含策略。策略实现交易品种的执行逻辑。它受时间和市场事件的驱动,根据模型值和其他信息做出下单/取消决策。

"strategies":[                                 
    ["BTCUSDTSWAP.OKEX_SWAP",[
        "SimpleTakerStrategy",{
            "symbol":"BTCUSDTSWAP",
            "trade_market":"OKEX_SWAP",
            "order_size":0.0001,
            "signal":"BTCUSDTSWAP.OKEX_SWAP_trend30"
    } ]]                          
]

点击这里查看所有策略