跳到主要内容

核心概念

TL;DR
  • 金库在毕业时获得募资的 30%(以股票计),只能在上架指定的池子中、健康门打开时以这只股票与 USDG 进行交易。
  • 七种策略:分批止盈、回购销毁、固定仓位、再平衡、按比例回购、循环、预留现金的分批止盈;均在发射时冻结,owner 只能通过两天控制器升级逻辑。
  • keeper 是任何人都可以运行的机器人,负责发送每个动作并获得产出的 0.1%;金库的收益用于回购代币并销毁。
  • 持币人对金库本身没有索取权(目前没有,后续可以增加)。分批止盈、再平衡、循环有回测模型,其余没有。

金库模型​

一次发射创建一个金库。毕业时金库获得募资的 30%(以股票计),运行发币人在发射前选定的一种策略。金库只能在上架指定的池子中, 以这只股票与 USDG 进行交易,且仅在健康门打开时交易:Chainlink 价格新鲜、交易日历显示开盘、池价与这个价格和池子自身 600 秒 均价的偏差都在 0.5% 以内、每笔交易在偏离价格 1% 的滑点限制内成交。休市、价格过期或池价被推离时,股票一侧的交易即暂停;代币一侧 照常交易。

所有策略共用一套基础流程。keeper 是任何人都可以运行的机器人,动作到期即发送,获得动作产出的 0.1%(bountyBps 10)。通过税收份额或捐赠转入的 股票计为收入,须先由 book() 按当时价格记账,策略方可使用。留作销毁的股票存放在 buybackStock;buyback() 用其在代币自身的池子中 买入代币,最多每 10 秒一次,按池子 600 秒均价定价、价格冲击不超过 3%,买入的代币全部销毁。买入侧的池子手续费由 collectFees() 记入 buybackStock,卖出侧的池子手续费由同一次调用销毁。被销毁的共有三项:开盘加价、回购、池子手续费的代币一侧。

七种策略​

分批止盈(Lots,类型 0)​

持有股票,上涨至目标价时卖出一部分,回落后再买回。所得利润用于买入代币并销毁。 毕业股票按当日价格记为一个 lot。价格高出成本 tp1Bps 时卖出一半,再高出 tp2Bps 时卖出其余;本金换回 USDG,利润以股票形式留待 销毁。价格比上次卖出价低 dipBps 时,以 USDG 的 lotBps 买入一个新 lot。止损为可选项,是 lot 低于成本卖出的唯一途径。

动作:上涨:tp1Bps 时卖出半个 lot,tp2Bps 时卖出其余;下跌:比上次卖出价低 dipBps 时买入新 lot;设置止损时,低于成本 stopBps 卖出;费用到账:记为新 lot;buyback() 每次使用 500 USDG 的利润(buybackChunkUsdg)。 发射时冻结:上表中的每个数字,以及上架的门限。owner 可通过两天控制器升级的:仅逻辑;升级必须沿用相同的冻结配置。回测模型:有。

字段含义范围或下限发布默认值
tp1Bps第一档止盈,高于成本大于 0;没有执行成本下限发币人定
tp2Bps第二档止盈0(整个 lot 在 tp1Bps 卖出),或大于 tp1Bps发币人定
dipBps触发买入的回调幅度,即低于上次卖出价的幅度0 到 100% 之间发币人定
stopBps低于成本卖出;0 = 永不小于 100%发币人定
lotBps一次回调买入所用的 USDG 储备份额发币人定
buybackChunkUsdg一次回购的出价500 USDG

回购销毁(Buy-back,类型 1)​

股票始终持有不动。每一笔手续费都用于买入代币并销毁。 金库不开设股票仓位。毕业股票受保护,永不支出。每笔税收份额、池子手续费和捐赠均计入 buybackStock,由 buyback() 分块销毁。动作:上涨或下跌:不操作;费用到账:由 buyback() 支出,每 10 秒一块。 冻结:受保护的毕业股票和回购节奏。可升级:仅逻辑。回测模型:无。

字段含义范围或下限发布默认值
stopBps接受;非零值必须大于滑点 + 池费率 + 报酬0
tp1Bps、tp2Bps、dipBps、lotBps接受但忽略

固定仓位(Spot,类型 2)​

股票和现金按固定比例持有,例如股票七成、现金三成。上涨较多时少量卖出,下跌较多时少量买入,每次按固定金额交易。 金库将可交易价值的目标比例以股票形式持有,比例偏出目标周围的区间时通过交易恢复。由一个 policy 合约提议动作,金库依据冻结的限制核对 后再执行兑换。单笔规模为固定的 USDG 金额。

