private void GetDataFromGATSTolistIDNTGOBulTGTM(string strTGTM, string patternTGTM, Dictionary <string, IDNTGOBulk> dicIDNTGOBulkTGTM) { try { GatsUtil gats = new GatsUtil(); string response = gats.GetGatsResponse(strTGTM, null); IDNTGOBulk idntgobulk = null; Regex regex = new Regex(patternTGTM); MatchCollection matches = regex.Matches(response); foreach (Match match in matches) { idntgobulk = new IDNTGOBulk(); idntgobulk.RIC = match.Groups["RIC"].Value; if (!dicIDNTGOBulkTGTM.ContainsKey(idntgobulk.RIC)) { dicIDNTGOBulkTGTM.Add(idntgobulk.RIC, idntgobulk); } } } catch (Exception e) { LogMessage("error happened : " + e.Message, Logger.LogType.Error); } }
private void GetTodaySETTLEFromGATSTolistIDNTGOBulkTGFc1(string strTGFc1, string patternTGFc1, Dictionary <string, IDNTGOBulk> dicIDNTGOBulkTGFc1, List <string> listMonthAndYearFromIDNTGOBulkTGTM, List <IDNTGOBulk> listIDNTGOBulkTGFc1ROLLOV) { try { GatsUtil gats = new GatsUtil(); string response = gats.GetGatsResponse(strTGFc1, null); Regex regex = new Regex(patternTGFc1); MatchCollection matches = regex.Matches(response); string price = string.Empty; List <int> listPrice = new List <int>(); int high = 0; if (matches.Count == 1) { int settle = Convert.ToInt32(matches[0].Groups["SETTLE"].Value); if (settle > 0) { IDNTGOBulk idntgobulk = null; IDNTGOBulk idntgobulkROLLOV = null; high = settle - settle % 100; listPrice.Add(high); int reduce = high; int add = high; for (int i = 0; i < 5; i++) { if (reduce <= 2000) { reduce -= 25; } else if (reduce > 2000 && reduce <= 4000) { reduce -= 50; } else { reduce -= 100; } listPrice.Add(reduce); } for (int i = 0; i < 5; i++) { if (add <= 2000) { add += 25; } else if (add > 2000 && add <= 4000) { add += 50; } else { add += 100; } listPrice.Add(add); } foreach (int item in listPrice) { price = item.ToString(); Dictionary <string, string> .KeyCollection dicCallsKeys = dicCalls.Keys; Dictionary <string, string> .KeyCollection dicPutsKeys = dicPuts.Keys; foreach (string monthAndYear in listMonthAndYearFromIDNTGOBulkTGTM) { idntgobulk = new IDNTGOBulk(); idntgobulk.SYMBOL = "TGO" + (price.Length == 4 ? ("0" + price + monthAndYear) : price + monthAndYear); idntgobulk.DSPLY_NAME = "TG " + (dicCalls.ContainsKey(monthAndYear.Substring(0, 1)) ? dicCalls[monthAndYear.Substring(0, 1)].ToUpper() + monthAndYear.Substring(1, 1) + " " + price + " C" : dicPuts[monthAndYear.Substring(0, 1)].ToUpper() + monthAndYear.Substring(1, 1) + " " + price + " P"); idntgobulk.RIC = "TG" + price + monthAndYear + ".TM"; idntgobulk.OFFCL_CODE = idntgobulk.SYMBOL; idntgobulk.EX_SYMBOL = idntgobulk.SYMBOL; idntgobulk.EXPIR_DATE = " "; idntgobulk.CONTR_MNTH = dicCalls.ContainsKey(monthAndYear.Substring(0, 1)) ? dicCalls[monthAndYear.Substring(0, 1)].ToUpper() + monthAndYear.Substring(1, 1) : dicPuts[monthAndYear.Substring(0, 1)].ToUpper() + monthAndYear.Substring(1, 1); idntgobulk.CONTR_SIZE = "187.5"; idntgobulk.STRIKE_PRC = price; idntgobulk.PUTCALLIND = (dicCalls.ContainsKey(monthAndYear.Substring(0, 1)) ? "CA_CALL" : "PU_PUT"); idntgobulk.BCKGRNDPAG = "TM01"; idntgobulk.DSPLY_NMLL = idntgobulk.DSPLY_NAME; idntgobulk.X_INST_TITLE = "I"; idntgobulk.X_80CHAR = "1"; idntgobulk.INSTMOD_PUT_CALL = (dicCalls.ContainsKey(monthAndYear.Substring(0, 1)) ? "C" : "P") + "_EU"; idntgobulk.EXL_NAME = "TAIFO_OPT_TG"; idntgobulk.BCU = "TAIFO_OPT_TG,TAIFO_OPT_TG_" + (dicCalls.ContainsKey(monthAndYear.Substring(0, 1)) ? "C" : "P"); idntgobulk.INSTMOD_PROV_SYMB = idntgobulk.SYMBOL; dicIDNTGOBulkTGFc1.Add(idntgobulk.RIC, idntgobulk); } if (!string.IsNullOrEmpty(expirDateFormed)) { List <string> keysFromPutAndCall = new List <string>(); keysFromPutAndCall.Add(dicCalls.FirstOrDefault(q => q.Value.ToUpper() == monthYear.Substring(0, 3)).Key.ToString()); keysFromPutAndCall.Add(dicPuts.FirstOrDefault(q => q.Value.ToUpper() == monthYear.Substring(0, 3)).Key.ToString()); string cORp = "C"; foreach (string keyMonth in keysFromPutAndCall) { idntgobulkROLLOV = new IDNTGOBulk(); idntgobulkROLLOV.SYMBOL = "TGO" + (price.Length == 4 ? ("0" + price + keyMonth + monthYear.Substring(3, 1)) : price + keyMonth + monthYear.Substring(3, 1)); idntgobulkROLLOV.DSPLY_NAME = "TG " + monthYear + " " + price + " " + cORp; idntgobulkROLLOV.RIC = "TG" + price + keyMonth + monthYear.Substring(3, 1) + ".TM"; idntgobulkROLLOV.OFFCL_CODE = idntgobulkROLLOV.SYMBOL; idntgobulkROLLOV.EX_SYMBOL = idntgobulkROLLOV.SYMBOL; idntgobulkROLLOV.EXPIR_DATE = expirDateFormed; idntgobulkROLLOV.CONTR_MNTH = monthYear; idntgobulkROLLOV.CONTR_SIZE = "187.5"; idntgobulkROLLOV.STRIKE_PRC = price; idntgobulkROLLOV.PUTCALLIND = cORp.Equals("C") ? "CA_CALL" : "PU_PUT"; idntgobulkROLLOV.BCKGRNDPAG = "TM01"; idntgobulkROLLOV.DSPLY_NMLL = idntgobulkROLLOV.DSPLY_NAME; idntgobulkROLLOV.X_INST_TITLE = "I"; idntgobulkROLLOV.X_80CHAR = "1"; idntgobulkROLLOV.INSTMOD_PUT_CALL = cORp + "_EU"; idntgobulkROLLOV.EXL_NAME = "TAIFO_OPT_TG"; idntgobulkROLLOV.BCU = "TAIFO_OPT_TG,TAIFO_OPT_TG_" + cORp; idntgobulkROLLOV.INSTMOD_PROV_SYMB = idntgobulkROLLOV.SYMBOL; listIDNTGOBulkTGFc1ROLLOV.Add(idntgobulkROLLOV); cORp = "P"; } } } } else { MessageBox.Show("No Value of SETTLE is 0 ! "); } } } catch (Exception e) { LogMessage("error has happened when running GetTodaySETTLEFromGATS() : " + e.Message, Logger.LogType.Error); } }