전략편집기 수정
This commit is contained in:
@@ -7,6 +7,7 @@ import { getKoreanName } from '../utils/marketNameCache';
|
||||
import { MarketSearchPanel } from './MarketSearchPanel';
|
||||
import type { TradeOrderFillRequest } from '../types';
|
||||
import { placePaperOrder } from '../utils/backendApi';
|
||||
import { coerceFiniteNumber } from '../utils/safeFormat';
|
||||
|
||||
export type OrderKind = 'limit' | 'market' | 'stop_limit';
|
||||
|
||||
@@ -140,7 +141,8 @@ const TradeOrderPanel: React.FC<TradeOrderPanelProps> = ({
|
||||
|
||||
const price = parseNum(priceStr);
|
||||
const qty = parseNum(qtyStr);
|
||||
const step = priceStep(price > 0 ? price : (tradePrice ?? 0));
|
||||
const refPrice = coerceFiniteNumber(tradePrice) ?? 0;
|
||||
const step = priceStep(price > 0 ? price : refPrice);
|
||||
|
||||
useEffect(() => {
|
||||
if (orderKind === 'market') {
|
||||
@@ -156,7 +158,7 @@ const TradeOrderPanel: React.FC<TradeOrderPanelProps> = ({
|
||||
if (isBuy) {
|
||||
if (orderKind === 'market' || availableKrw <= 0) return;
|
||||
const budget = (availableKrw * pct) / 100;
|
||||
const p = orderKind === 'limit' && price > 0 ? price : (tradePrice ?? 0);
|
||||
const p = orderKind === 'limit' && price > 0 ? price : refPrice;
|
||||
if (p > 0) {
|
||||
const q = budget / p;
|
||||
setQtyStr(q >= 1 ? q.toFixed(8).replace(/\.?0+$/, '') : q.toFixed(8));
|
||||
@@ -166,13 +168,13 @@ const TradeOrderPanel: React.FC<TradeOrderPanelProps> = ({
|
||||
if (availableCoinQty <= 0) return;
|
||||
const q = (availableCoinQty * pct) / 100;
|
||||
setQtyStr(q >= 1 ? q.toFixed(8).replace(/\.?0+$/, '') : q.toFixed(8));
|
||||
}, [isBuy, availableKrw, availableCoinQty, orderKind, price, tradePrice]);
|
||||
}, [isBuy, availableKrw, availableCoinQty, orderKind, price, refPrice]);
|
||||
|
||||
const bumpPrice = useCallback((delta: number) => {
|
||||
const base = price > 0 ? price : (tradePrice ?? 0);
|
||||
const base = price > 0 ? price : refPrice;
|
||||
const next = Math.max(0, base + delta);
|
||||
setPriceStr(fmtKrw(next));
|
||||
}, [price, tradePrice]);
|
||||
}, [price, refPrice]);
|
||||
|
||||
const handleReset = useCallback(() => {
|
||||
setOrderKind('limit');
|
||||
|
||||
Reference in New Issue
Block a user