动作:上涨:股票占比越过 targetBps + 区间:卖出至目标;高于平均成本的收益按 payoutBps 计入 buybackStock;下跌:股票占比跌破 targetBps − 区间:买入至目标;费用到账:按当时价格记入库存。 冻结:六个字段和 policy。可升级:仅逻辑。回测模型:无。

字段含义范围或下限发布默认值
targetBps持有股票的可交易价值份额20% 到 90%发币人定
deadbandBps目标周围的区间至少 2 × (滑点 + 池费率 + 报酬);小于目标;目标 + 区间小于 100%发币人定
cooldown两次动作的最短间隔60 秒前端建议 600 秒
payoutBps卖出收益中送去销毁的份额0 到 100%发币人定
maxTradeUsdg单次动作的最大交易额上架的 minLotUsdg(5 USDG)到 sellChunkUsdg(2,000 USDG)发币人定
maxDailyTurnoverUsdg一个美股交易日的最大交易额maxTradeUsdg 到 24 × maxTradeUsdg发币人定

再平衡(Rebalance,类型 3)​

同样按固定比例持有,每次调整持仓的一定百分比,金库规模越大,单笔交易越大。 卖出所得净现金先用于覆盖卖出部分的成本和已记录的亏损,剩余收益方用于销毁。

动作:上涨:卖出超出目标的部分,一次最多为可交易股票的 sellBps;下跌:买入至目标,一次最多为可用 USDG 的 buyBps;费用到账:按当时价格记入库存。 冻结:全部字段和 policy。可升级:仅逻辑。回测模型:有。

字段含义范围或下限发布默认值
targetBps持有股票的可交易价值份额20% 到 90%发币人定
区间目标周围的区间至少池费率 + 报酬;小于目标;目标 + 区间小于 100%发币人定
cooldown两次动作的最短间隔60 秒前端建议 600 秒
payoutBps卖出收益中送去销毁的份额0 到 100%发币人定
buyBps、sellBps单次上限,按现金或可交易股票的份额计0.01% 到 25%发币人定
当日买入、当日卖出当日上限,各自采用对应的基数0.01% 到 100%发币人定

按比例回购(类型 4)​

交易方式与分批止盈相同,只是每次回购仅使用回购预算的十分之一。 相对分批止盈只改动一处:每次 buyback() 支出待用 buybackStock 的十分之一,不足上架最小 lot 时提高至最小 lot,因此任何规模的预算都在相同 的步数内出清。

参数:tp1Bps、tp2Bps、dipBps、lotBps 同分批止盈;非零 stopBps 必须大于滑点 + 池费率 + 报酬;回购份额固定为 10%。

冻结与可升级:同分批止盈。回测模型:交易规则沿用分批止盈的模型。

循环(Cycle,类型 5)​

交易方式与分批止盈相同,卖出后股票若继续上涨,再买回一次。 在分批止盈基础上增加一次再入场:一次实际卖出之后,价格比该次卖出价高 dipBps 时再买入一次,规模与回调买入相同,前提是已过至少 600 秒且有更新的 价格报告。任何一次买入都会消耗这一入场机会。回购每次支出预算的十分之一,与按比例回购相同。

动作:上涨:止盈同分批止盈;卖出后价格再高出 dipBps,回补买入一次;下跌:回调买入同分批止盈;设置止损时执行止损;费用到账:记为 lot;回购每次十分之一。 档位下限由金库自行检查,报价环节不检查:低于下限的报价会被接受,但在发射时失败。冻结与可升级:同分批止盈。回测模型:有。

字段含义范围或下限发布默认值
tp1Bps、dipBps同分批止盈至少 2 × (滑点 + 池费率):1% 滑点默认值下,0.05% 的池 2.1%,0.30% 的池 2.6%发币人定
tp2Bps、lotBps同分批止盈同分批止盈发币人定
stopBps同分批止盈;非零值必须大于滑点 + 池费率 + 报酬发币人定

预留现金的分批止盈(Lots with reserve,类型 6)​

交易方式与分批止盈相同,只是先将一部分毕业股票换成现金,以便第一次下跌时即可抄底。 毕业时金库获得确切的股票本金,其中 reserveBps 为储备目标。没有到期的止损或止盈时,keeper 每次调用将毕业股票卖出一块换成 USDG(上架的 sellChunkUsdg,偏离预言机不超过 maxSlippageBps,从不按仅由池子担保的价格),并将抄底参考价移至此次卖出价。卖出所得 为储备而非利润,从不用于回购。目标份额卖出完毕后,规则即为分批止盈,抄底使用储备现金。

