Beispiel #1
0
        public bool isGoodTiming(string aStockCode)
        {
            bool retbool = false;

            try
            {
                SqlDal  sd    = new SqlDal(cConnString);
                DataSet dsCur = sd.GetLatestCpMarketWatchS(aStockCode);

                if (dsCur.Tables.Count > 0 && dsCur.Tables[0].Rows.Count > 0)
                {
                    if (HasStock(aStockCode))
                    {
                        // 해당 종목 보유시에는 구매 Timing 이 아님
                        retbool = false;
                    }
                    else if (BuyCheck(dsCur))
                    {
                        retbool = true;
                    }
                    else
                    {
                        retbool = false;
                    }
                }
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("Simulator-gini_CPMARKETWATCHS-GoodTiming", e.ToString());
            }

            return(retbool);
        }
Beispiel #2
0
        void SellAction(object aDr)
        {
            try
            {
                DataRow dr = (DataRow)aDr;

                string StockCode = dr["STOCKCODE"].ToString();
                long   volume    = long.Parse(dr["VOLUME"].ToString());
                long   price     = long.Parse(dr["SELL_POINT"].ToString());

                ETRADE_SELL es = new ETRADE_SELL(ETRADEAccountNumber, dr["STOCKCODE"].ToString(), volume, rbExec.Checked, LogWrite);

                if (es.SELL())
                {
                    LogWrite(LogType.INFORMATION, string.Format("{0} 시장가 {1} 주 매도주문성공", dr["STOCKCODE"].ToString(), volume.ToString()));

                    SqlDal sd = new SqlDal(ConnectionString);
                    sd.MarkSellFlag(dr["RAWID"].ToString());
                    sd.PlusBalance(price * volume);
                }
                else
                {
                    LogWrite(LogType.ERROR, string.Format("{0} 시장가 {1} 주 매도주문실패", dr["STOCKCODE"].ToString(), volume.ToString()));
                }
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("OrderForm-SellAction", e.ToString());
            }
        }
Beispiel #3
0
        public void Do_Buy(string sCode)
        {
            Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss.fff") + " : " + string.Format("{0} 종목 매입 - BUY01", sCode));
            SqlDal sd = new SqlDal(cConnString);

            sd.BuyAction(sCode, "BUY01");
        }
Beispiel #4
0
        public bool isGoodTiming(string aStockCode)
        {
            bool retbool = false;

            try
            {
                SqlDal  sd   = new SqlDal(cConnString);
                DataSet dsMA = sd.GetMAData_Minute(aStockCode);

                if (dsMA.Tables.Count > 0 && dsMA.Tables[0].Rows.Count > 0)
                {
                    if (HasStock(aStockCode))
                    {
                        // 해당 종목 보유시에는 구매 Timing 이 아님
                        retbool = false;
                    }
                    else if (BuyCheck(dsMA))
                    {
                        retbool = true;
                    }
                    else
                    {
                        retbool = false;
                    }
                }
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("Simulator-gini_STOCKMST-GoodTiming", e.ToString());
            }

            return(retbool);
        }
