• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

How to prepare data for calibration

Hey I would like to calibrate different models. I need to get option data and I have some questions:
1. Where to get the data? The easiest solution is Yahoo finance, but is this data really OK or should I use another website?
2. What is option price? Bid, ask, last, or maybe mid-price (average of bid and ask)
3. Which options should I use? I heard that the best way is to use OTM calls and put. With what time to maturity?
4. I read that I use only liquid options. Which filter should I use to select only liquid options?
5. Important thing is to get data without arbitrage. What is the easiest way to delete arbitrage opportunity from my set of calls and puts options?

I ask because so far I get data from Yahoo Finance and result of calibration was very strange so I thing that something wrong is with my option set.