Default quantity to 1 contract when submitting option orders
This commit is contained in:
parent
3c276c15c1
commit
5be5867c47
@ -80,7 +80,7 @@ class Client:
|
|||||||
self.ib.qualifyContracts(option_contract)
|
self.ib.qualifyContracts(option_contract)
|
||||||
return option_contract
|
return option_contract
|
||||||
|
|
||||||
def submit_combo_option_order(self, legs: List[OptionLeg], quantity: int, limit_price: float = None) -> Trade:
|
def submit_combo_option_order(self, legs: List[OptionLeg], quantity: int = 1, limit_price: float = None) -> Trade:
|
||||||
combo_legs = []
|
combo_legs = []
|
||||||
for leg in legs:
|
for leg in legs:
|
||||||
option_contract = self.get_option_contract(leg)
|
option_contract = self.get_option_contract(leg)
|
||||||
@ -112,7 +112,7 @@ class Client:
|
|||||||
|
|
||||||
return self.ib.placeOrder(combo_contract, combo_order)
|
return self.ib.placeOrder(combo_contract, combo_order)
|
||||||
|
|
||||||
def submit_single_option_order(self, leg: OptionLeg, quantity: int, limit_price: float = None) -> Trade:
|
def submit_single_option_order(self, leg: OptionLeg, quantity: int = 1, limit_price: float = None) -> Trade:
|
||||||
option_contract = self.get_option_contract(leg)
|
option_contract = self.get_option_contract(leg)
|
||||||
contract = Contract()
|
contract = Contract()
|
||||||
contract.conId = option_contract.conId
|
contract.conId = option_contract.conId
|
||||||
@ -137,7 +137,7 @@ class Client:
|
|||||||
leg_mid = (leg_data.ask + max(leg_data.bid, 0)) / 2.0
|
leg_mid = (leg_data.ask + max(leg_data.bid, 0)) / 2.0
|
||||||
leg_limit = (leg_mid - 0.25) - (leg_mid % 0.05)
|
leg_limit = (leg_mid - 0.25) - (leg_mid % 0.05)
|
||||||
|
|
||||||
option_order = self.submit_single_option_order(leg_data, 1, limit_price = leg_limit)
|
option_order = self.submit_single_option_order(leg_data, limit_price = leg_limit)
|
||||||
while not option_order.isDone():
|
while not option_order.isDone():
|
||||||
self.ib.waitOnUpdate()
|
self.ib.waitOnUpdate()
|
||||||
|
|
||||||
@ -153,12 +153,12 @@ class Client:
|
|||||||
spread_mid = short_leg_mid - long_leg_mid
|
spread_mid = short_leg_mid - long_leg_mid
|
||||||
spread_limit = (spread_mid - 0.25) - (spread_mid % 0.05)
|
spread_limit = (spread_mid - 0.25) - (spread_mid % 0.05)
|
||||||
|
|
||||||
spread_order = self.submit_combo_option_order([short_leg, long_leg], 1, limit_price = spread_limit)
|
spread_order = self.submit_combo_option_order([short_leg, long_leg], limit_price = spread_limit)
|
||||||
while not spread_order.isDone():
|
while not spread_order.isDone():
|
||||||
self.ib.waitOnUpdate()
|
self.ib.waitOnUpdate()
|
||||||
|
|
||||||
return OptionOrder(spread_order)
|
return OptionOrder(spread_order)
|
||||||
|
|
||||||
def submit_stop_loss_order(self, trade: Trade, stop_loss_price: float, limit_price: float = None) -> Trade:
|
def submit_stop_loss_order(self, trade: Trade, stop_loss_price: float, limit_price: float = None) -> Trade:
|
||||||
stop_loss_order = Order()
|
stop_loss_order = Order()
|
||||||
stop_loss_order.action = SELL if trade.order.action == BUY else BUY
|
stop_loss_order.action = SELL if trade.order.action == BUY else BUY
|
||||||
|
Loading…
Reference in New Issue
Block a user