Beispiel #5
0
        private void ChecknBuy(object aStockCode)
        {
            try
            {
                SqlDal sd = new SqlDal(cConnString);

                if (DateTime.Now <= sd.GetBuyLimitTime())
                {
                    string sCode = aStockCode.ToString();

                    DataSet dsCur = sd.GetLatestCpMarketWatchS(sCode);

                    if (dsCur.Tables.Count > 0 && dsCur.Tables[0].Rows.Count > 0)
                    {
                        if (HasStock(sCode))
                        {
                            ChecknSell(sCode);
                        }
                        else
                        {
                            if (BuyCheck(dsCur))
                            {
                                Do_Buy(sCode, dsCur.Tables[0].Rows[0]["MARKETWATCHCODE"].ToString());
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("Simulator-gini_CPMARKETWATCHS-ChecknBuy", e.ToString());
            }
        }
Beispiel #6
0
 public void OnConnectionChangedEvevt(DTUConnectionEventArgs args)
 {
     if (DtuOnOffLineLogEventArgs != null)
     {
         DtuOnOffLineLogEventArgs(args);
     }
     SqlDal.UpdateDTUStatus(args);
     updateonlineDtus(args);
 }
Beispiel #7
0
        public void GetPeriodSortingInfoSqlToRedisTest()
        {
            List <AAGetModel> peroidLists = SqlDal.GetPeriodAAModelList();

            if (peroidLists.Any())
            {
                Redishelper.PushList <AAGetModel>("SortingList", peroidLists);
            }
        }
Beispiel #8
0
        private void ChecknSell(string sCode)
        {
            //throw new NotImplementedException();
            SqlDal sd = new SqlDal(cConnString);

            if (sd.SellAction(sCode) > 0)
            {
                Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss.fff") + " : " + string.Format("{0} 종목 매도", sCode));
            }
        }
Beispiel #9
0
        public void InsertSuccessedSortingInfoTest()
        {
            var BBModelList = TestHelper.CreateBBModelList();

            var preCount = SqlDal.GetRowNumberForTable("Logistics.JinFengSuccessedSorting");

            SqlDal.InsertPostInfo(BBModelList);
            var afterCount = SqlDal.GetRowNumberForTable("Logistics.JinFengSuccessedSorting");

            Assert.AreEqual(preCount + 2, afterCount);
        }
 public void PostSuccessedSortingIntoSql(List <BBPostModel> value)
 {
     if (value != null)
     {
         SqlDal.InsertPostInfo(value);
     }
     else
     {
         logger.Error("get null in BBPostModel");
     }
 }
Beispiel #11
0
 public void Do_Buy(string sCode, string aBuyMethod)
 {
     try
     {
         Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss.fff") + " : " + string.Format("{0} 종목 매입 - " + aBuyMethod, sCode));
         SqlDal sd = new SqlDal(cConnString);
         sd.BuyAction(sCode, aBuyMethod);
     }
     catch (Exception e)
     {
         EventLog.WriteEntry("Simulator-gini_CPSVR8091S-Do_Buy", e.ToString());
     }
 }
Beispiel #12
0
        //public void SellETRADE(string aStockCode,double aPlusRate,double aMinusRate)
        //{
        //    // 보유종목 수익률 검사
        //    XAQueryClass XAQ_T0424 = new XAQueryClass();
        //    XAQ_T0424.ResFileName = ".\\Res\\t0424.res";
        //    XAQ_T0424.SetFieldData("t0424InBlock", "accno", 0, ETRADEAccountNumber);

        //    if (rbExec.Checked)
        //        XAQ_T0424.SetFieldData("t0424InBlock", "passwd", 0, "miji1212");
        //    else
        //        XAQ_T0424.SetFieldData("t0424InBlock", "passwd", 0, "miji12!@");

        //    // aEarnRate 이상 수익률 미체결 잔고(매도) 여부 검사

        //    // 매도 주문
        //}

        private void Order_Load(object sender, EventArgs e)
        {
            SqlDal sd = new SqlDal(ConnectionString);

            System.Collections.Generic.List <String> sl = sd.GetAllStockCode();

            LogWrite(LogType.INFORMATION, "종목수 " + sl.Count.ToString());

            foreach (string code in sl)
            {
                LogWrite(LogType.INFORMATION, code);
            }
        }
Beispiel #13
0
 private static DateTime GetEndTime()
 {
     //throw new NotImplementedException();
     try
     {
         SqlDal sd = new SqlDal(dbConnString);
         return(sd.GetEndTime());
     }
     catch (Exception e)
     {
         EventLog.WriteEntry("DataCollector", e.ToString());
     }
     return(new DateTime());
 }
Beispiel #14
0
        //static void rsr_OnCybosConnectionOff()
        //{
        //    //throw new NotImplementedException();
        //    try
        //    {
        //        if (!underReconnecting)
        //        {
        //            underReconnecting = true;

        //            WriteMsg("접속이 끊어졌습니다.", LogType.WARNING);

        //            if (ssr != null)
        //                ssr.Unsubscribe();

        //            if (rsr != null)
        //            {
        //                rsr.Stop();

        //                // 기존 cybos process 들을 종료시키고
        //                Process[] cpP = Process.GetProcessesByName("CpStart");
        //                Process[] diP = Process.GetProcessesByName("DibServer");

        //                WriteMsg("기존 사이보스 프로세스 종료 시도", LogType.WARNING);

        //                if (cpP != null && diP != null)
        //                {
        //                    foreach (Process p in cpP)
        //                    {
        //                        p.Kill();
        //                        while (!p.HasExited)
        //                        {
        //                            Thread.CurrentThread.Join(1);
        //                        }
        //                    }

        //                    foreach (Process p in diP)
        //                    {
        //                        p.Kill();
        //                        while (!p.HasExited)
        //                        {
        //                            Thread.CurrentThread.Join(1);
        //                        }
        //                    }
        //                }

        //                WriteMsg("기존 사이보스 프로세스 종료 성공", LogType.WARNING);


        //                // 다시 실행시킨다
        //                WriteMsg("새로운 사이보스 프로세스 시작", LogType.WARNING);

        //                Process cybos = Process.Start(@"C:\Daishin\STARTER\ncStarter.exe", @"/prj:cp");
        //                Thread.CurrentThread.Join(1000 * 5);
        //                SetForegroundWindow(cybos.MainWindowHandle);
        //                SendKeys.SendWait("{ENTER}");
        //                Thread.CurrentThread.Join(1000 * 20);
        //                SendKeys.SendWait("olive12");
        //                Thread.CurrentThread.Join(1000 * 5);
        //                SendKeys.SendWait("{ENTER}");
        //                Thread.CurrentThread.Join(1000 * 5);
        //                SendKeys.SendWait("{ENTER}");
        //                Thread.CurrentThread.Join(1000 * 30);
        //                rsr.Run();
        //            }

        //            if (ssr != null)
        //                ssr.Subscribe();

        //            underReconnecting = false;
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        WriteMsg(ex.ToString(), LogType.ERROR);
        //    }

        //}

        private static List <string> GetStockCodes(string aStockGroup)
        {
            //throw new NotImplementedException();
            try
            {
                SqlDal sd = new SqlDal(dbConnString);
                return(sd.GetStockCode(aStockGroup));
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("DataCollector", e.ToString());
            }
            return(new List <string>());
        }
        public void RedisToApi()
        {
            Redishelper.Delete("SortingList");
            var peroidLists = SqlDal.GetPeriodAAModelList();

            if (peroidLists.Count <= 0)
            {
                return;
            }
            Redishelper.PushList <AAGetModel>("SortingList", peroidLists);
            var peroidListsPop = Redishelper.PopList <AAGetModel>("SortingList", Convert.ToInt16(ConfigurationManager.AppSettings["OncRedisPopNumber"]));
            var a = peroidListsPop.First();

            Assert.IsNotNull(a.BillNumber);
        }
Beispiel #16
0
 /// <summary>
 /// The resolve thread.
 /// </summary>
 public void StartService()
 {
     try
     {
         SqlDal.UpdateAllDtuStatus();
         this._modbusWrapper = ModBusWrapper.CreateInstance(Protocol.TCPIP);
         this._modbusWrapper.OnDataReceived             += this.Wrapper_ReceiveData;
         this._modbusWrapper.OnConnectionChangedHandler += OnConnectionChangedEvevt;
         this._modbusWrapper.StartService();
     }
     catch (Exception ex)
     {
         Log.Error(ex.Message);
     }
 }
Beispiel #17
0
        // 7. 데이터 저장 메소드 추가
        //void stockMember_Received()
        //{
        //    //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " : stockMember_Received");
        //    //throw new NotImplementedException();
        //    try
        //    {
        //        if (DateTime.Now >= sDateTime && DateTime.Now <= eDateTime)
        //        {
        //            //WriteMsg("StockMember", LogType.INFORMATION, LogDir, "StockMember 신호 수신", flms["StockMember"]);

        //            SqlDal sd = new SqlDal(dbConnString);
        //            object StockCode = stockMember.GetHeaderValue(0);
        //            object count = stockMember.GetHeaderValue(1);
        //            object time = stockMember.GetHeaderValue(2);

        //            List<object> Params = new List<object>();
        //            object[] objArry;

        //            for (int j = 0; j < int.Parse(count.ToString()); j++)
        //            {
        //                Params.Add(StockCode);
        //                Params.Add(j);
        //                Params.Add(time);

        //                for (int i = 0; i < 4; i++)
        //                {
        //                    object o = stockMember.GetDataValue(i, j);
        //                    if (o == null) o = "0";
        //                    Params.Add(o);
        //                }

        //                objArry = Params.ToArray();
        //                sd.SaveStockMember(objArry);

        //                Params.Clear();
        //            }
        //            //WriteMsg("StockMember", LogType.INFORMATION, LogDir, string.Format("{0} 저장", StockCode), flms["StockMember"]);

        //            sd.Close();
        //            sd = null;

        //            Params = null;
        //            objArry = null;
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        //WriteMsg("StockMember", LogType.ERROR, LogDir, ex.ToString(), "StockMember");
        //        EventLog.WriteEntry("SubscribeStocksRunner", ex.ToString());
        //    }
        //}

        //void stockJpBid_Received()
        //{
        //    //throw new NotImplementedException();
        //    try
        //    {
        //        if (DateTime.Now >= sDateTime && DateTime.Now <= eDateTime)
        //        {
        //            //WriteMsg("StockJpbid", LogType.INFORMATION, LogDir, "StockJpbid 신호 수신", flms["StockJpbid"]);

        //            SqlDal sd = new SqlDal(dbConnString);
        //            List<object> Params = new List<object>();
        //            object[] objArry;

        //            for (int i = 0; i < 69; i++)
        //            {
        //                object o = stockJpBid.GetHeaderValue(i);
        //                if (o == null) o = "0";
        //                Params.Add(o);
        //            }

        //            objArry = Params.ToArray();
        //            sd.SaveStockJpbid(objArry);
        //            //WriteMsg("StockJpbid", LogType.INFORMATION, LogDir, "저장", flms["StockJpbid"]);

        //            sd.Close();
        //            sd = null;

        //            Params.Clear();
        //            Params = null;

        //            objArry = null;
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        //WriteMsg("StockJpbid", LogType.ERROR, LogDir, ex.ToString(), "StockJpbid");
        //        EventLog.WriteEntry("SubscribeStocksRunner", ex.ToString());
        //    }
        //}

        //void stockIndexIS_Received()
        //{
        //    //throw new NotImplementedException();
        //    try
        //    {
        //        if (DateTime.Now >= sDateTime && DateTime.Now <= eDateTime)
        //        {
        //            //WriteMsg("StockIndexis", LogType.INFORMATION, LogDir, "StockIndexis 신호 수신", flms["StockIndexis"]);

        //            SqlDal sd = new SqlDal(dbConnString);
        //            List<object> Params = new List<object>();
        //            object[] objArry;

        //            for (int i = 1; i < 8; i++)
        //            {
        //                object o = stockIndexIS.GetHeaderValue(i);
        //                if (o == null) o = "0";
        //                Params.Add(o);
        //            }

        //            objArry = Params.ToArray();
        //            sd.SaveStockIndexis(objArry);
        //            //WriteMsg("StockIndexis", LogType.INFORMATION, LogDir, "저장", flms["StockIndexis"]);

        //            sd.Close();
        //            sd = null;

        //            Params.Clear();
        //            Params = null;

        //            objArry = null;
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        //WriteMsg("StockIndexis", LogType.ERROR, LogDir, ex.ToString(), "StockIndexis");
        //        EventLog.WriteEntry("SubscribeStocksRunner", ex.ToString());
        //        //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " : " + ex.ToString());
        //    }
        //}

        void stockCur_Received()
        {
            //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " : stockCur_Received");
            //throw new NotImplementedException();
            try
            {
                if (DateTime.Now >= sDateTime && DateTime.Now <= eDateTime)
                {
                    //WriteMsg("StockCur", LogType.INFORMATION, LogDir, "StockCur 신호 수신", flms["StockCur"]);

                    SqlDal        sd     = new SqlDal(dbConnString);
                    List <object> Params = new List <object>();
                    object[]      objArry;
                    for (int i = 0; i < 29; i++)
                    {
                        if (i == 11 || i == 12)
                        {
                            continue;
                        }

                        object o = stockCur.GetHeaderValue(i);
                        if (o == null)
                        {
                            o = "0";
                        }
                        Params.Add(o);
                    }
                    objArry = Params.ToArray();
                    sd.SaveStockCur(objArry);
                    //WriteMsg("StockCur", LogType.INFORMATION, LogDir, string.Format("{0} 저장", stockCur.GetHeaderValue(1)), flms["StockCur"]);

                    sd.Close();
                    sd = null;

                    Params.Clear();
                    Params = null;

                    objArry = null;
                }
            }
            catch (Exception ex)
            {
                //WriteMsg("StockCur", LogType.ERROR, LogDir, ex.ToString(), "StockCur");
                EventLog.WriteEntry("SubscribeStocksRunner", ex.ToString());
                //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " : " + ex.ToString());
            }
        }
Beispiel #18
0
        private void ChecknSell(string sCode)
        {
            try
            {
                //throw new NotImplementedException();
                SqlDal sd = new SqlDal(cConnString);

                //if (sd.SellAction(sCode) > 0)
                //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss.fff") + " : " + string.Format("{0} 종목 매도", sCode));

                sd.SellAction(sCode);
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("Simulator-gini_CPSVR8091S-ChecknSell", e.ToString());
            }
        }
Beispiel #19
0
        void cpMarketWatchS_Received()
        {
            //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " : cpMarketWatchS_Received");
            //throw new NotImplementedException();
            try
            {
                if (DateTime.Now >= sDateTime && DateTime.Now <= eDateTime)
                {
                    //WriteMsg("CpMarketWatchS", LogType.INFORMATION, LogDir, "CpMarketWatchS 신호 수신", flms["CpMarketWatchS"]);

                    object StockCode = cpMarketWatchS.GetHeaderValue(0);
                    object StockName = cpMarketWatchS.GetHeaderValue(1);
                    object count     = cpMarketWatchS.GetHeaderValue(2);

                    SqlDal        sd     = new SqlDal(dbConnString);
                    List <object> Params = new List <object>();
                    object[]      objArry;
                    for (int i = 0; i < int.Parse(count.ToString()); i++)
                    {
                        Params.Add(StockCode);
                        Params.Add(StockName);
                        Params.Add(cpMarketWatchS.GetDataValue(0, i));
                        Params.Add(cpMarketWatchS.GetDataValue(1, i));
                        Params.Add(cpMarketWatchS.GetDataValue(2, i));

                        objArry = Params.ToArray();
                        sd.SaveCpMarketWatchS(objArry);

                        Params.Clear();
                    }
                    //WriteMsg("CpMarketWatchS", LogType.INFORMATION, LogDir, "저장", flms["CpMarketWatchS"]);

                    sd.Close();
                    sd = null;

                    Params  = null;
                    objArry = null;
                }
            }
            catch (Exception ex)
            {
                //WriteMsg("CpMarketWatchS", LogType.ERROR, LogDir, ex.ToString(), "CpMarketWatchS");
                EventLog.WriteEntry("SubscribeStocksRunner", ex.ToString());
                //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " : " + ex.ToString());
            }
        }
Beispiel #20
0
        private static void UpdateRemainSubscribe()
        {
            //throw new NotImplementedException();
            try
            {
                CPUTILLib.CpCybos ccbos = new CPUTILLib.CpCybos();
                SqlDal            sd    = new SqlDal(dbConnString);
                sd.UpdateRemainSubscribe(new object[] { ccbos.GetLimitRemainCount(CPUTILLib.LIMIT_TYPE.LT_SUBSCRIBE).ToString() });

                sd.Close();
                sd = null;

                ccbos = null;
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("DataCollector", e.ToString());
            }
        }
Beispiel #21
0
        private void btnDele_Click(object sender, EventArgs e)
        {
            SqlDal db = new SqlDal();

            if (cbTruncateZhuBi.Checked)
            {
                db.TruncateZhuBi();
            }
            else
            {
                string maxDate = dtpEnd.Value.Year.ToString() + ("0" + dtpEnd.Value.Month.ToString()).Substring(("0" + dtpEnd.Value.Month.ToString()).Length - 2, 2) + ("0" + dtpEnd.Value.Day.ToString()).Substring(("0" + dtpEnd.Value.Day.ToString()).Length - 2, 2);

                string minDate = dtpStart.Value.Year.ToString() + ("0" + dtpStart.Value.Month.ToString()).Substring(("0" + dtpStart.Value.Month.ToString()).Length - 2, 2) + ("0" + dtpStart.Value.Day.ToString()).Substring(("0" + dtpStart.Value.Day.ToString()).Length - 2, 2);

                db.DeleZhuBiByDate(maxDate, minDate);
            }

            this.Close();
        }
Beispiel #22
0
        void cp8091s_Received()
        {
            //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " : cp8091s_Received");
            //throw new NotImplementedException();
            try
            {
                if (DateTime.Now >= sDateTime && DateTime.Now <= eDateTime)
                {
                    //WriteMsg("CpSvr8091S", LogType.INFORMATION, LogDir, "CpSvr8091S 신호 수신", flms["CpSvr8091S"]);

                    SqlDal        sd     = new SqlDal(dbConnString);
                    List <object> Params = new List <object>();
                    object[]      objArry;
                    for (int i = 0; i < 9; i++)
                    {
                        object o = cp8091s.GetHeaderValue(i);
                        if (o == null)
                        {
                            o = "0";
                        }
                        Params.Add(o);
                    }
                    objArry = Params.ToArray();
                    sd.SaveCpSvr8091S(objArry);
                    //WriteMsg("CpSvr8091S", LogType.INFORMATION, LogDir, "저장", flms["CpSvr8091S"]);

                    sd.Close();
                    sd = null;

                    Params.Clear();
                    Params = null;

                    objArry = null;
                }
            }
            catch (Exception ex)
            {
                //WriteMsg("CpSvr8091S", LogType.ERROR, LogDir, ex.ToString(), "CpSvr8091S");
                EventLog.WriteEntry("SubscribeStocksRunner", ex.ToString());
                //Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " : " + ex.ToString());
            }
        }
Beispiel #23
0
        public async Task ProcessAsync()
        {
            List <AAGetModel> peroidLists = SqlDal.GetPeriodAAModelList();

            Console.WriteLine($"TestTask:{DateTime.Now}");
            if (peroidLists.Any())
            {
                bool pushSuccess = await Redishelper.BoolPushList <AAGetModel>("SortingList", peroidLists);

                if (pushSuccess)
                {
                    SqlDal.ChangePeriodAAModelInfoListStatusInSql(peroidLists);
                    Console.WriteLine($"ChangeStatus:{DateTime.Now}");
                }
            }
            else
            {
                Console.WriteLine($"sleep:{DateTime.Now}");
                Thread.Sleep(20000);
            }
        }
Beispiel #24
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();
            }
        }
Beispiel #25
0
        //void SellAction(object aDr)
        //{
        //    DataRow dr = (DataRow)aDr;

        //    SellETRADE(dr["STOCKCODE"].ToString(),2.3,-1.7);

        //    SqlDal sd = new SqlDal(ConnectionString);
        //    sd.MarkSellFlag(dr["RAWID"].ToString());
        //}

        void OrderAction(object aDr)
        {
            try
            {
                DataRow dr     = (DataRow)aDr;
                long    amount = long.Parse(dr["AMOUNT"].ToString());
                long    price  = long.Parse(dr["BUY_POINT"].ToString());
                long    volume = long.Parse(dr["VOLUME"].ToString());

                SqlDal sd = new SqlDal(ConnectionString);

                if (sd.isCanBuy(price * volume))
                {
                    ETRADE_BUY eb = new ETRADE_BUY(ETRADEAccountNumber, dr["STOCKCODE"].ToString(), volume, amount, rbExec.Checked, LogWrite);

                    if (eb.BUY())
                    {
                        sd.MinusBalance(price * volume);
                        LogWrite(LogType.INFORMATION, string.Format("{0} 시장가 {1} 주 매수주문성공", dr["STOCKCODE"].ToString(), volume.ToString()));
                    }
                    else
                    {
                        LogWrite(LogType.ERROR, string.Format("{0} 시장가 {1} 주 매수주문실패", dr["STOCKCODE"].ToString(), volume.ToString()));
                    }


                    sd.MarkBuyFlag(dr["RAWID"].ToString());
                }
                else
                {
                    LogWrite(LogType.ERROR, string.Format("Balance 부족으로 {0} 매수주문 취소", dr["STOCKCODE"].ToString()));
                }
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("OrderForm-OrderAction", e.ToString());
            }
        }
Beispiel #26
0
        private void CheckSignal_MA_Minute(object aStockCode)
        {
            SqlDal sd    = new SqlDal(cConnString);
            string sCode = (string)aStockCode;

            try
            {
                //DataSet dsMA = sd.GetMAData_Minute(sCode);
                DataSet dsMA = sd.GetMAData_Minute_ALLNEW(sCode);

                //ProcessMA_Minute(sd, sCode, dsMA, "1");
                ProcessMA_Minute(sd, sCode, dsMA, "3");
                ProcessMA_Minute(sd, sCode, dsMA, "5");
                ProcessMA_Minute(sd, sCode, dsMA, "7");
                ProcessMA_Minute(sd, sCode, dsMA, "10");

                return;
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("GeniusBaseSignal-CheckSignal_MA_Minute", e.ToString());
            }
        }
Beispiel #27
0
        public IEnumerable <WeatherForecast> WeatherForecasts()
        {
            SqlDal sql       = new SqlDal(configuration);
            var    testValue = sql.TestSql();

            //var exampleValueFromConfig = configuration["Greeting"];
            var rng = new Random();

            var toReturn = Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                DateFormatted = DateTime.Now.AddDays(index).ToString("d"),
                TemperatureC  = rng.Next(-20, 55),
                Summary       = Summaries[rng.Next(Summaries.Length)]
            });

            var testW = new WeatherForecast {
                DateFormatted = DateTime.Now.ToString("d"), TemperatureC = 0, Summary = testValue
            };

            toReturn = toReturn.ToList().Append(testW);

            return(toReturn);
        }
