Can you please have the enum RightEdge.Common.TickType mimic the entries of the enum Krs.Ats.IBNet.TickType of the IB plug-in. Or at least include the option related Ticktypes (BidOption, AskOption, ModelOption , LastOptionOptionImpliedVolatility, HistoricalVolatility) .
Here is the reasoning:
IB offers a lot of specific option data ( Greeks , ImpVolatility,…) in its API. I would like to capture this info it in my trading strategy and save it in the ticks database. To have that working I need these extra TickTypes from IB captured. So hence my request to extend the RightEdge.Common.TickType enum to map with the IB enum as defined in Krs.Ats.IBNet.TickType.
Here is my line of thought to get a trading strategy use option related data from IB.
1) RE extends the enum values in RightEdge.Common.TickType with the above mentioned specific option related TickTypes. Better, just take all the ticktypes over from IB (Krs.Ats.IBNet.TickType )
TickType = RightEdge.Common.TickType;
KRSTickType = Krs.Ats.IBNet.TickType;
2) I adapt the IB Plug-in to also subscribe to: void client_TickOptionComputation(object sender, TickOptionComputationEventArgs e).
This return a complex set of information with the specific TickTypes I’m requesting. The next thing I need to do is translate this in ticks RE can handle. Ex: by mapping the information to integers in the Size field)
IB Option Field
Mapping to RE TickData
RE Symbol ( done by RE)
NEW RE TickType = BidOption
Size = 1
Size = 2
Size = 3
Size = 4
Size = 5
The above logic will transform the complex Optionobject into 5 RE TickData objects and these will
subsequently be saved by the standard RE interface into the standard Tickdata DB.
Resulting 5 TickData ticks
During trading and simulation I use these ticks in my strategy like:
Public override void NewTick(BarData partialBar, TickData tick)
if tick.tickType == BidOption
if (tick.Size== 1) ImpliedVolatility = tick.Price.
if (tick.Size== 2) Delta = tick.Price.