更新 .env.example 和 README.md,添加新的交易配置项(如 PROFIT_LOCK_TRIGGER_USD、PRICE_TICK 和 QTY_STEP),并在代码中实现相应的逻辑以支持这些配置,提升交易策略的灵活性和可配置性。

This commit is contained in:
discountry
2025-09-24 20:07:21 +08:00
parent e087191fad
commit bbf8ecfead
8 changed files with 209 additions and 59 deletions
+15 -4
View File
@@ -1,9 +1,20 @@
export function toPrice1Decimal(price: number): number {
return Math.floor(price * 10) / 10;
export function roundDownToTick(value: number, tick: number): number {
if (!Number.isFinite(value) || !Number.isFinite(tick) || tick <= 0) return value;
const scaled = Math.floor(value / tick) * tick;
// Avoid floating residuals
return Number(scaled.toFixed(Math.max(0, decimalsOf(tick))));
}
export function toQty3Decimal(qty: number): number {
return Math.floor(qty * 1000) / 1000;
export function roundQtyDownToStep(value: number, step: number): number {
if (!Number.isFinite(value) || !Number.isFinite(step) || step <= 0) return value;
const scaled = Math.floor(value / step) * step;
return Number(scaled.toFixed(Math.max(0, decimalsOf(step))));
}
export function decimalsOf(step: number): number {
const s = step.toString();
if (!s.includes(".")) return 0;
return s.split(".")[1].length;
}
export function isNearlyZero(value: number, epsilon = 1e-5): boolean {