期权预估
接口描述
功能说明:期权预估,根据传入的信息计算预估金额和费用,支持普通期权订单。
请求URL: /openapi/account/orders/option/preview?account_id={account_id}
请求方式: POST
频次限制:每个AppId调用频次限制为1秒1次。
请求参数
参数 | 类型 | 是否必须 | 描述 | 示例值 |
---|---|---|---|---|
account_id | String | 是 | 账户id | 2847483 |
new_orders | []order_item | 是 | 订单明细 |
order_item:
参数 | 类型 | 是否必须 | 描述 | 示例值 |
---|---|---|---|---|
client_order_id | String | 是 | 订单id | 0KGOHL4PR2SLC0DKIND4TI0002 |
combo_type | String | 是 | 组合类型 支持普通期权订单 | NORMAL |
option_strategy | String | 是 | 期权策略 ,仅支持SINGLE | SINGLE |
side | String | 是 | 买卖方向 仅支持BUY、SELL。 | BUY |
order_type | String | 是 | 订单类型 期权订单仅支持LIMIT、STOP_LOSS、STOP_LOSS_LIMIT。 | LIMIT |
time_in_force | String | 是 | 订单有效期 | DAY |
stop_price | String | 否 | 止损价 | 11.00 |
limit_price | String | 否 | 限价 | 11.00 |
quantity | String | 是 | 数量 | 1 |
entrust_type | String | 是 | 订单委托类型 目前仅支持“QTY” | QTY |
current_ask | String | 是 | 用户看到的当前卖价 | 11.01 |
current_bid | String | 是 | 用户看到当前买入价格 | 11.00 |
orders | []order | 是 | 腿明细 |
order
参数 | 类型 | 是否必须 | 描述 | 示例值 |
---|---|---|---|---|
side | String | 是 | 买卖方向 仅支持BUY、SELL。 | BUY |
quantity | String | 是 | 数量 | 1 |
market | String | 是 | 市场 | US |
instrument_type | String | 是 | 标的类型 | OPTION |
symbol | String | 是 | symbol | AAPL |
strike_price | String | 否 | 行权价 | 11.00 |
init_exp_date | String | 否 | 过期日:yyyy-MM-dd | 2023-08-01 |
option_type | String | 否 | 期权类型 | CALL |
响应参数
参数 | 类型 | 描述 | 示例值 |
---|---|---|---|
estimated_cost | String | 预估费用 | 100.00 |
estimated_transaction_fee | String | 预估交易手续费 | 1.00 |
currency | String | 货币 | USD |
请求示例
普通期权单腿
- Python
- Java
from webullsdktrade.api import API
from webullsdkcore.client import ApiClient
from webullsdkcore.common.region import Region
client_order_id = uuid.uuid4().hex
option_new_orders = [
{
"client_order_id": client_order_id,
"combo_type": "NORMAL",
"order_type": "LIMIT",
"quantity": "1",
"limit_price": "11.25",
"option_strategy": "SINGLE",
"side": "BUY",
"time_in_force": "DAY",
"entrust_type": "QTY",
"orders": [
{
"side": "BUY",
"quantity": "1",
"symbol": "AAPL",
"strike_price": "250.0",
"init_exp_date": "2024-12-27",
"instrument_type": "OPTION",
"option_type": "CALL",
"market": "US"
}
]
}
]
api_client = ApiClient(your_app_key, your_app_secret, Region.HK.value)
api = API(api_client)
response = api.order.preview_option(account_id, option_new_orders)
if response.status_code == 200:
order_res = response.json()
HttpApiConfig apiConfig = HttpApiConfig.builder()
.appKey(Env.APP_KEY)
.appSecret(Env.APP_SECRET)
.regionId(Region.hk.name())
.build();
TradeApiService apiService = new TradeHttpApiService(apiConfig);
OptionOrderItemLeg optionOrderItemLeg = new OptionOrderItemLeg();
optionOrderItemLeg.setSide(OrderSide.BUY.name());
optionOrderItemLeg.setQuantity("1");
optionOrderItemLeg.setSymbol("AAPL");
optionOrderItemLeg.setStrikePrice("250");
optionOrderItemLeg.setInitExpDate("2025-08-15");
optionOrderItemLeg.setInstrumentType(InstrumentSuperType.OPTION.name());
optionOrderItemLeg.setOptionType(OptionType.CALL.name());
optionOrderItemLeg.setMarket(Markets.US.name());
List<OptionOrderItemLeg> optionOrderItemLegList = new ArrayList<>();
optionOrderItemLegList.add(optionOrderItemLeg);
OptionOrderItem optionOrderItem = new OptionOrderItem();
optionOrderItem.setClientOrderId(GUID.get());
optionOrderItem.setComboType(ComboType.NORMAL.name());
optionOrderItem.setOptionStrategy(OptionStrategy.SINGLE.name());
optionOrderItem.setSide(OrderSide.BUY.name());
optionOrderItem.setOrderType(OrderType.LIMIT.name());
optionOrderItem.setTimeInForce(OrderTIF.DAY.name());
optionOrderItem.setLimitPrice("2");
optionOrderItem.setQuantity("1");
optionOrderItem.setEntrustType(EntrustType.QTY.name());
optionOrderItem.setOrders(optionOrderItemLegList);
List<OptionOrderItem> optionOrderItemList = new ArrayList<>();
optionOrderItemList.add(optionOrderItem);
OptionOrder optionOrder = new OptionOrder();
optionOrder.setNewOrders(optionOrderItemList);
PreviewOrderResponse previewOptionResponse = apiService.previewOption(accountId, optionOrder);