195次发布 (66次破坏)
新功能 0.73.2 | 2024年8月22日 |
---|---|
0.72.0 | 2024年8月3日 |
0.71.4 | 2024年7月31日 |
0.45.0 | 2024年2月27日 |
0.5.7 | 2021年3月29日 |
#7 in 金融
每月下载 1,788次
505KB
6K SLoC
模拟交易杠杆期货交易所(LFEST)
☢️ 这是一个个人项目,使用时请自行承担风险。
lfest-rs 是一个具有杠杆头寸能力的模拟永续期货交易所。
您可以通过 MarketUpdate
枚举提供外部市场数据来更新 MarketState
。您提供的是买卖价格或来自 蜡烛图 的信息。
宏(bba
、candle
)使得构建具体变体变得容易。
为了简化(以及性能),交易所不使用订单簿。
可以使用 Config
和 ContractSpecification
配置交易所。
特性
- 💱 使用
fpdec
crate 进行定点数算术,以实现超级快速且精确的数值计算。 - 🧠 使用 newtype 模式 在函数边界强制执行正确的类型。
示例包括
BaseCurrency
,
QuoteCurrency
,
Fee
,
Leverage
.
这使得无法错误地将表示USD
的值输入到期望表示BTC
的值的函数中。 - 📡 通过
MarketUpdate
类型及其相关宏实现灵活的市场数据集成。 - 💹 集成性能跟踪。
使用现有的FullAccountTracker
或者使用自己的AccountTracker
特性。 - ✔️ 良好的测试覆盖率和高频断言,以确保正确性。
- 🔍 由于代码库小且简洁,因此可审计。
- 📃 支持使用
linear
和inverse
期货合约。 - ⛔ 订单过滤以确保价格和数量遵循某些规则。参见
PriceFilter
QuantityFilter
IsolatedMarginRiskEngine
- 使用双重记账法以确保会计等式始终成立。
订单类型
支持以下订单类型:
Market
:积极执行最佳买入/卖出报价Limit
:被动地将订单放入订单簿
性能指标
当使用 FullTrack
AccountTracker
时,以下性能指标可用,
但您也可以通过实现 AccountTracker
特性来自定义任何性能指标。
win_ratio
:胜利次数 / 总交易次数profit_loss_ratio
:平均胜利金额 / 平均损失金额total_rpnl
:总实现盈亏sharpe
:年化夏普比率sortino
:年化特林诺比率cumulative fees
:支付给交易所的总额度费用max_drawdown_wallet_balance
:钱包余额从高点下降的最大比例。max_drawdown_total
:包括未实现盈亏的回撤。max_drawdown_duration
:最长回撤的持续时间。num_trades
:执行的总交易次数。turnover
:执行的总数量。trade_percentage
:交易次数 / 总交易机会次数buy_ratio
:购买次数 / 总交易次数limit_order_fill_ratio
limit_order_cancellation_ratio
historical_value_at_risk
cornish_fisher_value_at_risk
d_ratio
可能还有其他我遗漏的指标。其中一些指标的表现可能与你预期的不同,所以请确保查看代码。
如何使用
要在您的项目中使用此包,请在您的 Cargo.toml 中添加以下内容
[dependencies]
lfest = "*" # or lookup newest version on `crates.io`
然后继续在您的代码中使用它。有关示例,请参阅 示例
TODOs
- 适当的清算(参见
update_state
在Exchange
) - 订单簿支持(使用
MatchingEngine
) - 资金利率(支持
settle_funding_period
在ClearingHouse
) - 多个账户(低优先级)
- 多个市场(低优先级)
- 多市场类似
SPAN
的投资组合RiskEngine
- 支持更新头寸的杠杆。
- 支持自动去杠杆化
- 基准测试
- 更多单元测试。
- 模糊测试?
贡献
非常愿意看到您使用并为此项目做出贡献。即使只是添加更多测试也是受欢迎的。
捐赠 💰 💸
如果您想支持此包的开发,请随时发送捐赠
Monero (XMR) 地址
47xMvxNKsCKMt2owkDuN1Bci2KMiqGrAFCQFSLijWLs49ua67222Wu3LZryyopDVPYgYmAnYkSZSz9ZW2buaDwdyKTWGwwb
许可证
版权 (C) 2020 <Mathis Wellmann [email protected]>
本程序是自由软件:您可以按照自由软件基金会发布的 GNU Affero 通用公共许可证的条款重新分发和/或修改它,许可证版本为 3 或(根据您的选择)任何较新版本。
本程序以供使用为目的进行分发,但没有任何保证;甚至没有对商售性或特定用途适用性的暗示性保证。有关更多信息,请参阅GNU Affero通用公共许可证。
您应该已经随本程序收到了一份GNU Affero通用公共许可证的副本。如果没有,请参阅https://www.gnu.org/licenses/。
依赖项
~5–13MB
~139K SLoC