Introduction
Algo 应用程序如何工作?
Algo 应用程序加载配置文件,根据配置创建对象,然后使用属性初始化它们。一些属性可以是另一个对象的名称,应用程序使用它们将对象链接在一起并形成计算树。然后应用程序使用市场数据事件和时间事件驱动计算树,生成交易信号并发送/取消订单。
算法用户通常从第三方获得交易逻辑组件,并在开始他们的研究过程时实施一些额外的组件。一旦组件在那里,他们大多花时间手动、编程或通过模型拟合过程生成配置文件。因此配置成为交易策略开发过程中的关键。
使用 Json 创建交易逻辑
每个基于 Apifiny 算法的应用程序都使用一个 json 配置文件来指定其环境并组装交易逻辑。下面是一个例子:
{
"instance": {
"log_path": "./logs/strategy_demo",
"name": "strategy_demo",
},
"servers": {
"redis_server": "127.0.0.1"
},
"apikeys": {
"BINANCEUS": {
"key": "ccdaskfasdjkfjko",
"secret": "asdfasdfasdfasdf"
}
},
"fees": {
"BINANCEUS": {
"make": 0.0,
"take": 0.000462
}
},
"exchanges":
[
{"exchange":"BINANCEUS","trade_type":"Direct","market_data_type":"Direct"}
],
"risk_formulas": [
["Port_Risk", ["RiskFormula", {"components": [[["BTCUSDT", "BINANCEUS"], 1.0]]}]]
],
"accounts": [
[10001, ["Account", {"risk_formulas": ["Port_Risk"], "id": 10001}]]
],
"symbols": [
{"port": ["BTCUSDT", "BINANCEUS"], "cid": 10000}
],
"samplers": [
["ts_basis", ["TimeSampler", {"halflife": 1, "msecs": 100}]]
],
"pricing_models": [
["BTCUSDT.midpx", ["MidPx", {"port": ["BTCUSDT", "BINANCEUS"]}]],
["BTCUSDT.Vwap", ["Vwap", {"port": ["BTCUSDT", "BINANCEUS"], "sampler": "ts_basis"}]]
],
"variables": [
["Zero", ["Const", {"value": 0.0}]]
],
"models": [
["Zero_m", ["LinearModel", {"variable": "Zero"}]]
],
"strategies": [
["BTCUSDT.BINANCEUS", ["CCEventMakerStrategy", {"symbol": "BTCUSDT", "trade_market": "BINANCEUS", "account": 10001, "dep_pm": "BTCUSDT.midpx", "model": "Zero_m", "VWap": "BTCUSDT.Vwap", "max_spread_bps": 5, "max_quote_frombbo_bps": 0.001, "update_quote_bps": 2, "quote_bps": 3, "allowed_bps": 5, "order_notional": 500, "max_notional": 2500, "max_risk": 2500, "cooloff": 100, "start_time": "00:30:00", "end_time": "23:59:59", "use_separate_logs": true, "close_mode": "none"}]]
]
}
C++ 编程接口
Apifiny Algo 为用户提供了丰富的编程接口。从概念上讲,我们可以将 API 分为 2 组:
- 高级:Quants/traders 使用 c++ 来实现算法组件,例如采样器、定价模型、变量和策略。
- 低级:交易者/开发人员可以直接访问库的各个方面,例如市场数据回调、下单 API、历史数据播放器等。
交易研究
Algo 提供模拟(回测)和数据生成功能。您可以创建基于规则的交易策略并运行模拟来测试它,或者生成数据并使用机器学习方法来拟合模型。
Quant 库
前面的教程展示了 Apfiny Algo SDK 提供了一个灵活的高性能交易引擎,您可以在它之上创建复杂的交易应用程序。然而,交易者仍然需要代码算法、执行逻辑、投资组合逻辑和风险管理逻辑来进行实际交易。这可以通过量化库来缓解。 Apifiny 将很快为用户提供标准量化库。安装此库后,您很可能只需要编辑 json 配置文件即可进行大部分研究和实时交易。
Apfiny Algo 被设计为可扩展的,它允许第 3 方开发量化库并将其分发给公众。可以同时使用多个库。