Ejemplo n.º 1
0
 public static HolidayWidget3 getInstance()
 {
     if (instance == null)
     {
         instance = new HolidayWidget3();
     }
     return(instance);
 }
Ejemplo n.º 2
0
        protected override void Initialize()
        {
            List <string> MarketIDS = new List <string>();

            MarketIDS.Add("GC"); MarketIDS.Add("SI"); MarketIDS.Add("CL"); MarketIDS.Add("6E");

            int USAHours   = 0;             // Your destination market
            int LOCALHours = 0;             // Your local market

            foreach (string marketId in MarketIDS)
            {
                if (marketId != "6E")
                {
                    Holiday holiday1 = new Holiday("FXME", HolidayDateType.EXACT_DAY);                           //FXME = fully defined Christmas Eve; Christmas Day is whole day closed; NYD whole day closed, NYE regular close
                    loadMarket(marketId, holiday1);
                    holiday1.setEXACT_DAY_Date(new DateTime(9999, 12, 24, 0, 0, 0));
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday1.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday1.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday1.setStartHour(13.75f + (LOCALHours - USAHours));                      //will exit next available minute if that min got no volume...
                    holiday1.setHolidayDuration(4.25f);

                    Holiday holiday2 = new Holiday("PBFR", HolidayDateType.PART_DEF);                        //PBFR = Partially defined Black Friday
                    loadMarket(marketId, holiday2);
                    holiday2.setPART_DEF_Date(HolidayDay.FRI, HolidayWeek.FOURTH, HolidayMonth.NOV);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday2.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday2.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday2.setStartHour(13.75f + (LOCALHours - USAHours));
                    holiday2.setHolidayDuration(4.25f);

                    Holiday holiday3 = new Holiday("PTHG", HolidayDateType.PART_DEF);                        //PTHG = Partially defined ThanksGiving
                    loadMarket(marketId, holiday3);
                    holiday3.setPART_DEF_Date(HolidayDay.THU, HolidayWeek.FOURTH, HolidayMonth.NOV);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday3.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday3.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    //holiday3.setStartHour(13.25f + (LOCALHours - USAHours));
                    //holiday3.setHolidayDuration(4.75f);
                    holiday3.setStartHour(13f + (LOCALHours - USAHours));
                    holiday3.setHolidayDuration(5f);

                    // For Part Def Order of lines are important. "loadMarket" must come before "CheckIsHoliday"
                    Holiday holiday4 = new Holiday("PLBD", HolidayDateType.PART_DEF);                        //PLBD = Partially defined Labor Day
                    loadMarket(marketId, holiday4);
                    holiday4.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.FIRST, HolidayMonth.SEP);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday4.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday4.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    //holiday4.setStartHour(13.25f + (LOCALHours - USAHours));
                    holiday4.setStartHour(13f + (LOCALHours - USAHours));
                    //holiday4.setHolidayDuration(4.75f);
                    holiday4.setHolidayDuration(5f);

                    Holiday holiday5 = new Holiday("FIND", HolidayDateType.EXACT_DAY);                          //FIND = Fully defined Independence day
                    loadMarket(marketId, holiday5);
                    holiday5.setEXACT_DAY_Date(new DateTime(9999, 7, 4, 0, 0, 0));
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday5.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday5.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday5.setStartHour(13.25f + (LOCALHours - USAHours));                      //will exit next available minute if that min got no volume...
                    holiday5.setHolidayDuration(4.75f);


                    Holiday holiday6 = new Holiday("PMEM", HolidayDateType.PART_DEF);                        //PMEM = Partially defined Memorial Day; good friday is immaterial since whole day close
                    loadMarket(marketId, holiday6);
                    holiday6.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.LAST, HolidayMonth.MAY);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday6.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday6.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday6.setStartHour(13.25f + (LOCALHours - USAHours));
                    holiday6.setHolidayDuration(4.75f);


                    Holiday holiday7 = new Holiday("PPRE", HolidayDateType.PART_DEF);                        //PPRE = Partially defined President's Day
                    loadMarket(marketId, holiday7);
                    holiday7.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.THIRD, HolidayMonth.FEB);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday7.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday7.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday7.setStartHour(13.25f + (LOCALHours - USAHours));
                    holiday7.setHolidayDuration(4.75f);


                    Holiday holiday8 = new Holiday("PMLK", HolidayDateType.PART_DEF);                        //PMLK = Partially defined Martin Luther King
                    loadMarket(marketId, holiday8);
                    holiday8.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.THIRD, HolidayMonth.JAN);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday8.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday8.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday8.setStartHour(13.25f + (LOCALHours - USAHours));
                    holiday8.setHolidayDuration(4.75f);
                }

                if (marketId == "6E")
                {
                    Holiday holiday1_A = new Holiday("FXME", HolidayDateType.EXACT_DAY);                        //FXME = fully defined Christmas Eve; Christmas Day is whole day closed; NYD whole day closed, NYE regular close
                    loadMarket(marketId, holiday1_A);
                    holiday1_A.setEXACT_DAY_Date(new DateTime(9999, 12, 24, 0, 0, 0));
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday1_A.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday1_A.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday1_A.setStartHour(13.25f + (LOCALHours - USAHours));
                    holiday1_A.setHolidayDuration(4.75f);

                    Holiday holiday2_A = new Holiday("PBFR_A", HolidayDateType.PART_DEF);                        //PBFR = Partially defined Black Friday
                    loadMarket(marketId, holiday2_A);
                    holiday2_A.setPART_DEF_Date(HolidayDay.FRI, HolidayWeek.FOURTH, HolidayMonth.NOV);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday2_A.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday2_A.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday2_A.setStartHour(13.25f + (LOCALHours - USAHours));
                    holiday2_A.setHolidayDuration(4.75f);

                    Holiday holiday3_A = new Holiday("PTHG_A", HolidayDateType.PART_DEF);                        //PTHG = Partially defined ThanksGiving
                    loadMarket(marketId, holiday3_A);
                    holiday3_A.setPART_DEF_Date(HolidayDay.THU, HolidayWeek.FOURTH, HolidayMonth.NOV);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday3_A.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday3_A.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday3_A.setStartHour(13f + (LOCALHours - USAHours));
                    holiday3_A.setHolidayDuration(5f);

                    Holiday holiday4_A = new Holiday("PLBD_A", HolidayDateType.PART_DEF);                        //PLBD = Partially defined Labor Day
                    loadMarket(marketId, holiday4_A);
                    holiday4_A.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.FIRST, HolidayMonth.SEP);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday4_A.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday4_A.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday4_A.setStartHour(13f + (LOCALHours - USAHours));
                    holiday4_A.setHolidayDuration(5f);

                    Holiday holiday5_A = new Holiday("FIND_A", HolidayDateType.EXACT_DAY);                      //FIND = Fully defined Independence day
                    loadMarket(marketId, holiday5_A);
                    holiday5_A.setEXACT_DAY_Date(new DateTime(9999, 7, 4, 0, 0, 0));
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday5_A.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday5_A.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday5_A.setStartHour(13f + (LOCALHours - USAHours));                      //will exit next available minute if that min got no volume...
                    holiday5_A.setHolidayDuration(5f);

                    Holiday holiday6_A = new Holiday("PMEM_A", HolidayDateType.PART_DEF);                         //PMEM = Partially defined Memorial Day; good friday is immaterial since whole day close
                    loadMarket(marketId, holiday6_A);
                    holiday6_A.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.LAST, HolidayMonth.MAY);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday6_A.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday6_A.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday6_A.setStartHour(13f + (LOCALHours - USAHours));
                    holiday6_A.setHolidayDuration(5f);

                    Holiday holiday7_A = new Holiday("PPRE_A", HolidayDateType.PART_DEF);                       //PPRE = Partially defined President's Day
                    loadMarket(marketId, holiday7_A);
                    holiday7_A.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.THIRD, HolidayMonth.FEB);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday7_A.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday7_A.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday7_A.setStartHour(13f + (LOCALHours - USAHours));
                    holiday7_A.setHolidayDuration(5f);

                    Holiday holiday8_A = new Holiday("PMLK_A", HolidayDateType.PART_DEF);                        //PMLK = Partially defined Martin Luther King
                    loadMarket(marketId, holiday8_A);
                    holiday8_A.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.THIRD, HolidayMonth.JAN);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday8_A.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday8_A.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday8_A.setStartHour(13f + (LOCALHours - USAHours));
                    holiday8_A.setHolidayDuration(5f);

                    //
                    Holiday holiday4_B = new Holiday("PLBD_B", HolidayDateType.PART_DEF);                        //PLBD = Partially defined Labor Day,   && 45min early close prior fri for 6E
                    loadMarket(marketId, holiday4_B);
                    holiday4_B.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.FIRST, HolidayMonth.SEP);            //45min early close prior day for 6E
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday4_B.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday4_B.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday4_B.setStartHour(-56f + (LOCALHours - USAHours));
                    holiday4_B.setHolidayDuration(.75f);

                    Holiday holiday6_B = new Holiday("PMEM_B", HolidayDateType.PART_DEF);                        //PMEM = Partially defined Memorial Day; good friday is immaterial since whole day close && 45min early close prior fri for 6E
                    loadMarket(marketId, holiday6_B);
                    holiday6_B.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.LAST, HolidayMonth.MAY);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday6_B.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday6_B.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday6_B.setStartHour(-56f + (LOCALHours - USAHours));
                    holiday6_B.setHolidayDuration(.75f);

                    Holiday holiday7_B = new Holiday("PPRE_B", HolidayDateType.PART_DEF);                       //PPRE = Partially defined President's Day && 45min early close prior fri for 6E
                    loadMarket(marketId, holiday7_B);
                    holiday7_B.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.THIRD, HolidayMonth.FEB);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday7_B.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday7_B.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday7_B.setStartHour(-56f + (LOCALHours - USAHours));
                    holiday7_B.setHolidayDuration(.75f);

                    Holiday holiday8_B = new Holiday("PMLK_B", HolidayDateType.PART_DEF);                        //PMLK = Partially defined Martin Luther King && 45min early close prior fri for 6E
                    loadMarket(marketId, holiday8_B);
                    holiday8_B.setPART_DEF_Date(HolidayDay.MON, HolidayWeek.THIRD, HolidayMonth.JAN);
                    HolidayWidget3.getInstance().CheckIsHoliday(DateTime.Now, marketId);
                    USAHours   = timeZoneInfo.IsDaylightSavingTime(holiday8_B.getHolidayDate()) ? timeZoneInfo.BaseUtcOffset.Hours + 1 : timeZoneInfo.BaseUtcOffset.Hours;
                    LOCALHours = TimeZoneInfo.Local.IsDaylightSavingTime(holiday8_B.getHolidayDate().AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - USAHours))
                                                          ? TimeZoneInfo.Local.BaseUtcOffset.Hours + 1 : TimeZoneInfo.Local.BaseUtcOffset.Hours;
                    holiday8_B.setStartHour(-56f + (LOCALHours - USAHours));
                    holiday8_B.setHolidayDuration(.75f);
                }
            }
        }