Beispiel #28
0
        public bool isGoodTiming(string aStockCode)
        {
            bool retbool = false;

            try
            {
                SqlDal  sd      = new SqlDal(cConnString);
                DataSet dsCur   = sd.GetLatestStockCur(aStockCode);
                DataSet dsBuy01 = sd.GetBUY01(aStockCode);

                if (dsCur.Tables.Count > 0 && dsCur.Tables[0].Rows.Count > 0)
                {
                    if (dsBuy01.Tables.Count > 0 && dsBuy01.Tables[0].Rows.Count > 0)
                    {
                        if (HasStock(aStockCode))
                        {
                            // 해당 종목 보유시에는 구매 Timing 이 아님
                            retbool = false;
                        }
                        else if (BuyCheck(dsCur, dsBuy01))
                        {
                            retbool = true;
                        }
                        else
                        {
                            retbool = false;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("Trader-gini_STOCKCUR-GoodTiming", e.ToString());
            }

            return(retbool);
        }
Beispiel #29
0
        private void ChecknBuy(object aStockCode)
        {
            try
            {
                SqlDal sd = new SqlDal(cConnString);

                if (DateTime.Now <= sd.GetBuyLimitTime())
                {
                    string sCode = aStockCode.ToString();

                    DataSet dsCur   = sd.GetLatestStockJpBid(sCode);
                    DataSet dsBuy03 = sd.GetBUY03(sCode);

                    if (dsCur.Tables.Count > 0 && dsCur.Tables[0].Rows.Count > 0)
                    {
                        if (dsBuy03.Tables.Count > 0 && dsBuy03.Tables[0].Rows.Count > 0)
                        {
                            if (HasStock(sCode))
                            {
                                ChecknSell(sCode);
                            }
                            else
                            {
                                if (BuyCheck(dsCur, dsBuy03))
                                {
                                    Do_Buy(sCode);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                EventLog.WriteEntry("Simulator-gini_STOCKJPBID-ChecknBuy", e.ToString());
            }
        }
Beispiel #30
0
        private void DeleZhuBi_Load(object sender, EventArgs e)
        {
            SqlDal db      = new SqlDal();
            string maxDate = db.GetMaxZhuBiDate();
            string minDate = db.GetMinZhuBiDate();

            if (maxDate == null)
            {
                this.dtpEnd.Value = DateTime.Now;
            }
            else
            {
                this.dtpEnd.Value = new DateTime(Convert.ToInt32(maxDate.Substring(0, 4)), Convert.ToInt32(maxDate.Substring(4, 2)), Convert.ToInt32(maxDate.Substring(6, 2)));
            }

            if (minDate == null)
            {
                this.dtpStart.Value = DateTime.Now;
            }
            else
            {
                this.dtpStart.Value = new DateTime(Convert.ToInt32(minDate.Substring(0, 4)), Convert.ToInt32(minDate.Substring(4, 2)), Convert.ToInt32(minDate.Substring(6, 2)));
            }
        }