line inversion fixes

This commit is contained in:
Tim
2024-05-08 15:14:40 -04:00
parent a68c4a4b05
commit 35eb18618d
6 changed files with 65 additions and 27 deletions

View File

@@ -26,7 +26,7 @@ import {useOrderStore} from "@/store/store";
import LimitPrice from "@/components/LimitPrice.vue";
import Order from "@/components/Order.vue";
import {computed, ref} from "vue";
import {applyLimit} from "@/orderbuild.js";
import {applyLimitOld} from "@/orderbuild.js";
import {validateRequired, validateTranches} from "@/validate.js";
import {MAX_FRACTION, newTranche} from "@/blockchain/orderlib.js";
@@ -81,7 +81,7 @@ function buildTranches() {
// todo optional deadline
const fraction = Math.min(MAX_FRACTION, Math.ceil(MAX_FRACTION * fractions.value[i]) )
const tranche = newTranche({fraction})
applyLimit(tranche, rungs.value[i])
applyLimitOld(tranche, rungs.value[i])
ts.push(tranche)
}
return ts

View File

@@ -29,7 +29,7 @@ import {useOrderStore} from "@/store/store";
import LimitPrice from "@/components/LimitPrice.vue";
import Order from "@/components/Order.vue";
import {computed, ref} from "vue";
import {applyLimit} from "@/orderbuild.js";
import {applyLimitOld} from "@/orderbuild.js";
import {validateRequired, validateTranches} from "@/validate.js";
import {MAX_FRACTION, newTranche} from "@/blockchain/orderlib.js";
@@ -84,7 +84,7 @@ function buildTranches() {
// todo optional deadline
const fraction = Math.min(MAX_FRACTION, Math.ceil(MAX_FRACTION * fractions.value[i]) )
const tranche = newTranche({fraction})
applyLimit(tranche, rungs.value[i])
applyLimitOld(tranche, rungs.value[i])
ts.push(tranche)
}
return ts

View File

@@ -10,7 +10,7 @@
import {routeInverted, SingletonCoroutine, vAutoSelect} from "@/misc.js";
import Order from "@/components/Order.vue";
import LimitPrice from "@/components/LimitPrice.vue";
import {timesliceTranches, applyLimit} from "@/orderbuild.js";
import {timesliceTranches, applyLimitOld} from "@/orderbuild.js";
import Tranches from "@/components/Tranches.vue";
import {useOrderStore} from "@/store/store.js";
@@ -22,7 +22,7 @@ function buildTranches() {
const price = os.limitPrice
if( price )
for( let i=0; i<ts.length; i++)
applyLimit(ts[i], price)
applyLimitOld(ts[i], price)
return ts
}

View File

@@ -117,13 +117,23 @@ function buildTranches() {
const la = _endpoints.value[0] // use the flatline format which is a vector of length 4, useful for vectorInterpolate()
const lb = _endpoints.value[1]
const ws = weights.value
const symbol = co.selectedSymbol
const inverted = symbol.inverted
const scale = 10 ** -symbol.decimals
const isMinimum = inverted === order.buy
for (let i = 0; i < ws.length; i++) {
const w = ws[i]
const line = ws.length === 1 ? la : vectorInterpolate(la, lb, i/(ws.length-1))
if (inverted) {
// invert prices
line[1] = 1/line[1]
line[3] = 1/line[3]
}
// scale to pool decimals
line[1] *= scale
line[3] *= scale
const t = newTranche({fraction: w * MAX_FRACTION})
const symbol = co.selectedSymbol
console.log('symbol', symbol)
applyLinePoints(t, order.buy, ...line, symbol.decimals, symbol.inverted)
applyLinePoints(t, isMinimum, ...line)
tranches.push(t)
}
return tranches

View File

@@ -81,16 +81,23 @@ function buildTranches() {
console.log('buildTranches', builder, order, tranches)
const ps = prices.value
const ws = weights.value
const symbol = co.selectedSymbol
const scale = 10 ** -symbol.decimals
const inverted = symbol.inverted
const isMinimum = inverted === order.buy
for(let i=0; i<ps.length; i++) {
const p = ps[i]
let p = ps[i]
if (inverted)
p = 1/p
p *= scale
const w = ws[i]
const t = newTranche({
// todo start/end
fraction: w * MAX_FRACTION,
})
const symbol = co.selectedSymbol
console.log('symbol', symbol)
applyLine(t, order.buy, p, 0, symbol.decimals, symbol.inverted)
console.log('symbol', symbol, isMinimum, p)
applyLine(t, isMinimum, p, 0)
tranches.push(t)
}
return tranches