交易操作
C# SDK 通过 TradeClient 提供全部交易接口,所有请求使用 TigerRequest<TResponse> 泛型包装,通过 await tradeClient.ExecuteAsync(request) 异步调用。以下为完整可运行示例:
using TigerOpenAPI.Common;
using TigerOpenAPI.Trade;
using TigerOpenAPI.Trade.Response;
using TigerOpenAPI.Trade.Model;
TigerConfig config = new TigerConfig()
{
ConfigFilePath = "/path/to/tiger_openapi_config.properties"
};
TradeClient tradeClient = new TradeClient(config);
// 查询持仓
TigerRequest<PositionResponse> request = new TigerRequest<PositionResponse>()
{
ApiMethodName = TradeApiService.POSITIONS,
ModelValue = new PositionModel() { Account = config.DefaultAccount }
};
PositionResponse response = await tradeClient.ExecuteAsync(request);
Console.WriteLine(response);合约查询
contract 查询合约信息
说明
查询单个合约的详细信息,包括名称、货币、最小交易单位等。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Symbol | string | 是 | 合约代码,如 "AAPL"、"00700" |
| SecType | string | 是 | 合约类型:"STK"(股票)/ "OPT"(期权)/ "FUT"(期货)/ "WAR"(权证)/ "IOPT"(牛熊证) |
返回
ContractResponse,包含合约详情,含 Symbol、Name、Currency、Exchange、LotSize 等字段。
示例
// 查询美股合约
ContractItem contract = ContractItem.BuildStockContract("AAPL", Currency.USD.ToString());
TigerRequest<ContractResponse> request = new TigerRequest<ContractResponse>()
{
ApiMethodName = TradeApiService.CONTRACT,
ModelValue = new ContractModel() { ContractInfo = contract }
};
ContractResponse response = await tradeClient.ExecuteAsync(request);
// 查询港股合约
ContractItem hkContract = ContractItem.BuildStockContract("00700", Currency.HKD.ToString());quoteContract 查询衍生品合约
说明
查询期权或期货等衍生品的合约明细,包含行权价、到期日、合约乘数等衍生品特有字段。
示例
// 美股期权合约
ContractItem optContract = ContractItem.BuildOptionContract("AAPL", "20250117", 150.0D, "CALL");
// 港股权证合约
ContractItem warContract = ContractItem.BuildWarrantContract("13745", "20211217", 719.38D, Right.CALL.ToString());订单操作
Order 对象说明
下单时通过 ContractItem 和 PlaceOrderModel 构造订单对象:
| 字段 | 类型 | 描述 |
|---|---|---|
| Account | string | 账户 ID |
| ContractInfo | ContractItem | 合约信息对象 |
| Action | ActionType | 买卖方向:ActionType.BUY(买入)/ ActionType.SELL(卖出) |
| OrderType | OrderType | 订单类型:OrderType.MKT(市价)/ OrderType.LMT(限价)/ OrderType.STP(止损)/ OrderType.STP_LMT(止损限价)/ OrderType.TRAIL(追踪止损) |
| TotalQuantity | double | 委托数量 |
| LimitPrice | double | 限价价格(LMT / STP_LMT 必填) |
| AuxPrice | double | 触发价格(STP / STP_LMT / TRAIL 必填) |
| TimeInForce | TimeInForce | 有效期:TimeInForce.DAY(当日)/ TimeInForce.GTC(撤单前有效) |
| OutsideRth | bool | 是否允许盘前盘后交易(仅美股) |
placeOrder 下单
tradeClient.ExecuteAsync(request) — 提交订单到交易所
说明
提交订单到交易所。下单成功后返回订单 ID,可用于后续查询和操作。
示例
// 限价买入 AAPL
ContractItem contract = ContractItem.BuildStockContract("AAPL", Currency.USD.ToString());
PlaceOrderModel orderModel = PlaceOrderModel.buildLimitOrder(
config.DefaultAccount, contract, ActionType.BUY, 10, 150.0D);
TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
{
ApiMethodName = TradeApiService.PLACE_ORDER,
ModelValue = orderModel
};
PlaceOrderResponse response = await tradeClient.ExecuteAsync(request);
Console.WriteLine("订单ID: " + response.OrderId);
// 市价卖出
PlaceOrderModel mktOrder = PlaceOrderModel.buildMarketOrder(
config.DefaultAccount, contract, ActionType.SELL, 10);
// 盘前/盘后交易(扩展时段)
PlaceOrderModel extOrder = PlaceOrderModel.buildLimitOrder(
config.DefaultAccount, contract, ActionType.BUY, 5, 148.0D);
extOrder.OutsideRth = true;
extOrder.TimeInForce = TimeInForce.DAY;数据示例
返回数据:
{
"orderId": 12345678,
"status": "Submitted",
"symbol": "AAPL"
}previewOrder 预览订单
说明
在实际下单前预估订单的费用、影响和可行性,不会真正提交到交易所。
示例
ContractItem contract = ContractItem.BuildStockContract("AAPL", Currency.USD.ToString());
PlaceOrderModel orderModel = PlaceOrderModel.buildLimitOrder(
config.DefaultAccount, contract, ActionType.BUY, 10, 150.0D);
TigerRequest<PreviewOrderResponse> request = new TigerRequest<PreviewOrderResponse>()
{
ApiMethodName = TradeApiService.PREVIEW_ORDER,
ModelValue = orderModel
};
PreviewOrderResponse response = await tradeClient.ExecuteAsync(request);
Console.WriteLine("预估费用: " + response.Commission);数据示例
返回数据:
{
"commission": 1.0,
"stampDuty": 0.0,
"levy": 0.0,
"marginRequired": 0.0,
"buyingPowerEffect": -1500.0
}特殊订单类型
止损单(STP)
PlaceOrderModel stpOrder = PlaceOrderModel.buildStopOrder(
config.DefaultAccount, contract, ActionType.SELL, 10, 145.0D);止损限价单(STP_LMT)
PlaceOrderModel stpLmtOrder = PlaceOrderModel.buildStopLimitOrder(
config.DefaultAccount, contract, ActionType.SELL, 10, 145.0D, 144.0D);追踪止损单(TRAIL)
PlaceOrderModel trailOrder = new PlaceOrderModel()
{
Account = config.DefaultAccount,
ContractInfo = contract,
Action = ActionType.SELL,
OrderType = OrderType.TRAIL,
TotalQuantity = 10,
AuxPrice = 5.0D // 追踪金额
};竞价单(AUCTION)
// 竞价市价单 (AM)
PlaceOrderModel amOrder = new PlaceOrderModel()
{
Account = config.DefaultAccount,
ContractInfo = contract,
Action = ActionType.BUY,
OrderType = OrderType.AUCTION_MKT,
TotalQuantity = 10
};
// 竞价限价单 (AL)
PlaceOrderModel alOrder = new PlaceOrderModel()
{
Account = config.DefaultAccount,
ContractInfo = contract,
Action = ActionType.BUY,
OrderType = OrderType.AUCTION_LIMIT,
TotalQuantity = 10,
LimitPrice = 150.0D
};期权下单
ContractItem optContract = ContractItem.BuildOptionContract("AAPL", "20250117", 150.0D, "CALL");
PlaceOrderModel optOrder = PlaceOrderModel.buildLimitOrder(
config.DefaultAccount, optContract, ActionType.BUY, 1, 9.50D);期货下单
ContractItem futContract = ContractItem.BuildFutureContract("ES2506", Currency.USD.ToString());
PlaceOrderModel futOrder = PlaceOrderModel.buildLimitOrder(
config.DefaultAccount, futContract, ActionType.BUY, 1, 5900.0D);modifyOrder 修改订单
说明
修改已提交但未完全成交的订单,可修改价格、数量等参数。仅支持状态为待成交(pending)的订单。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Id | long | 是 | 要修改的订单 ID |
| LimitPrice | double | 否 | 新的限价价格 |
| TotalQuantity | double | 否 | 新的委托数量 |
示例
// 将订单 12345 的限价价格从 150 改为 148
ModifyOrderModel modifyModel = new ModifyOrderModel()
{
Account = config.DefaultAccount,
Id = 12345,
LimitPrice = 148.0D,
TotalQuantity = 10
};
TigerRequest<ModifyOrderResponse> request = new TigerRequest<ModifyOrderResponse>()
{
ApiMethodName = TradeApiService.MODIFY_ORDER,
ModelValue = modifyModel
};
ModifyOrderResponse response = await tradeClient.ExecuteAsync(request);cancelOrder 取消订单
说明
撤销指定订单。只能撤销状态为待成交(pending)的订单,已成交订单无法撤销。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Id | long | 是 | 要撤销的订单 ID |
示例
CancelOrderModel cancelModel = new CancelOrderModel()
{
Account = config.DefaultAccount,
Id = 12345
};
TigerRequest<CancelOrderResponse> request = new TigerRequest<CancelOrderResponse>()
{
ApiMethodName = TradeApiService.CANCEL_ORDER,
ModelValue = cancelModel
};
CancelOrderResponse response = await tradeClient.ExecuteAsync(request);订单查询
orders 查询全部订单
说明
查询当前账户的全部历史订单,包含各种状态。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Account | string | 是 | 账户 ID |
| SecType | string | 否 | 合约类型过滤 |
| Market | Market | 否 | 市场过滤 |
| Symbol | string | 否 | 合约代码过滤 |
| StartTime | long | 否 | 开始时间戳(毫秒) |
| EndTime | long | 否 | 结束时间戳(毫秒) |
| Limit | int | 否 | 返回数量限制,最大 100 |
返回
OrdersResponse,包含订单列表,每条含 Id、Symbol、Action、Status、TotalQuantity、FilledQuantity、LimitPrice、AvgFillPrice、CreateTime 等字段。
示例
TigerRequest<OrdersResponse> request = new TigerRequest<OrdersResponse>()
{
ApiMethodName = TradeApiService.ORDERS,
ModelValue = new OrdersModel() { Account = config.DefaultAccount }
};
OrdersResponse response = await tradeClient.ExecuteAsync(request);数据示例
返回数据:
[
{
"id": 12345678,
"symbol": "AAPL",
"action": "BUY",
"status": "Filled",
"totalQuantity": 10,
"filledQuantity": 10,
"limitPrice": 150.0,
"avgFillPrice": 149.95,
"createTime": 1735042800000
}
]activeOrders 查询待成交订单
说明
查询当前挂单中(未完全成交)的订单列表。
示例
TigerRequest<OrdersResponse> request = new TigerRequest<OrdersResponse>()
{
ApiMethodName = TradeApiService.ACTIVE_ORDERS,
ModelValue = new OrdersModel() { Account = config.DefaultAccount }
};
OrdersResponse response = await tradeClient.ExecuteAsync(request);filledOrders 查询已成交订单
说明
查询所有已完全成交的订单列表。
示例
TigerRequest<OrdersResponse> request = new TigerRequest<OrdersResponse>()
{
ApiMethodName = TradeApiService.FILLED_ORDERS,
ModelValue = new OrdersModel() { Account = config.DefaultAccount }
};
OrdersResponse response = await tradeClient.ExecuteAsync(request);inactiveOrders 查询已撤销订单
说明
查询已撤销或已过期的订单列表。
示例
TigerRequest<OrdersResponse> request = new TigerRequest<OrdersResponse>()
{
ApiMethodName = TradeApiService.INACTIVE_ORDERS,
ModelValue = new OrdersModel() { Account = config.DefaultAccount }
};
OrdersResponse response = await tradeClient.ExecuteAsync(request);orderTransactions 查询成交明细
说明
查询指定订单的逐笔成交明细,一个订单可能分多笔成交。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Id | long | 是 | 订单 ID |
示例
TigerRequest<TransactionsResponse> request = new TigerRequest<TransactionsResponse>()
{
ApiMethodName = TradeApiService.ORDER_TRANSACTIONS,
ModelValue = new TransactionModel() { Id = 12345 }
};
TransactionsResponse response = await tradeClient.ExecuteAsync(request);数据示例
返回数据:
[
{
"id": 12345,
"filledQuantity": 5,
"filledPrice": 149.90,
"commission": 0.5,
"filledTime": 1735042810000
},
{
"id": 12345,
"filledQuantity": 5,
"filledPrice": 150.00,
"commission": 0.5,
"filledTime": 1735042820000
}
]持仓与资产
positions 查询持仓
说明
查询当前账户的所有持仓信息,包括股票、期权、期货等各类合约。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Account | string | 是 | 账户 ID |
| SecType | string | 否 | 合约类型过滤 |
| Market | Market | 否 | 市场过滤 |
| Symbol | string | 否 | 合约代码过滤 |
返回
PositionResponse,包含持仓列表,每条含 Symbol、Quantity、AverageCost、MarketValue、UnrealizedPnl、RealizedPnl 等字段。
示例
TigerRequest<PositionResponse> request = new TigerRequest<PositionResponse>()
{
ApiMethodName = TradeApiService.POSITIONS,
ModelValue = new PositionModel() { Account = config.DefaultAccount }
};
PositionResponse response = await tradeClient.ExecuteAsync(request);数据示例
返回数据:
[
{
"symbol": "AAPL",
"quantity": 100,
"averageCost": 145.50,
"marketValue": 22752.0,
"unrealizedPnl": 2202.0,
"realizedPnl": 500.0
}
]assets 查询资产
说明
查询账户的资产概览,包括账户净值、现金余额、保证金使用情况等。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Account | string | 是 | 账户 ID |
返回
AssetResponse,包含 NetLiquidation(账户净值)、CashBalance、BuyingPower、GrossPositionValue、UnrealizedPnl、RealizedPnl 等字段。
示例
TigerRequest<AssetResponse> request = new TigerRequest<AssetResponse>()
{
ApiMethodName = TradeApiService.ASSETS,
ModelValue = new AssetModel() { Account = config.DefaultAccount }
};
AssetResponse response = await tradeClient.ExecuteAsync(request);数据示例
返回数据:
{
"account": "123456789",
"netLiquidation": 250000.0,
"cashBalance": 50000.0,
"buyingPower": 100000.0,
"grossPositionValue": 200000.0,
"unrealizedPnl": 5000.0,
"realizedPnl": 3000.0
}primeAssets 查询综合账户资产
说明
查询综合账户(Prime 账户)的资产信息,包含各子账户的汇总数据。
示例
TigerRequest<PrimeAssetResponse> request = new TigerRequest<PrimeAssetResponse>()
{
ApiMethodName = TradeApiService.PRIME_ASSETS,
ModelValue = new AssetModel() { Account = config.DefaultAccount }
};
PrimeAssetResponse response = await tradeClient.ExecuteAsync(request);accountList 查询账户列表
说明
查询当前用户下的所有账户列表,包括普通账户、模拟账户等。
示例
TigerRequest<AccountsResponse> request = new TigerRequest<AccountsResponse>()
{
ApiMethodName = TradeApiService.MANAGED_ACCOUNTS
};
AccountsResponse response = await tradeClient.ExecuteAsync(request);
Console.WriteLine("账户列表: " + string.Join(", ", response.Accounts));assetAnalysis 查询历史资产分析
说明
查询账户在一段时间内的历史净值走势和收益分析数据。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Account | string | 是 | 账户 ID |
| StartDate | string | 否 | 开始日期,格式 'YYYYMMDD' |
| EndDate | string | 否 | 结束日期,格式 'YYYYMMDD' |
| Period | string | 否 | 时间粒度:"1D" / "1W" / "1M" 等 |
示例
TigerRequest<AnalysisResponse> request = new TigerRequest<AnalysisResponse>()
{
ApiMethodName = TradeApiService.ASSET_ANALYSIS,
ModelValue = new AnalysisModel()
{
Account = config.DefaultAccount,
StartDate = "20250101",
EndDate = "20250331",
Period = "1D"
}
};
AnalysisResponse response = await tradeClient.ExecuteAsync(request);资金与资产管理
transferFund 查询出入金记录
说明
查询交易账户的出入金(存取款)记录。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Account | string | 是 | 交易账户 ID |
| SegType | SegmentType | 否 | 账户类型:SegmentType.SEC(证券)/ SegmentType.FUT(期货) |
| StartDate | string | 否 | 开始日期,格式 "YYYY-MM-DD" |
| EndDate | string | 否 | 结束日期,格式 "YYYY-MM-DD" |
| Currency | string | 否 | 货币过滤,如 "USD" |
| Page | int | 否 | 页码 |
| Limit | int | 否 | 每页数量 |
返回
DepositWithdrawResponse → List<DepositWithdrawItem>
| 字段 | 类型 | 描述 |
|---|---|---|
| Id | long | 记录 ID |
| Type | string | 类型 |
| Currency | string | 货币 |
| Amount | decimal | 金额 |
| BusinessDate | string | 业务日期 |
| CompletedStatus | string | 状态 |
| CreatedAt | long | 创建时间戳(毫秒) |
示例
TigerRequest<DepositWithdrawResponse> request = new TigerRequest<DepositWithdrawResponse>()
{
ApiMethodName = TradeApiService.TRANSFER_FUND,
ModelValue = new DepositWithdrawModel { Account = config.DefaultAccount, SegType = SegmentType.SEC }
};
DepositWithdrawResponse response = await tradeClient.ExecuteAsync(request);fundDetails 查询资金流水明细
说明
查询交易账户的资金流水明细(资本账本),支持分页查询。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Account | string | 是 | 交易账户 ID |
| SegTypes | List<string> | 是 | 账户类型列表 |
| FundType | string | 否 | 资金流水类型过滤 |
| Currency | string | 否 | 货币过滤 |
| StartDate | string | 否 | 开始日期 |
| EndDate | string | 否 | 结束日期 |
| Start | long | 否 | 分页起始偏移 |
| Limit | long | 否 | 每页数量 |
返回
FundDetailsResponse → FundDetailsPageItem → List<FundDetailsItem>
| 字段 | 类型 | 描述 |
|---|---|---|
| Page | int | 当前页 |
| Limit | long | 每页数量 |
| PageCount | int | 总页数 |
| ItemCount | long | 总记录数 |
| Items | List<FundDetailsItem> | 明细列表 |
FundDetailsItem 字段:Id、Currency、Type、Desc、ContractName、SegType、Amount、BusinessDate、UpdatedAt
示例
TigerRequest<FundDetailsResponse> request = new TigerRequest<FundDetailsResponse>()
{
ApiMethodName = TradeApiService.FUND_DETAILS,
ModelValue = new FundDetailsModel(config.DefaultAccount, new List<string> { "SEC" })
};
FundDetailsResponse response = await tradeClient.ExecuteAsync(request);aggregateAssets 查询汇总资产
说明
查询交易账户的汇总资产概览,包括账户净值、保证金、可用现金等。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Account | string | 是 | 交易账户 ID |
| SegType | string | 是 | 账户类型:"SEC" / "FUT" |
| BaseCurrency | string | 否 | 换算基准货币 |
返回
AggregateAssetResponse → AggregateAssetItem
| 字段 | 类型 | 描述 |
|---|---|---|
| Currency | string | 货币 |
| CashBalance | decimal | 现金余额 |
| NetLiquidation | decimal | 账户净值 |
| InitMargin | decimal | 初始保证金 |
| MaintainMargin | decimal | 维持保证金 |
| AvailableCash | decimal | 可用现金 |
| ExcessEquity | decimal | 超额净值 |
| BuyingPower | decimal | 购买力 |
| GrossPositionValue | decimal | 持仓市值 |
示例
TigerRequest<AggregateAssetResponse> request = new TigerRequest<AggregateAssetResponse>()
{
ApiMethodName = TradeApiService.AGGREGATE_ASSETS,
ModelValue = new AggregateAssetModel(config.DefaultAccount, "SEC")
};
AggregateAssetResponse response = await tradeClient.ExecuteAsync(request);持仓划转
positionTransfer 发起持仓划转
说明
在两个账户之间发起内部持仓划转。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| FromAccount | string | 是 | 源账户 ID |
| ToAccount | string | 是 | 目标账户 ID |
| Market | string | 是 | 市场 |
| Items | List<PositionTransferDetail> | 是 | 要划转的持仓列表 |
PositionTransferDetail 字段:Symbol、SecType、Expiry、Strike、Right、Quantity
返回
PositionTransferResponse → PositionTransferItem
| 字段 | 类型 | 描述 |
|---|---|---|
| Id | long | 划转 ID |
| Status | string | 状态 |
| Direction | string | 方向 |
| CreatedAt | long | 创建时间戳(毫秒) |
示例
var items = new List<PositionTransferDetail>
{
new PositionTransferDetail { Symbol = "AAPL", SecType = "STK", Quantity = 100 }
};
TigerRequest<PositionTransferResponse> request = new TigerRequest<PositionTransferResponse>()
{
ApiMethodName = TradeApiService.POSITION_TRANSFER,
ModelValue = new PositionTransferModel(config.DefaultAccount, "account_b", "US", items)
};
PositionTransferResponse response = await tradeClient.ExecuteAsync(request);positionTransferRecords 查询持仓划转记录
说明
查询账户的内部持仓划转历史记录。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Account | string | 是 | 交易账户 ID |
| SinceDate | string | 否 | 开始日期,格式 "YYYY-MM-DD" |
| ToDate | string | 否 | 结束日期,格式 "YYYY-MM-DD" |
| Status | string | 否 | 状态过滤 |
| Market | string | 否 | 市场过滤 |
| Symbol | string | 否 | 合约代码过滤 |
返回
PositionTransferRecordsResponse → List<PositionTransferRecordItem>
字段:Id、AccountId、CounterpartyAccountId、Method、Direction、Status、Memo、CreatedAt、UpdatedAt
示例
TigerRequest<PositionTransferRecordsResponse> request = new TigerRequest<PositionTransferRecordsResponse>()
{
ApiMethodName = TradeApiService.POSITION_TRANSFER_RECORDS,
ModelValue = new PositionTransferRecordsModel(config.DefaultAccount, "2025-01-01", "2025-04-01")
};
PositionTransferRecordsResponse response = await tradeClient.ExecuteAsync(request);positionTransferDetail 查询持仓划转详情
说明
查询单次持仓划转的详情,包含每个标的的划转状态。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Id | long | 是 | 划转 ID |
| Account | string | 是 | 交易账户 ID |
返回
PositionTransferDetailResponse → PositionTransferDetailItem → List<PositionTransferStockDetail>
PositionTransferStockDetail 字段:Symbol、Market、Quantity、Status、Message、UpdatedAt
示例
TigerRequest<PositionTransferDetailResponse> request = new TigerRequest<PositionTransferDetailResponse>()
{
ApiMethodName = TradeApiService.POSITION_TRANSFER_DETAIL,
ModelValue = new PositionTransferDetailModel(transferId, config.DefaultAccount)
};
PositionTransferDetailResponse response = await tradeClient.ExecuteAsync(request);positionTransferExternalRecords 查询外部持仓划转记录
说明
查询账户的外部券商(ACATS)持仓转入/转出记录。
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Account | string | 是 | 交易账户 ID |
| SinceDate | string | 否 | 开始日期 |
| ToDate | string | 否 | 结束日期 |
| Status | string | 否 | 状态过滤 |
返回
PositionTransferExternalRecordsResponse → List<PositionTransferExternalRecordItem>
主要字段:Id、Status、InstitutionName、DtcNumber、TransferMethod、Side、Market、FullPortfolio、AllFinished、CreatedAt
示例
TigerRequest<PositionTransferExternalRecordsResponse> request = new TigerRequest<PositionTransferExternalRecordsResponse>()
{
ApiMethodName = TradeApiService.POSITION_TRANSFER_EXTERNAL_RECORDS,
ModelValue = new PositionTransferRecordsModel(config.DefaultAccount, "2025-01-01", "2025-04-01")
};
PositionTransferExternalRecordsResponse response = await tradeClient.ExecuteAsync(request);Updated 6 days ago