动作:毕业后:分块卖出毕业股票,直至其中 reserveBps 转为现金;上涨:止盈同分批止盈;下跌:使用储备抄底,同分批止盈,受可选 限额约束;设置止损时执行止损;费用到账:记为 lot;buyback() 每次使用 500 USDG 的利润,同分批止盈。档位下限同循环,检查方式也相同。 冻结与可升级:同分批止盈。回测模型:没有。

字段含义范围或下限发布默认值
tp1Bps、dipBps同分批止盈至少 2 × (滑点 + 池费率),同循环发币人定
tp2Bps、lotBps、stopBps同分批止盈同分批止盈发币人定
reserveBps卖出作为储备现金的毕业股票份额0 到 50%;0 即普通分批止盈;超过 50% 发射回滚发币人定
cashFloorBps抄底时必须保留的现金0 到 100%;0 = 不设底线0
dipBudgetBps金库存续期内所有抄底的支出上限0 到 100%;0 = 不设预算0
maxDipBuys金库存续期内的抄底次数上限0 = 不限0

底线和预算均按毕业股票的 USDG 价值计,在毕业记账时冻结;之后的卖出、费用和价格变化均不改变它们。配置为 engine 版本 3、schema 4, 搭配 V2LotReservePolicy:words[0] 是 reserveBps,words[1] 打包 cashFloorBps(0 到 15 位)、dipBudgetBps(16 到 31 位)和 maxDipBuys(32 到 47 位),words[2] 为零。

策略比较​

毕业时金库仅获得股票,USDG 为零。固定仓位和再平衡在第一次动作时即将股票卖至目标比例,换出现金;预留现金的分批止盈在毕业后 分块卖出选定的份额;分批止盈、按比例回购和循环须等到第一次止盈或止损,才有现金用于抄底;回购销毁从不持有现金。

分批止盈回购销毁固定仓位再平衡按比例回购循环预留现金的分批止盈
能否持有、使用现金能,回调时以现金买入新 lot不持有,股票不交易能,按目标比例管理能,按目标比例管理能,同分批止盈能,同分批止盈能,毕业时建立储备
毕业后的现金来源等待止盈或止损卖出;不主动建立初始现金仓不卖出股票,没有现金仓股票占比高于目标时主动卖出换成 USDG,无需等待止盈;每次最多 maxTradeUsdg同固定仓位;每次最多卖出可交易股票的 sellBps同分批止盈先通过止盈或止损获得现金,再抄底或回补;初始仍为零现金毕业后分块卖出毕业股票的 reserveBps(0 到 50%);之后同分批止盈
下跌时持有股票是,抄底是,从不交易买回目标买回目标是,抄底是,抄底是,用储备抄底
上涨时卖出两档目标不卖出超出目标的部分超出目标的部分两档目标两档目标两档目标
卖出后再买回只在回调时不买跌破区间时跌破区间时只在回调时回调时,或继续上涨时回调时,包括第一次
回购预算来源利润、池子手续费全部收入收益份额、池子手续费收益份额、池子手续费利润、池子手续费利润、池子手续费利润、池子手续费
回测模型有没有没有有沿用分批止盈有没有

后续可能增加的功能​

以下各项均处于计划或考虑阶段,后续可以增加;均不构成承诺。

  • 分红和收入策略。 将已实现收入支付给持币人或质押者的金库,已存在于源码中,尚未注册。这类金库的持币人将对其收入拥有索取权; 现有的代理金库可以通过升级采用。
  • 按净值的百分比再平衡。 交易限额按全部资产(包括金库自身的 LP 和等待回购的预算)的比例计算,而不仅按可交易部分; 目前仅有源码和测试,尚未注册。
  • 去掉循环的档位下限。 使循环采用分批止盈的成本检查,0.01% 的档位也可以发射;计划于 v2.1 推出。
  • 用 ETH 代替股票配对的发射。 计划为 v2.1:曲线和池子以 WETH 报价;持币人承担 ETH 的价格涨跌。
  • 把池子手续费再投入流动性。 池子手续费用于加深锁定的池子,取代为回购提供资金。
  • Builder 一键预设。 具名策略可直接填好发射表单,数字仍可修改。

相关​