feat(web): 模拟盘前端(点亮入口+router+New/Result页+归因/拒单展示)
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
import { apiClient } from './client'
|
||||
|
||||
export interface StrategyCfg {
|
||||
name: string
|
||||
params: Record<string, unknown>
|
||||
match_session: string
|
||||
symbol: string
|
||||
listing_days?: number
|
||||
}
|
||||
|
||||
export interface PaperCreate {
|
||||
mode: string
|
||||
interval: string
|
||||
symbols: string[]
|
||||
strategies: StrategyCfg[]
|
||||
initial_capital: number
|
||||
start: string
|
||||
end: string
|
||||
}
|
||||
|
||||
export interface PaperAccount {
|
||||
id: number
|
||||
name: string
|
||||
mode: string
|
||||
interval: string
|
||||
status: string
|
||||
}
|
||||
|
||||
export interface BalancePoint {
|
||||
date: string
|
||||
cash: number
|
||||
market_value: number
|
||||
total_equity: number
|
||||
is_checkpoint: number
|
||||
}
|
||||
|
||||
export interface PaperTrade {
|
||||
strategy_id: string
|
||||
symbol: string
|
||||
direction: string
|
||||
price: number
|
||||
volume: number
|
||||
commission: number
|
||||
rejected: number
|
||||
reject_reason: string
|
||||
bar_date: string
|
||||
}
|
||||
|
||||
export interface StrategySummary {
|
||||
strategy_id: string
|
||||
total_orders: number
|
||||
filled: number
|
||||
rejected: number
|
||||
commission: number
|
||||
}
|
||||
|
||||
export async function createPaper(req: PaperCreate): Promise<number> {
|
||||
const { data } = await apiClient.post<{ account_id: number }>('/paper/create', req)
|
||||
return data.account_id
|
||||
}
|
||||
|
||||
export async function getPaper(aid: number): Promise<PaperAccount> {
|
||||
const { data } = await apiClient.get<PaperAccount>(`/paper/${aid}`)
|
||||
return data
|
||||
}
|
||||
|
||||
export async function getEquity(aid: number): Promise<BalancePoint[]> {
|
||||
const { data } = await apiClient.get<BalancePoint[]>(`/paper/${aid}/equity`)
|
||||
return data
|
||||
}
|
||||
|
||||
export async function getTrades(aid: number): Promise<PaperTrade[]> {
|
||||
const { data } = await apiClient.get<PaperTrade[]>(`/paper/${aid}/trades`)
|
||||
return data
|
||||
}
|
||||
|
||||
export async function getStrategies(aid: number): Promise<StrategySummary[]> {
|
||||
const { data } = await apiClient.get<StrategySummary[]>(`/paper/${aid}/strategies`)
|
||||
return data
|
||||
}
|
||||
Reference in New Issue
Block a user