private void UpdateOptionGridTickOption(DataGridView grid, int row, TickOptionMessage message) { grid[IMPLIED_VOLATILITY_INDEX, row].Value = message.ImpliedVolatility; grid[DELTA_INDEX, row].Value = message.Delta; grid[GAMMA_INDEX, row].Value = message.Gamma; grid[VEGA_INDEX, row].Value = message.Vega; grid[THETA_INDEX, row].Value = message.Theta; }
private void ibClient_Tick(TickOptionMessage msg) { if (isDebug) { Console.WriteLine("Tick Size. Ticker Id:" + msg.RequestId + ", Symbol: " + dicAssets[msg.RequestId].Con.Symbol + ", Type: " + TickType.getField(msg.Field)); Console.WriteLine("Delta: " + msg.Delta + ", Gamma: " + msg.Gamma + ", Vega: " + msg.Vega + ", Theta: " + ", IV: " + msg.ImpliedVolatility + ", OptPrice:" + msg.OptPrice + ", PvDividend: " + msg.PvDividend + ", UndPrice: " + msg.UndPrice); } dicAssets[msg.RequestId].ImpliedVolatility = msg.ImpliedVolatility; dicAssets[msg.RequestId].Delta = msg.Delta; dicAssets[msg.RequestId].Gamma = msg.Gamma; dicAssets[msg.RequestId].Vega = msg.Vega; dicAssets[msg.RequestId].Theta = msg.Theta; dicAssets[msg.RequestId].OptPrice = msg.OptPrice; dicAssets[msg.RequestId].PvDividend = msg.PvDividend; dicAssets[msg.RequestId].UndPrice = msg.UndPrice; }
private void ibClient_Tick(TickOptionMessage msg) { if (isDebug) { Console.WriteLine("Tick Option. Ticker Id: {0}, Symbol: {1}, Type: {2}", msg.RequestId, dicAssets[msg.RequestId].Con.Symbol, TickType.getField(msg.Field)); Console.WriteLine("Delta: {0}, Gamma: {1}, Vega: {2}, Theta: {3}, IV: {4}, OptPrice: {5}, PvDividend: {6}, UndPrice: {7}", msg.Delta, msg.Gamma, msg.Vega, msg.Theta, msg.ImpliedVolatility, msg.OptPrice, msg.PvDividend, msg.UndPrice); } dicAssets[msg.RequestId].ImpliedVolatility = msg.ImpliedVolatility; dicAssets[msg.RequestId].Delta = msg.Delta; dicAssets[msg.RequestId].Gamma = msg.Gamma; dicAssets[msg.RequestId].Vega = msg.Vega; dicAssets[msg.RequestId].Theta = msg.Theta; dicAssets[msg.RequestId].OptPrice = msg.OptPrice; dicAssets[msg.RequestId].PvDividend = msg.PvDividend; dicAssets[msg.RequestId].UndPrice = msg.UndPrice; if (OnGreeksEvent != null) { OnGreeksMessage e = new OnGreeksMessage(); e.RequestId = msg.RequestId; e.Symbol = dicAssets[msg.RequestId].Con.Symbol; e.AssetID = dicAssets[msg.RequestId].ID; e.Type = TickType.getField(msg.Field); e.Delta = msg.Delta; e.Gamma = msg.Gamma; e.Vega = msg.Vega; e.Theta = msg.Theta; e.ImpliedVolatility = msg.ImpliedVolatility; e.OptPrice = msg.OptPrice; e.PvDividend = msg.PvDividend; e.UndPrice = msg.UndPrice; OnGreeksEvent(e); } }