期權預估
接口说明
功能說明:期權預估,根據傳入的資訊計算預估金額和費用,支援一般期權訂單。
請求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);