Пример #1
0
        protected override void OnStart(string[] args)
        {
            myTimer       = new BANG.Common.Timer.MyThreadTimer(1000);
            myTimerSIGNAL = new BANG.Common.Timer.MyThreadTimer(1000);

            gStockCodeList = new List <string>();

            dbConnString = GetDbConnStr();
            ExeSecond    = GetExeSecond();
            StockGroup   = GetStockGroup();
            SimType      = GetSimType();

            flog = new BANG.Common.Log.FileLog("SimulService" + StockGroup, "C:\\Log", BANG.Common.Log.LogFileInteval.DAILY);
            flog.write(LogType.INFORMATION, "Simulator 시작");

            SqlDal sd = new SqlDal(dbConnString);

            //gStockCodeList = sd.GetStockCode("GROUP");
            gStockCodeList = sd.GetStockCode(StockGroup);

            isHoliday = sd.isHoliday();

            EventLog.WriteEntry("SimulatorSVC", "종목수 : " + gStockCodeList.Count.ToString() + Environment.NewLine + string.Format("{0} , {1} , {2}", SimType, ExeSecond, StockGroup));
            flog.write(LogType.INFORMATION, "종목수 : " + gStockCodeList.Count.ToString() + Environment.NewLine + string.Format("{0} , {1} , {2}", SimType, ExeSecond, StockGroup));

            INSERTTODAYTRADESUMMARY = sd.GetConfigValue("TRADER", "INSERTTODAYTRADESUMMARY");

            if (SimType == "ALL" || SimType == "SIGNAL")
            {
                myTimerSIGNAL.OnTick += myTimerSIGNAL_OnTick;
                myTimerSIGNAL.Start();
            }

            if (SimType == "ALL" || SimType == "DATA")
            {
                myTimer.OnTick += myTimer_OnTick;
                myTimer.Start();
            }
        }
Пример #2
0
        public void LogWrite(LogType logType, string msg)
        {
            try
            {
                SetText(string.Format("{0} : [{1}]\t{2}{3}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),
                                      logType == LogType.ERROR ? "ERROR" : logType == LogType.INFORMATION ? "INFORMATION" : "WARNING"
                                      , msg, Environment.NewLine));

                flog.write(logType, msg);
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("OrderForm-LogWrite", e.ToString());
            }
        }
Пример #3
0
        void myTimerSIGNAL_OnTick(object state)
        {
            try
            {
                if (DateTime.Now.Second == int.Parse(ExeSecond))
                {
                    DateTime sDateSIGNAL = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 9, 0, 0);
                    DateTime eDateSIGNAL = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 15, 0, 0);
                    DateTime Date0930    = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 9, 30, 0);

                    if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday ||
                        DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
                    {
                        //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss.fff") + " : " + "주말에는 쉽니다");
                        return;
                    }

                    // SIGNAL BASED TRADING
                    if (DateTime.Now >= sDateSIGNAL &&
                        DateTime.Now < eDateSIGNAL
                        )
                    {
                        GeniusBaseSignal gs = new GeniusBaseSignal(dbConnString, gStockCodeList, LogWrite, StockGroup);

                        flog.write(LogType.INFORMATION, "GeniusBaseSignal Start! OldRawid : " + Signal_OldRawid);
                        Signal_OldRawid = gs.Process(Signal_OldRawid);
                    }
                    else
                    {
                        //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss.fff") + " : " + "09:00 ~ 15:00 까지만 영업합니다");
                        return;
                    }
                }
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("Simulator", e.ToString());
            }
        }