INNER CODE UNIT · Python
position_size
ldt9/PyOptionTrader · models/futures/short_strangle.py:450
position_size = int(np.floor(account_value * 0.25 / margin))
print(f"{self.get_timestamp()} IV is between 10 and 15...\n{self.get_timestamp()} Position size is 25% of account value\n{self.get_timestamp()} Trading {position_size} contracts")
if 0.15 <= self.currentIV < 0.20:
position_size = int(np.floor(account_value * 0.30 / margin))
print(f"{self.get_timestamp()} IV is between 15 and 20...\n{self.get_timestamp()} Position size is 30% of account value\n{self.get_timestamp()} Trading {position_size} contracts")
if 0.20 <= self.currentIV < 0.30:
position_size = int(np.floor(account_value * 0.35 / margin))
print(f"{self.get_timestamp()} IV is between 20 and 30...\n{self.get_timestamp()} Position size is 35% of account value\n{self.get_timestamp()} Trading {position_size} contracts")
if 0.30 <= self.currentIV < 0.40:
position_size = int(np.floor(account_value * 0.40 / margin))
print(f"{self.get_timestamp()} IV is between 30 and 40...\n{self.get_timestamp()} Position size is 40% of account value\n{self.get_timestamp()} Trading {position_size} contracts")
if self.currentIV >= 0.40:
position_size = int(np.floor(account_value * 0.50 / margin))
print(f"{self.get_timestamp()} IV is greater than 40...\n{self.get_timestamp()} Position size is 50% of account value\n{self.get_timestamp()} Trading {position_size} contracts")
if order_style == 'bracket':
IV_adjusted_bracket = self.ib.bracketOrder('BUY', position_size, self.lastEstimatedTradePrice,
self.takeProfitPrice,