We have quoteBar(with bid/ask) data for options. There are a few methods to get the option contract price:
contract = contracts[0]
contract_symbol = contracts[0].Symbol
1) self.Securities[contract_symbol].Price returns the mid-price = (bid+ask)/2
2) contracts.AskPrice / contracts.BidPrice returns the ask/bid price.
3) The order is filled based on bid/ask price. If you are selling a stock, you are going to get the bid price, if you are buying a stock you are going to get the ask price.
You can get the order filling price with
ticket = self.MarketOrder(symbol, 1)
fill_price = ticket.AverageFillPrice
Then you can place a limit sell order to sell the contract when their current price is 10 percent higher than the price they were bought for.
self.LimitOrder(contract_symbol, -1, fill_price*1.1)
For details about limit orders, please refer to this algorithm
https://github.com/QuantConnect/Lean/blob/master/Algorithm.Python/OrderTicketDemoAlgorithm.py