File tree Expand file tree Collapse file tree 1 file changed +16
-2
lines changed
android/app/src/main/java/bitshares Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -1540,8 +1540,22 @@ class ChainObjectManager {
15401540 n_mssr = bigDecimalfromAmount(current_feed.getString(" maximum_short_squeeze_ratio" ), 3 )
15411541 n_mcr = bigDecimalfromAmount(current_feed.getString(" maintenance_collateral_ratio" ), 3 )
15421542
1543- // 1、计算爆仓成交价 feed / mssr
1544- call_price = feed_price.divide(n_mssr, kBigDecimalDefaultMaxPrecision, kBigDecimalDefaultRoundingMode)
1543+ // 爆仓费率 core 4.0
1544+ val mcfr = bitasset.getJSONObject(" options" ).optJSONObject(" extensions" )?.optString(" margin_call_fee_ratio" , null )
1545+
1546+ // 1、计算爆仓成交价
1547+ // core 4.0之前:feed / mssr
1548+ // core 4.0之后:feed / (mssr - mcfr)
1549+ if (mcfr != null ) {
1550+ val n_mcfr = bigDecimalfromAmount(mcfr, 3 )
1551+ var n_numerator = n_mssr.subtract(n_mcfr)
1552+ if (n_numerator < BigDecimal .ONE ) {
1553+ n_numerator = BigDecimal .ONE
1554+ }
1555+ call_price = feed_price.divide(n_numerator, kBigDecimalDefaultMaxPrecision, kBigDecimalDefaultRoundingMode)
1556+ } else {
1557+ call_price = feed_price.divide(n_mssr, kBigDecimalDefaultMaxPrecision, kBigDecimalDefaultRoundingMode)
1558+ }
15451559 call_price_market = call_price
15461560 if (invert) {
15471561 call_price_market = BigDecimal .ONE .divide(call_price, kBigDecimalDefaultMaxPrecision, kBigDecimalDefaultRoundingMode)
You can’t perform that action at this time.
0 commit comments