31
中文 (Chinese) / Re: 【喂价讨论】动态调整最低抵押率要求和爆仓惩罚
« on: September 10, 2018, 06:51:50 am »再更新一版,统一了参数,另外把PID参数调整间隔改为10分钟。
主要是希望能够方便观察变化,改成10分钟对pi没啥影响,可能对d有点影响,但应该也不大吧。
其实我觉得这里也许PI控制就够了?D其实作用不大?
Pdex:内盘bitCNY价格
Pf: 当前喂价
premium:溢价百分比
Premium0: 更新周期前的溢价百分比
Tp=4;Ti=6; Td=1; ##PID的几个参数,Ti=6使得当premium>2%时,i在20小时内可从0增加到最大值。
get Pdex, Pf, premium;
premium0=premium;
p=Tp*premium;
i= Pf/Pdex-p-1; ##设置初始值使得初始喂价等于当前喂价
d=0;
while True:
get Pdex, Pf, premium;
if (上次执行后计时器已过去10分钟):
i+=premium/Ti;
if i>0.4: ##给i设定上下限,因为有总体调整幅度的限制,i太大或太小时已经起不到什么作用,反而会延缓回调的速度
i=0.4;
if i<-0.3:
i=-0.3;
d=Td*(premium-premium0);
premium0=premium;
p=Tp*premium;
if p+i+d>0:
feed price = Pdex*min(1+p+i+d, 1.5, 1.2*Pf/Pdex) ##向上调价时,喂价不超过内盘价1.5倍,不超过当前喂价1.2倍
else:
feed price = Pdex*max(1+p+i+d, 0.91*Pf/Pdex)##向下调价时,喂价不得低于当前喂价0.91倍。
蟹哥的钻研精神令人敬佩,在MSSR内,喂价负反馈浮动的速率越大自是越有利于抑制充值手续费的上涨,这点毋庸置疑;当喂价突破MSSR,即1.1倍当前喂价后,假设BTS恰处高位下来一个台阶后(牛熊转换时期),feed price 一直持续呆在1.2倍,导致后续的爆仓都累积1.1倍处,如果市场持续一段时间的单向走低(这类走势概率并不低),将会满足当前系统约定的黑天鹅触发条件,此时该如何处置?
这里提一个应急解决思路,即系统不以 feed price/MSSR 价格抛爆仓单,而以基准喂价(外盘BTS加权平均价格) 挂爆仓单,给成交的买单赠送5-10%的BTS,这样,内盘的爆仓单相对外盘来说,有折价的优势,便于尽快减少爆仓单的累积,降低黑天鹅的风险。
喂价负反馈超限,即脱离MSSR的保护后,需要其他的爆仓处理模式来合力解除黑天鹅引信。更好的模式可能是初步降MCR到1.5,喂价负反馈不超MSSR,爆仓机制维持原有的,当然,MCR调整bug需前置修复并验证无新bug。