Skip to content

Commit 4428360

Browse files
authored
feat: configure Unimind circuit breaker (#642)
1 parent a0feb18 commit 4428360

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

lib/crons/unimind-algorithm.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {
2222
UNIMIND_UPDATE_THRESHOLD,
2323
UNIMIND_CIRCUIT_BREAKER_MAX_BATCH,
2424
UNIMIND_CIRCUIT_BREAKER_MIN_ORDERS,
25+
UNIMIND_CIRCUIT_BREAKER_FILL_RATE_THRESHOLD,
2526
} from '../util/constants'
2627
import { median } from '../util/unimind'
2728

@@ -156,11 +157,11 @@ export async function updateParameters(
156157
const statistics = getStatistics(pairOrders.orders, log)
157158
const batchMetrics = calculateBatchMetrics(statistics)
158159

159-
// Check circuit breaker: early batches with zero fill rate
160-
const circuitBreakerTriggered = shouldCheckCircuitBreaker && batchMetrics.fillRate === 0
160+
// Check circuit breaker: early batches with low fill rate
161+
const circuitBreakerTriggered = shouldCheckCircuitBreaker && batchMetrics.fillRate <= UNIMIND_CIRCUIT_BREAKER_FILL_RATE_THRESHOLD
161162
if (circuitBreakerTriggered) {
162163
log.info(
163-
`Unimind updateParameters: Circuit breaker triggered for pair ${pairKey} (batch ${pairData.batchNumber}) - fillRate is 0 after ${totalCount} orders`
164+
`Unimind updateParameters: Circuit breaker triggered for pair ${pairKey} (batch ${pairData.batchNumber}) - fillRate ${batchMetrics.fillRate} <= ${UNIMIND_CIRCUIT_BREAKER_FILL_RATE_THRESHOLD} after ${totalCount} orders`
164165
)
165166
}
166167

@@ -218,7 +219,7 @@ export async function updateParameters(
218219
log.info(
219220
`Unimind updateParameters: Circuit breaker not triggered for pair ${pairKey} - fillRate ${batchMetrics.fillRate.toFixed(
220221
3
221-
)} > 0, not updating parameters yet`
222+
)} > ${UNIMIND_CIRCUIT_BREAKER_FILL_RATE_THRESHOLD}, not updating parameters yet`
222223
)
223224
// Update the count only
224225
await unimindParametersRepo.put({

lib/util/constants.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ export const DEFAULT_UNIMIND_PARAMETERS = JSON.stringify({
4545
})
4646
export const UNIMIND_UPDATE_THRESHOLD = 25
4747
export const UNIMIND_CIRCUIT_BREAKER_MAX_BATCH = 5 // Circuit breaker active for batches 0-5
48-
export const UNIMIND_CIRCUIT_BREAKER_MIN_ORDERS = 5 // Order count to begin checking circuit breaker
48+
export const UNIMIND_CIRCUIT_BREAKER_MIN_ORDERS = 4 // Order count to begin checking circuit breaker
49+
export const UNIMIND_CIRCUIT_BREAKER_FILL_RATE_THRESHOLD = 25 // Fill rate at or below this value triggers circuit breaker
4950
export const UNIMIND_DEV_SWAPPER_ADDRESS = '0x2b813964306D8F12bdaB5504073a52e5802f049D'
5051
// Direct pi and tau to use for curve; Not intrinsicValues
5152
export const PUBLIC_STATIC_PARAMETERS = {

0 commit comments

Comments
 (0)