Quantlib
samplers
它包含 samplers.当采样事件发生时, samplers会触发 onSample() 回调,例如经过的持续时间.它还计算此事件的衰减值.
samplers实例:
" samplers":[
["ds_0",["TimeSampler",{" halflife":5,"毫秒":100}]],
["ds_1",["TimeSampler",{" halflife": 25, "msecs": 100}]]
]
samplers概述:
Class | Description |
---|---|
TimeSampler | 当指定的持续时间过去时触发采样事件. |
TradeSampler | samplers在交易事件中触发. |
samplers | 当交易量超过阈值时, samplers被触发. |
NotionalSampler | 对于给定的名义阈值,只要一段时间内的名义交易价值 (trade_price*trade_qty) 大于名义阈值,就会触发 samplers. |
samplers 详细信息:
TimeSampler
当指定的持续时间过去时触发采样事件.
Field | Description | Mandatory |
---|---|---|
msecs | 触发采样事件的时间间隔(毫秒单位). | 是 |
halflife | 将值衰减一半所采用的 samplers点数. | 没有 |
TradeSampler
samplers在交易事件时触发.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
halflife | 将值衰减一半所采用的 samplers点数. | 没有 |
VolSampler
当交易量超过阈值时触发 samplers.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
vol | 用户定义的音量阈值 | 是 |
halflife | 将值衰减一半所采用的 samplers点数. | 没有 |
multi_events_per_trade | 一个布尔参数指示 samplers是否会根据交易量多次触发. | 没有 |
NotionalSampler
对于给定的名义阈值,只要一段时间内的名义交易价值 (trade_price*trade_qty) 大于名义阈值,就会触发 samplers.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
notional | 用户定义的名义阈值. | 是 |
halflife | 将值衰减一半所采用的 samplers点数. | 没有 |
multi_events_per_trade | 一个布尔参数指示 samplers是否会根据交易的概念被多次触发. | 没有 |
pricing_models
它包含pricing_models.pricing_models产生资产的公允价值.它可以从账簿、交易或投资组合中计算出来.
pricing_models实例:
"pricing_models":[
["BTCUSDT.HUOBI_midpx",["MidPx",{"端口":["BTCUSDT","HUOBI"]}]]
]
pricing_models概述:
Class | Description |
---|---|
MidPx | 计算指定symbol中间价的pricing_models. |
AskPx | 一种pricing_models,计算指定symbol的最佳价格. |
BidPx | 一种pricing_models,计算指定symbol的最佳 BidPx. |
TradePx | 计算指定symbol交易价格的pricing_models. |
TbboMid | 一种pricing_models,根据指定symbol的最佳买入价和卖 BidPx计算中间价. |
XbboMid | 一种pricing_models,根据指定symbol的最佳买价和卖价 xbbo 价格计算中间价. |
PrevClosePx | 计算指定symbol前收盘价的pricing_models. |
MktWPx | 一种pricing_models,计算指定代码的买入/ sell_up规模加权中间价. |
Vwap | 计算指定symbol的交易量加权交易价格的pricing_models. |
Twap | 使用 EMA(指数移动平均线)计算指定symbol的时间加权交易价格的pricing_models. |
更多pricing_models将很快在 QuantLib 中提供. |
pricing_models 详细信息:
MidPx
计算指定symbol中间价的pricing_models.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
AskPx
一种pricing_models,计算指定symbol的最佳价格.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
BidPx
一种pricing_models,计算指定symbol的最佳 BidPx.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
TradePx
计算指定symbol交易价格的pricing_models.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
TbboMid
一种pricing_models,根据指定symbol的最佳买入价和卖 BidPx计算中间价.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
XbboMid
一种pricing_models,根据指定symbol的最佳买入价和卖 BidPx计算中间价.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
PrevClosePx
计算指定symbol前收盘价的pricing_models.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
MktWPx
一种pricing_models,计算指定代码的买/卖大小加权中间价.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
Vwap
一种pricing_models,计算指定symbol的交易量加权交易价格.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
samplers | 数据采样方法的类型. | 是 |
Twap
一种pricing_models,使用 EMA(指数移动平均线)计算指定symbol的时间加权交易价格.
Field | Description | Mandatory |
---|---|---|
port | 市场数据的来源,第一个参数是symbol,第二个参数是交易所. | 是 |
samplers | 数据采样方法的类型. | 是 |
变量
它包含变量.一个变量在任何时候都会生成一个数字.它可以用作独立特征或中间值来计算特征.
变量实例:
"variables":[
["Zero",["Const",{"value":0.0}]],
["VAR_A_bidpx",["PriceVar",{"pm":"BSVUSDTSWAP.OKEX_SWAP_bidpx "}]],
["RGAP_SBBA", [" Ratio", {"v1": "VAR_B_askpx", "v2": "VAR_A_askpx"}]],
["EMA_BBSA", ["VarEma", {"变量": "RGAP_BBSA", "sampler": "std_sampler"}]],
["STD_SBBA", ["VarStd2", {"variable": "RGAP_SBBA", "init_var_value": 1,"init_std_value": 0.0006,"sampler": "std_sampler"}]],
["BTCUSDT.H_ret", ["Sub", {"v1": "BTCUSDT.H_ratio", "v2": "BTCUSDT.H_const"}]],
["BTCUSDT.H_high_signal", ["最大值", {"变量": ["BTCOFQ0.K_BTCUSDT.H_bt0_basispts", "BTCOFQ0.K_BTCUSDT.H_bt1_basis"]}]],
["BTCUSDT.H_low_signal", ["最小值", {"变量": [" BTCOFQ0.K_BTCUSDT.H_bt0_basispts", "BTCOFQ0.K_BTCUSDT.H_bt1_basis"]}]],
["SELL_UP", ["GreaterThan", {"v1": "RGAP_SBBA", "v2": "UP"}]],
[ "BUY_DOWN", ["LessThan", {"v1": "RGAP_BBSA", "v2": "DOWN"}]]
]
变量概述:
Class | Description |
---|---|
BookReturn | 账面加权价格和参考价格之间的回报(例如 MidPx) |
PriceVar | 可变价值来自价格. |
Ratio | 计算两个变量的 Ratio. |
VarEma | 计算 ema 的值. |
VarStd2 | 计算标准偏差的值. |
Sum | 将多个变量作为输入,并将其值相加. |
And | 对多个变量执行"与"运算. |
Sub | 将两个变量作为输入并将它们相减. |
Add | 将两个变量作为输入并将它们相加. |
Div | 将两个变量作为输入并将它们相除. |
Mul | 将两个变量作为输入并将它们相乘. |
Scale | 获取输入系数和变量,并按系数缩放变量. |
Max | 获取多个变量的最大值. |
Min | 获取多个变量的最小值. |
Mean | 计算大量变量值的平均值. |
GreaterThan | 比较两个参数的值. |
LessThan | 比较两个参数的值. |
Or | 对多个变量执行"或"运算. |
NotZero | 检查变量是否为零. |
Not | 对多个变量执行"NOT"操作. |
NormGT | 对于任意两个变量,它检查一个变量的绝对值是否大于另一个变量的绝对值. |
SameSign | 检查两个变量的 symbol是否相同. |
Const | 接受一个常数作为输入. |
TopN | 计算平均前 N 个变量值. |
Median | 计算大量变量值的中值. |
MinC | 接受一个变量和一个常数作为输入,并计算两者的最小值. |
MaxC | 将变量和常数作为输入,并计算两者的最大值. |
Bollinger | 对于给定的 trend alpha 和阈值,该指标检查 (trend_value)/(stdev(trend_value)) 的 Ratio是否高于或低于阈值,如果高于值 = +1,如果低于值 =-1,否则值=价值. |
LevelPrice | 将变量和常数作为输入,并计算两者的最大值. |
Trend | 将pricing_models和 samplers参数作为输入,并计算pricing_models的指数移动平均值. |
Volatility | 计算 trend EMA 的标准差. |
HighLow | 对于给定的pricing_models和 samplers,计算给定柱数的最高、最低、总回报、高-低范围和最小值(最后 - 低,高 - 最后). |
ReturnFromMid | 将pricing_models和中间pricing_models作为输入并计算它们之间的回报. |
ReturnBetweenPrices | 将pricing_models和基本pricing_models作为输入并计算它们之间的回报. |
| |更多变量将很快在 QuantLib 中提供. |
变量详细信息:
PriceVar
变量值来自价格.
Field | Description | Mandatory |
---|---|---|
pm | 从pricing_models派生的 PriceVar | 是 |
Ratio
计算两个变量的 Ratio.
Field | Description | Mandatory |
---|---|---|
v1 | 比值的分子部分. | 是 |
v2 | Ratio的分母部分. | 是 |
VarEma
计算 ema 的值.
Field | Description | Mandatory |
---|---|---|
variable | 用于计算指数移动平均线的变量. | 是 |
samplers | 计算 ema 时的衰减参数. | 是 |
VarStd2
计算标准偏差的值.
Field | Description | Mandatory |
---|---|---|
variable | 用于计算标准偏差的变量. | 是 |
init_var_value | 用于计算标准偏差的初始变量. | 是 |
init_std_value | 用于计算标准偏差的初始标准. | 是 |
Add 将
两个变量作为输入并将它们相加.
Field | Description | Mandatory |
---|---|---|
v1 & v2 | 需要添加的两个参数. | 是 |
Sub
将两个变量作为输入并将它们相减.
Field | Description | Mandatory |
---|---|---|
v1 & v2 | 要减去的两个参数. | 是 |
Mul
将两个变量作为输入并将它们相乘.
Field | Description | Mandatory |
---|---|---|
v1 & v2 | 两个参数相乘. | 是 |
Div
将两个变量作为输入并将它们相除.
Field | Description | Mandatory |
---|---|---|
v1 & v2 | 要划分的两个参数. | 是 |
Scale
获取输入系数和变量,并按系数缩放变量.
Field | Description | Mandatory |
---|---|---|
coef | 存储一个常数值. | 是 |
variable | 用户定义的变量. | 是 |
Max
获取多个变量的最大值.
Field | Description | Mandatory |
---|---|---|
variable | 存储要比较的变量列表. | 是 |
Min
获取多个变量的最小值.
Field | Description | Mandatory |
---|---|---|
variable | 存储要比较的变量列表. | 是 |
Mean
计算大量变量值的平均值.
Field | Description | Mandatory |
---|---|---|
variable | 存储要比较的变量列表. | 是 |
GreaterThan
比较两个参数的值.
Field | Description | Mandatory |
---|---|---|
v1 & v2 | v1 大于 v2. | 是 |
LessThan
比较两个参数的值.
Field | Description | Mandatory |
---|---|---|
v1 & v2 | v1 小于 v2. | 是 |
Or
对多个变量执行"或"运算.
Field | Description | Mandatory |
---|---|---|
variables | 存储要比较的变量列表. | 是 |
Not
对多个变量执行"NOT"操作.
Field | Description | Mandatory |
---|---|---|
variable | 用户定义的变量. | 是 |
NotZero
检查变量是否为零.
Field | Description | Mandatory |
---|---|---|
variables | 用户定义的变量. | 是 |
NormGT
对于任意两个变量,它检查一个变量的绝对值是否大于另一个变量的绝对值.
Field | Description | Mandatory |
---|---|---|
v1 & v2 | 需要添加的两个参数. | 是 |
Const
接受一个常数作为输入.
Field | Description | Mandatory |
---|---|---|
value | 存储一个常数值. | 是 |
TopN
计算平均前 N 个变量值.
Field | Description | Mandatory |
---|---|---|
variables | 存储要比较的变量列表. | 是 |
Median
计算大量变量值的中值.
Field | Description | Mandatory |
---|---|---|
variables | 存储要比较的变量列表. | 是 |
MinC
将变量和常数作为输入,并计算两者的最小值.
Field | Description | Mandatory |
---|---|---|
variables | 用户定义变量. | 是 |
常量 | 存储一个常数值. | 是 |
MaxC
将变量和常数作为输入,并计算两者的最大值.
Field | Description | Mandatory |
---|---|---|
variables | 用户定义变量. | 是 |
Const | 存储一个常数值. | 是 |
Bollinger
对于给定的 trend alpha 和阈值,该指标检查 (trend_value)/(stdev(trend_value)) 的 Ratio是否高于或低于阈值,如果高于值 = +1,如果低于值 = -1,否则价值 = 价值
Field | Description | Mandatory |
---|---|---|
trend | 用户定义的 trend方法. | 是 |
stdev_sampler | 数据采样方法的类型. | 是 |
default_stdev | 初始标准偏差. | 是 |
cutoff | 阈值 cutoff.默认为 1 | 没有 |
LevelPrice
采用参考pricing_models和边,在达到 level_cap 或 size_cap 时计算水平价格.
Field | Description | Mandatory |
---|---|---|
ref_pm | 用户定义的参考定价方法. | 是 |
side | 1 表示买入,2 表示 sell_up.默认为 1 | 没有 |
level_cap | 等级上限.默认为 5 | 没有 |
Trend
将pricing_models和 samplers参数作为输入,并计算pricing_models的指数移动平均线.
Field | Description | Mandatory |
---|---|---|
pm | 用户定义的定价方法. | 是 |
base_pm | 用户定义的计算 EMA 的定价方法.默认是 pm | 没有 |
samplers | 数据采样方法的类型. | 是 |
Volatility
计算 trend EMA 的标准差.
Field | Description | Mandatory |
---|---|---|
trend | 用户定义的 trend方法. | 是 |
samplers | 数据采样方法的类型. | 是 |
HighLow
对于给定的pricing_models和 samplers,计算给定柱数的最高价、最低价、总回报率、最高-最低价范围和最小值(最后 - 最低价,最高价- 最后价).
Field | Description | Mandatory |
---|---|---|
pm | 用户定义的pricing_models. | 是 |
samplers | 数据采样方法的类型. | 是 |
num_bars | 条数 | 没有 |
output | 选择 5 种 output类型之一: range, return, high, low, px_from where px_from is min(high-px, px-low).默认为range | 没有 |
ReturnFromMid
将pricing_models和中间pricing_models作为输入并计算它们之间的回报.
Field | Description | Mandatory |
---|---|---|
pm | 用户定义的pricing_models. | 是 |
mid_pm | 用户定义的中间pricing_models. | 是 |
ReturnBetweenPrices
将pricing_models和基本pricing_models作为输入并计算它们之间的回报.
Field | Description | Mandatory |
---|---|---|
pm | 用户定义的pricing_models. | 是 |
base_pm | 用户定义的基本pricing_models. | 是 |
LinearSum
将输入变量乘以权重;您可以使用它来存储 LinearModel. 必须使用其中一个字段.
Field | Description | Mandatory |
---|---|---|
variables | 一个字典列表,每个字典都包含属性"weight"和"variable",其中 weight 是一个浮点数,variable 是一个变量的名称. | 没有 |
components | 形式为 (weight, variable) | 的元组列表没有 |
models
它包含模型.模型是从一个或多个变量生成的值.它的值代表预测的远期回报,并由 ModelStrategy 使用.
模型实例:
"models": [
["Zero_m", ["LinearModel", {"variable": "Zero"}]]
]
模型概述:
Class | Description |
---|---|
LinearModel | 它接受单个变量作为参数,并根据变量的值将 signal分配给策略(另外也可以将 trading_condition 作为参数. |
更多模型将很快在 QuantLib 中发货. |
模型详情:
LinearModel
它以单个变量作为参数,并根据变量的值将 signal分配给策略(另外也可以将 trading_condition 作为参数.
字段 | 描述 | 强制 |
---|---|---|
variable | 要传递的变量. | 是 |
trading_condition | samplers.仅发生交易当有样本事件时. | 否 |
strategies
它包含策略.策略实现symbol的执行逻辑.它由时间和市场事件驱动,根据模型做出下单/取消决策除了
策略常用参数:
交易逻辑,策略 components还提供一组常用参数,可帮助您更好地调整和管理您的策略,例如名义订单、订单冷却时间等.下面是一个带有解释的列表.
Field | Description | Mandatory |
---|---|---|
symbol | 策略交易的象征. | 是 |
trade_market | 策略在哪个市场交易. | 是 |
account | 策略在哪个 account中运行.是 | |
risk_id | 策略所属的策略组合,用于合并计算出的风险.默认值为 0.没有 | |
order_notional | 每个订单的 max_notional价值(仅限发布).默认值为 max_notional/5. | 没有 |
ioc_notional | 每个订单的 max_notional价值 (ioc).默认值为 max_notional/5. | 没有 |
max_notional | 每个symbol允许的 max_notional价值.默认值为 1000000.没有 | |
max_portfolio_notional | 每个账户允许的 max_notional金额.默认值为 -1. | 没有 |
max_risk | 战略投资组合风险敞口的 max_notional价值.默认值为 1000000.没有 | |
cooloff | 下单的时间间隔.默认值为 0.没有 | |
use_margin | 无论是保证金交易.默认为假. | 没有 |
margin_source | 保证金模式,仅在 use_margin 为 True 时有效.默认是隔离的 | 没有 |
策略实例:
"strategies":[
["BTCUSDTSWAP.OKEX_SWAP",[
"SimpleTakerStrategy",{
"symbol":"BTCUSDTSWAP",
"trade_market":"OKEX_SWAP",
"order_size":0.0001,
"signal": "BTCUSDTSWAP.OKEX_SWAP_trend30"
}]],
["BTCUSDT.BINANCE", [
"CCSimpleMakerStrategy", {
"symbol": "BTCUSDT",
"trade_market": "BINANCE",
"account": 10001,
"model": "BTCUSDT .BINANCE_m",
"make_mid_pm": "BTCUSDT.BINANCE_midpx",
"use_bps_thold": true,
"make_thold": 1,
"order_notional": 2000,
"max_notional": 2000
}]]
["Arb01", [
"Arb1Strategy", {
"symbol": "BSVUSDTSWAP",
"trade_market": "OKEX_SWAP",
"risk_id":0,
"use_margin": true,
"account": 10001,
"model": "model_a",
"rbda": "RM_BDA" ,
"sell_up": "SELL_UP",
"buy_down": "BUY_DOWN",
"order_notional": 100,
"max_notional": 1000,
"max_risk": 500
}]],
["Arb02", [
"Arb2Strategy", {
"symbol:"BSVUSDSWAP"、
"trade_market":"OKEX_SWAP"、
"risk_id":0、
"use_margin":true、
"account":10001、
"model":"model_a"、
"max_notional":1000、
"max_risk" : 500
}]]
]
策略概述:
Class | Description |
---|---|
CCEventMaker 策略 | 一个简单的制造商策略,根据买入/ sell_up命令下订单. |
CCSimpleMaker 策略 | 一个简单的制造商策略,根据 signal报价双方下单. |
Arb1Strategy | Arb1Strategy的前腿策略部分. |
Arb1Strategy | 后腿策略 Arb1Strategy的一部分. |
策略将很快在 QuantLib 中发布. |
策略详细信息:
CCEventMakerStrategy:
基于 python 脚本命令下订单的简单制造商策略.
Field | Description | Mandatory |
---|---|---|
symbol | 策略交易的象征. | 是 |
trade_market | 策略在哪个市场交易. | 是 |
order_size | 每个订单的订单大小. | 是 |
signal | 策略使用的 signal. | 是 |
CCSimpleMakerStrategy:
一个简单的制造商策略,根据 signal在双方报价制造商订单.默认 signal为0.此策略允许用户指定模型,或组合变量集生成 signal,例如LinearModel.
Field | Description | Mandatory |
---|---|---|
symbol | 策略交易的象征. | 是 |
trade_market | 策略在哪个市场交易. | 是 |
max_notional | 名义上允许的最大头寸.默认值为 1000000.没有 | |
order_notional | 每个订单的名义订单.默认值为 max_notional/5. | 没有 |
quote_spread_bps | 基于点差的报价.默认值为 5.没有 | |
max_quote_error_bps | 报价和订单价格之间允许的误差.默认值为 1.没有 | |
max_quote_signal_diff_bps | signal价格和订单价格之间的允许误差. | 没有 |
model | 生成 signal的用户定义模型. | 没有 |
use_bps_thold | 是否用bps表示阈值,即True:threshold = make_thold * 0.0001,False:threhsold = make_thold * tick_size / midpx.默认为假. | 没有 |
make_thold | 您从公允价值下达制造商订单的距离.默认值为 100000.没有 | |
make_mid_pm | 用户定义的中间pricing_models,将用作报价的中间价格. | 是 |
Arb1Strategy:
Arb1Strategy的前腿策略部分.
Field | Description | Mandatory |
---|---|---|
symbol | 策略交易的象征. | 是 |
trade_market | 策略在哪个市场交易. | 是 |
risk_id | 策略所属的策略组合,用于合并计算出的风险. | 是 |
use_margin | 无论是保证金交易. | 是 |
account | 策略在哪个 account中运行.是 | |
rbda | signal方向,当前主要方向是买入或 sell_up. | 是 |
sell_up | sell_up signal. | 是 |
buy_down | 买入 signal. | 是 |
order_notional | 每个订单的 max_notional价值. | 是 |
max_notional | 最大持仓的名义价值. | 是 |
max_risk | 战略投资组合风险敞口的 max_notional价值. | 是 |
Arb2Strategy:
Arb1Strategy的后腿策略部分.
Field | Description | Mandatory |
---|---|---|
symbol | 策略交易的象征. | 是 |
trade_market | 策略在哪个市场交易. | 是 |
risk_id | 策略所属的策略组合,用于合并计算出的风险. | 是 |
use_margin | 无论是保证金交易. | 是 |
account | 策略在哪个 account中运行.是 | |
max_notional | 最大持仓的名义价值. | 是 |
max_risk | 战略投资组合风险敞口的 max_notional价值. | 是 |