Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 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);
     }
 }