feat: 更新网格引擎,添加买卖水平索引以稳定订单侧分配,增强订单计算逻辑

This commit is contained in:
discountry
2025-10-07 02:54:01 +08:00
parent b6a6515677
commit ccb23ecf44
2 changed files with 51 additions and 5 deletions
+22
View File
@@ -219,6 +219,28 @@ describe("GridEngine", () => {
engine.stop();
});
it("keeps level side assignments stable regardless of price", () => {
const adapter = new StubAdapter();
const engine = new GridEngine(baseConfig, adapter, { now: () => 0 });
adapter.emitAccount(createAccountSnapshot(baseConfig.symbol, 0));
adapter.emitOrders([]);
const desiredHigh = (engine as any).computeDesiredOrders(2.45) as Array<{ level: number; side: string }>;
expect(desiredHigh.every((order) => {
const isBuyLevel = order.level <= Math.floor((baseConfig.gridLevels - 1) / 2);
return isBuyLevel ? order.side === "BUY" : order.side === "SELL";
})).toBe(true);
const desiredLow = (engine as any).computeDesiredOrders(1.55) as Array<{ level: number; side: string }>;
expect(desiredLow.every((order) => {
const isBuyLevel = order.level <= Math.floor((baseConfig.gridLevels - 1) / 2);
return isBuyLevel ? order.side === "BUY" : order.side === "SELL";
})).toBe(true);
engine.stop();
});
it("halts the grid and closes positions when stop loss triggers", async () => {
const adapter = new StubAdapter();
const engine = new GridEngine(baseConfig, adapter, { now: () => 0 });