Option Exercise

OptionExerciseCheck

Purpose

Calculates the option and underlying-position impact of an exercise or expiry request. The client fills an empty account field from the client default.

Signature

func (c *TradeClient) OptionExerciseCheck(req model.OptionExerciseCheckRequest) (*model.OptionExerciseCheckResult, error)

Requires a trading account accessible through the configuration. Institutional accounts can authenticate with SecretKey.

Parameters

model.OptionExerciseCheckRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
TypestringNoOmitted if emptyNone; Exercise
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

(*model.OptionExerciseCheckResult, error). Key fields from model.OptionExerciseCheckResult:

FieldTypeDescription
AvailableQuantityfloat64Available quantity for exercise
Positionfloat64Option position quantity
StkPositionfloat64Underlying stock position
StkPositionChangefloat64Stock position change
StkPositionBeforefloat64Stock position before exercise
StkPositionAfterfloat64Stock position after exercise
SymbolstringSymbol code

Invocation example

result, err := tc.OptionExerciseCheck(model.OptionExerciseCheckRequest{
	Account: "U123456",
	ContractId: 123456,
	Type: "Exercise",
	Quantity: 1,
	ExecutingDate: "2025-06-20",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
{
  "availableQuantity": 5,
  "position": 10,
  "stkPosition": 0,
  "exerciseLimit": 10
}

OptionExercisePositions

Purpose

Returns positions eligible for exercise or expiry handling. The client fills an empty account field from the client default.

Signature

func (c *TradeClient) OptionExercisePositions(req model.OptionExercisePositionRequest) (*model.OptionExercisePositionPageResult, error)

Requires a trading account accessible through the configuration. Institutional accounts can authenticate with SecretKey.

Parameters

model.OptionExercisePositionRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
TypestringNoOmitted if emptyNone; Exercise
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

(*model.OptionExercisePositionPageResult, error). Key fields from model.OptionExercisePositionPageResult:

FieldTypeDescription
PageNumintCurrent page number
PageSizeintPage size
ItemCountintTotal item count
PageCountintTotal page count
Items[]OptionExercisePositionExercisable position list

Invocation example

result, err := tc.OptionExercisePositions(model.OptionExercisePositionRequest{
	Account: "U123456",
	Type: "Exercise",
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
{
  "pageNum": 1,
  "pageSize": 20,
  "itemCount": 1,
  "pageCount": 1,
  "items": [
    {
      "identifier": "AAPL  250815C00300000",
      "symbol": "AAPL",
      "expiry": "2025-08-15",
      "strike": 300.0,
      "right": "CALL",
      "position": 10,
      "exerciseQuantity": 0
    }
  ]
}

OptionExerciseSubmit

Purpose

Submits an option exercise or expiry-handling request. The client fills an empty account field from the client default.

Signature

func (c *TradeClient) OptionExerciseSubmit(req model.OptionExerciseSubmitRequest) (bool, error)

Requires a trading account accessible through the configuration. Institutional accounts can authenticate with SecretKey.

Parameters

model.OptionExerciseSubmitRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
TypestringNoOmitted if emptyNone; Exercise
ExecutingDatestringConditionalOmitted if emptyNone; Type=Exercise requires this field; yyyy-MM-dd
IsForce*boolConditionalOmitted if emptyNone; Type=Exercise requires this field
ItmRate*intNoOmitted if emptyNone; Type=Expire only; 0-10
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

(bool, error); true means the server accepted the operation.

Invocation example

result, err := tc.OptionExerciseSubmit(model.OptionExerciseSubmitRequest{
	Account: "U123456",
	ContractId: 123456,
	Type: "Exercise",
	Quantity: 1,
	ExecutingDate: "2025-06-20",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
true

OptionExerciseRecords

Purpose

Returns a filtered, paginated list of option-exercise requests. The client fills an empty account field from the client default.

Signature

func (c *TradeClient) OptionExerciseRecords(req model.OptionExercisePageRequest) (*model.OptionExerciseRecordPageResult, error)

Requires a trading account accessible through the configuration. Institutional accounts can authenticate with SecretKey.

Parameters

model.OptionExercisePageRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
PageintNoOmitted if emptyNone; Starts at 1; server default 1
SizeintNoOmitted if emptyNone; 1-100; server default 20
StatusstringNoOmitted if emptyNone; New
TypestringNoOmitted if emptyNone; Exercise
OrderBystringNoOmitted if emptyNone; symbol
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

(*model.OptionExerciseRecordPageResult, error). Key fields from model.OptionExerciseRecordPageResult:

FieldTypeDescription
PageNumintCurrent page number
PageSizeintPage size
ItemCountintTotal item count
PageCountintTotal page count
Items[]OptionExerciseRecordExercise record list

Invocation example

result, err := tc.OptionExerciseRecords(model.OptionExercisePageRequest{
	Account: "U123456",
	Page: 1,
	Size: 20,
	Type: "Exercise",
	Symbol: "AAPL",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
{
  "pageNum": 1,
  "pageSize": 20,
  "itemCount": 1,
  "pageCount": 1,
  "items": [
    {
      "id": 998877,
      "identifier": "AAPL  250815C00300000",
      "symbol": "AAPL",
      "expiry": "2025-08-15",
      "strike": 300.0,
      "right": "CALL",
      "quantity": 5,
      "status": "Submitted",
      "createTime": 1785528000000
    }
  ]
}

OptionExerciseCancel

Purpose

Cancels a pending option-exercise request by record ID. The client fills an empty account field from the client default.

Signature

func (c *TradeClient) OptionExerciseCancel(req model.OptionExerciseCancelRequest) (bool, error)

Requires a trading account accessible through the configuration. Institutional accounts can authenticate with SecretKey.

Parameters

model.OptionExerciseCancelRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

(bool, error); true means the server accepted the operation.

Invocation example

result, err := tc.OptionExerciseCancel(model.OptionExerciseCancelRequest{
	Account: "U123456",
	Id: 789012,
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
true


Did this page help you?