Example #1
0
        static void _cel_TicksResolved(CQGTicks cqgTicks, CQGError cqgError)
        {
            ChangeTimeoutState(false, false);

            if (_isStoped)
            {
                return;
            }

            var symbol = cqgTicks.Request.Symbol;

            StoreTickData(cqgTicks, cqgError, _userName);
        }
Example #2
0
        public static void StoreBarData(CQGTimedBars mCurTimedBars, CQGError cqgError, string userName)
        {
            //try
            //{g

            if (cqgError != null && cqgError.Code != 0)
            {
                FinishCollectingSymbol(mCurTimedBars.Request.Symbol, false, 0, "Expired! Error code: " + cqgError.Code + ". Description:" + cqgError.Description);
            }
            else
            {
                var str5 = mCurTimedBars.Request.Symbol.Trim();
                var str  = str5.Split('.');
                str5 = str[str.Length - 1];
                var tableName = "B_" + str5 + "_" + GetTableType(_historicalPeriod);


                var realyInsertedRows = 0;

                if (mCurTimedBars.Status == eRequestStatus.rsSuccess)
                {
                    ClientDatabaseManager.DeleteLastBar("B_" + str5 + "_" + GetTableType(_historicalPeriod));

                    var lastExisting3000BarData = ClientDatabaseManager.GetLast3000BarData(tableName);

                    if (mCurTimedBars.Count != 0)
                    {
                        for (int i = mCurTimedBars.Count - 1; i >= 0; i--)
                        {
                            if (!lastExisting3000BarData.Contains(mCurTimedBars[i].Timestamp))
                            {
                                AddBar(mCurTimedBars[i], mCurTimedBars.Request.Symbol, DateTime.Now, GetTableType(_historicalPeriod), userName);
                                realyInsertedRows++;
                            }
                        }
                    }
                    ClientDatabaseManager.CommitQueueBar();
                }
                //var rowsCount = mCurTimedBars.Count;//DatabaseManager.GetRowsCount("B_" + str5 + "_" + GetTableType(_historicalPeriod)) - beforeRowsCount
                FinishCollectingSymbol(mCurTimedBars.Request.Symbol, true, realyInsertedRows, "");
            }



            //}
            //catch (Exception ex)
            //{
            //    Console.WriteLine("BarsAdd."+ex.Message);
            //}
        }
Example #3
0
        /// <summary>
        /// This event is fired when the custom study (CQGCustomStudy) is resolved
        /// or when some error has occurred during the custom studies request processing.
        /// </summary>
        /// <param name="cqg_custom_study">
        /// Reference to resolved CQGCustomStudy.
        /// </param>
        /// <param name="cqg_error">
        /// The CQGError object that describes the last error occurred
        /// while processing the CustomStudy request or
        /// Nothing/Invalid_Error in case of no error.
        /// </param>
        private void CEL_CustomStudyResolved(CQGCustomStudy cqg_custom_study, CQGError cqg_error)
        {
            try
            {
                lock (m_CustomStudyToken1)
                {
                    try
                    {
                        driverLog.Info("CEL_CustomStudyResolved:" + cqg_custom_study.Id);

                        // try get the set
                        KaiTrade.Interfaces.ITSSet mySet;
                        if (m_TSSets.ContainsKey(cqg_custom_study.Id))
                        {
                            mySet = m_TSSets[cqg_custom_study.Id];
                            if (cqg_custom_study.Status == eRequestStatus.rsSuccess)
                            {
                                // Clears all records
                                mySet.Items.Clear();
                                mySet.Status = KaiTrade.Interfaces.Status.open;
                                if (cqg_custom_study.Count == 0)
                                {
                                    return;
                                }

                                for (int i = 0; i < cqg_custom_study.Count; i++)
                                {
                                    // get a new TS item
                                    KaiTrade.Interfaces.ITSItem myItem = mySet.GetNewItem();
                                    myItem.Index = i;
                                    myItem.TimeStamp = cqg_custom_study[i].Timestamp;
                                    myItem.ConditionName = mySet.ConditionName;

                                    CQGCurves myCurves = cqg_custom_study[i];

                                    for (int j = 0; j <= myCurves.Count - 1; j++)
                                    {
                                        myItem.SetCurveValue(cqg_custom_study.CurveHeaders[j], double.Parse(myCurves[j].ToString()));
                                    }

                                    mySet.AddItem(myItem);
                                }
                                mySet.Added = true;
                            }
                            else
                            {
                                mySet.Text = cqg_error.Description;
                                mySet.Status = KaiTrade.Interfaces.Status.error;
                                this.SendStatusMessage(KaiTrade.Interfaces.Status.open, "CEL_CustomStudyResolved" + mySet.Text);
                            }
                        }
                        else
                        {
                            driverLog.Info("CEL_CustomStudyResolved:TSData not found");
                        }
                    }
                    catch (Exception myE)
                    {
                        log.Error("CEL_CustomStudyResolved", myE);
                    }
                }
            }
            catch
            {
            }
        }
Example #4
0
        public void TicksAdd(CQGTicks cqg_ticks, CQGError cqgError, string userName)
        {
            if (_shouldStop) return;
            try
            {
                _logger.LogAdd("Tick data resolved for symbol:" + cqg_ticks.Request.Symbol, Category.Information, true);

                var ss = _aSymbolStates[cqg_ticks.Request.Symbol];
                ss.IsCollected = true;

                if (cqgError != null && cqgError.Code != 0)
                {
                    ss.IsSuccess = false;
                }
                else
                {
                    DatabaseManager.CreateTickTable(cqg_ticks.Request.Symbol);

                    DateTime runDateTime = DateTime.Now;
                    int groupId = 0;

                    if (cqg_ticks.Count != 0)
                    {
                        DatabaseManager.DeleteTicks(cqg_ticks.Request.Symbol, cqg_ticks[0].Timestamp, cqg_ticks[cqg_ticks.Count - 1].Timestamp);
                        for (int i = cqg_ticks.Count - 1; i >= 0; i--)
                        {
                            if (_shouldStop) break;
                            AddTick(cqg_ticks[i], cqg_ticks.Request.Symbol, runDateTime, ++groupId, userName);
                        }

                    }
                    DatabaseManager.CommitQueueTick();

                    ss.IsSuccess = true;
                }
                _aSymbolStates[cqg_ticks.Request.Symbol] = ss;
                OnSymbolCollectEnd(cqg_ticks.Request.Symbol, ss.IsSuccess, _historicalPeriod);

                if (SymbolsCollected == _aSymbolStates.Count)
                {
                    OnFinished();
                }

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                _logger.LogAdd("TicksAdd. " + ex, Category.Error);
            }
        }
        public static void TicksAdd(CQGTicks cqgTicks, CQGError cqgError, string userName)
        {
            try
            {

                if (cqgError != null && cqgError.Code != 0)
                {
                    FinishCollectingSymbol(cqgTicks.Request.Symbol, false);
                }
                else
                {
                    DatabaseManager.CreateTickTable(cqgTicks.Request.Symbol);

                    DateTime runDateTime = DateTime.Now;
                    int groupId = 0;
                    if (cqgTicks.Count != 0)
                    {
                        new Thread(() =>
                        {

                            lock (_lockHistInsert)
                            {
                                OnTickInsertingStarted(cqgTicks.Request.Symbol, cqgTicks.Count);
                                DateTime _tmpTime=new DateTime();
                                int end;
                                if (_rangeDateEnd == _tmpTime)
                                {
                                    end = cqgTicks.Count - 1;
                                }
                                else end = CqgGetId(cqgTicks, _rangeDateEnd);

                                Console.WriteLine(DatabaseManager.GetMinTime(cqgTicks.Request.Symbol));
                                Console.WriteLine(DatabaseManager.GetMaxTime(cqgTicks.Request.Symbol));
                                Console.WriteLine(cqgTicks.StartTimestamp);
                                Console.WriteLine(cqgTicks[end].Timestamp);
                                if (_tmpTime == DatabaseManager.GetMinTime(cqgTicks.Request.Symbol))//todo if empty
                                {
                                    var progr = 0;
                                    var rowsMaxCount = end;
                                    var rowsInserted = 0;
                                    OnProgressBarChanged(progr);
                                    Console.WriteLine(cqgTicks[end].Timestamp);
                                    Console.WriteLine(cqgTicks[0].Timestamp);
                                    for (int i = 0; i <=end; i++)
                                    {
                                        rowsInserted++;
                                        //Console.WriteLine(cqgTicks[i].Timestamp);
                                        if (_isStoped) break;
                                        AddTick(cqgTicks[i], cqgTicks.Request.Symbol, runDateTime, ++groupId, userName);
                                        var cto = (double)rowsMaxCount;
                                        var newProgr = (int)Math.Round((rowsInserted / cto) * 100f);
                                        if (newProgr > progr)
                                        {
                                            progr = newProgr;
                                            OnProgressBarChanged(progr);
                                        }
                                        //OnProgressBarChanged(progress);

                                    }
                                }
                                else if (DatabaseManager.GetMinTime(cqgTicks.Request.Symbol) > cqgTicks.StartTimestamp &&//todo ned test//6
                                         DatabaseManager.GetMaxTime(cqgTicks.Request.Symbol) < cqgTicks[end].Timestamp)
                                {

                                    int first_start = 0;
                                    int first_end = CqgGetId(cqgTicks,DatabaseManager.GetMinTime(cqgTicks.Request.Symbol));
                                    Console.WriteLine(cqgTicks[first_start].Timestamp + " " + cqgTicks[first_end].Timestamp);
                                    int last_start = CqgGetId(cqgTicks, DatabaseManager.GetMaxTime(cqgTicks.Request.Symbol));
                                    int last_end = end;
                                    Console.WriteLine(cqgTicks[last_start].Timestamp + " " + cqgTicks[last_end].Timestamp);
                                    for (int i = first_start; i <= first_end; i++)
                                    {
                                        if (_isStoped) break;
                                        AddTick(cqgTicks[i], cqgTicks.Request.Symbol, runDateTime, ++groupId, userName);
                                    }
                                    for (int i = last_start; i <= last_end; i++)
                                    {
                                        if (_isStoped) break;
                                        AddTick(cqgTicks[i], cqgTicks.Request.Symbol, runDateTime, ++groupId, userName);
                                    }

                                }
                                else if (
                                    DatabaseManager.GetMaxTime(cqgTicks.Request.Symbol) < cqgTicks[end].Timestamp &&
                                    DatabaseManager.GetMaxTime(cqgTicks.Request.Symbol) > cqgTicks.StartTimestamp)//todo ned test//4
                                {
                                    int StartTimestamp = CqgGetId(cqgTicks, DatabaseManager.GetMaxTime(cqgTicks.Request.Symbol));
                                    Console.WriteLine(cqgTicks[StartTimestamp].Timestamp);
                                    Console.WriteLine(cqgTicks[end].Timestamp);
                                    var progr = 0;
                                    OnProgressBarChanged(progr);

                                    var rowsMaxCount = end - StartTimestamp;
                                    var rowsInserted=0;
                                    for (int i = StartTimestamp; i <= end; i++)
                                    {
                                        rowsInserted++;

                                        if (_isStoped) break;
                                        AddTick(cqgTicks[i], cqgTicks.Request.Symbol, runDateTime, ++groupId, userName);

                                        var cto = (double)rowsMaxCount;
                                        var newProgr = (int)Math.Round((rowsInserted / cto) * 100f);
                                        if (newProgr > progr)
                                        {
                                            progr = newProgr;
                                            OnProgressBarChanged(progr);
                                        }
                                    }
                                    //Console.WriteLine(cqgTicks.StartTimestamp);

                                }
                                else if (DatabaseManager.GetMinTime(cqgTicks.Request.Symbol) < cqgTicks[end].Timestamp &&
                                    DatabaseManager.GetMinTime(cqgTicks.Request.Symbol) > cqgTicks.StartTimestamp)//todo ned test//5
                                {
                                    end = CqgGetId(cqgTicks,DatabaseManager.GetMinTime(cqgTicks.Request.Symbol));
                                    Console.WriteLine(cqgTicks[end].Timestamp);
                                   Console.WriteLine(cqgTicks[0].Timestamp);
                                    var progr = 0;
                                    OnProgressBarChanged(progr);
                                    var rowsInserted = 0;
                                    var rowsMaxCount = end;
                                    for (int i = 0; i <= end; i++)
                                    {
                                        rowsInserted++;
                                        if (_isStoped) break;
                                        AddTick(cqgTicks[i], cqgTicks.Request.Symbol, runDateTime, ++groupId, userName);

                                        var cto = (double)rowsMaxCount;
                                        var newProgr = (int)Math.Round((rowsInserted / cto) * 100f);
                                        if (newProgr > progr)
                                        {
                                            progr = newProgr;
                                            OnProgressBarChanged(progr);
                                        }

                                    }
                                }
                                else if (DatabaseManager.GetMinTime(cqgTicks.Request.Symbol) > cqgTicks[end].Timestamp)//todo test 2
                                {
                                    var progr = 0;
                                    OnProgressBarChanged(progr);
                                    var rowsInserted = 0;
                                    var rowsMaxCount = end;
                                    for (int i = 0; i <= end; i++)
                                    {
                                        if (_isStoped) break;
                                        AddTick(cqgTicks[i], cqgTicks.Request.Symbol, runDateTime, ++groupId, userName);
                                        var cto = (double)rowsMaxCount;
                                        var newProgr = (int)Math.Round((rowsInserted / cto) * 100f);
                                        if (newProgr > progr)
                                        {
                                            progr = newProgr;
                                            OnProgressBarChanged(progr);
                                        }
                                    }
                                }
                                else if (DatabaseManager.GetMaxTime(cqgTicks.Request.Symbol) < cqgTicks.StartTimestamp)//todo test 1
                                {
                                    var progr = 0;
                                    OnProgressBarChanged(progr);
                                    var rowsInserted = 0;
                                    var rowsMaxCount = end;
                                    for (int i = 0; i <= end; i++)
                                    {
                                        if (_isStoped) break;
                                        AddTick(cqgTicks[i], cqgTicks.Request.Symbol, runDateTime, ++groupId, userName);
                                        var cto = (double)rowsMaxCount;
                                        var newProgr = (int)Math.Round((rowsInserted / cto) * 100f);
                                        if (newProgr > progr)
                                        {
                                            progr = newProgr;
                                            OnProgressBarChanged(progr);
                                        }

                                    }
                                }

                                DatabaseManager.CommitQueueTick();

                                FinishCollectingSymbol(cqgTicks.Request.Symbol, true);
                                OnProgressBarChanged(100);
                            }

                        }) { Name ="InsertingHistoricalThread"}.Start();

                    }

                }

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        static void _cel_TimedBarsResolved(CQGTimedBars cqgTimedBars, CQGError cqgError)
        {
            ChangeTimeoutState(false, false);

            if (_isStoped) return;

            var symbol = cqgTimedBars.Request.Symbol;

            BarsAdd(cqgTimedBars, cqgError, _userName);
            FinishCollectingSymbol(symbol, true);
        }
 static void _cel_HistoricalSessionsResolved(CQGSessionsCollection cqgHistoricalSessions, CQGHistoricalSessionsRequest cqgHistoricalSessionsRequest, CQGError cqgError)
 {
 }
Example #8
0
 static void _cel_HistoricalSessionsResolved(CQGSessionsCollection cqgHistoricalSessions, CQGHistoricalSessionsRequest cqgHistoricalSessionsRequest, CQGError cqgError)
 {
 }
        public static void TicksAdd(CQGTicks cqgTicks, CQGError cqgError, string userName)
        {
            try
            {

                if (cqgError != null && cqgError.Code != 0)
                {

                }
                else
                {
                    DataNetClientDataManager.CreateTickTable(cqgTicks.Request.Symbol);

                    DateTime runDateTime = DateTime.Now;
                    int groupId = 0;

                    if (cqgTicks.Count != 0)
                    {
                        DataNetClientDataManager.DeleteTicks(cqgTicks.Request.Symbol, cqgTicks[0].Timestamp, cqgTicks[cqgTicks.Count - 1].Timestamp);
                        for (int i = cqgTicks.Count - 1; i >= 0; i--)
                        {
                            AddTick(cqgTicks[i], cqgTicks.Request.Symbol, runDateTime, ++groupId, userName);
                        }

                    }
                    DataNetClientDataManager.CommitQueueTick();

                }

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public static void BarsAdd(CQGTimedBars mCurTimedBars, CQGError cqgError, string userName)
        {
            try
            {

                if (cqgError != null && cqgError.Code != 0)
                {

                }
                else
                {
                    if (mCurTimedBars.Status == eRequestStatus.rsSuccess)
                    {
                        DateTime runDateTime = DateTime.Now;
                        if (mCurTimedBars.Count != 0)
                        {
                            for (int i = mCurTimedBars.Count - 1; i >= 0; i--)
                            {
                                AddBar(mCurTimedBars[i], mCurTimedBars.Request.Symbol, runDateTime, GetTableType(_historicalPeriod), userName);
                            }
                        }
                        DataNetClientDataManager.CommitQueueBar();
                    }
                }

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        static void _cel_TimedBarsResolved(CQGTimedBars cqgTimedBars, CQGError cqgError)
        {
            if (_isStoped) return;
            var symbol = cqgTimedBars.Request.Symbol;

            BarsAdd(cqgTimedBars, cqgError, _userName);
            FinishCollectingSymbol(symbol);
        }
Example #12
0
 void CQG_TicksResolved(CQGTicks cqg_ticks, CQGError cqg_error)
 {
     _dataCollector.TicksAdd(cqg_ticks, cqg_error, _client.UserName);
 }
Example #13
0
 void CEL_TimedBarsResolved(CQGTimedBars cqg_timed_bars, CQGError cqg_error)
 {
     _dataCollector.BarsAdd(cqg_timed_bars, cqg_error, _client.UserName);
 }
Example #14
0
 void CEL_HistoricalSessionsResolved(CQGSessionsCollection cqg_historical_sessions, CQGHistoricalSessionsRequest cqg_historical_sessions_request, CQGError cqg_error)
 {
     _dataCollector.HolidaysAdd(cqg_historical_sessions, cqg_historical_sessions_request.Symbol);
 }
Example #15
0
 void CQGApp_TradableCommoditiesResolved(int gw_account_id, CQGCommodities cqg_commodities, CQGError cqg_error)
 {
     //throw new NotImplementedException();
 }
		private void SessionOnAlgorithmicOrderRegistrationComplete(string guid, CQGError cqgError)
		{

		}
		private void SessionOnPositionsStatementResolved(CQGPositionsStatement cqgPositionsStatement, CQGError cqgError)
		{

		}
 private void SessionOnPositionsStatementResolved(CQGPositionsStatement cqgPositionsStatement, CQGError cqgError)
 {
 }
 private void SessionOnOrderChanged(eChangeType changeType, CQGOrder cqgOrder, CQGOrderProperties oldProperties, CQGFill cqgFill, CQGError cqgError)
 {
 }
 private void SessionOnAlgorithmicOrderRegistrationComplete(string guid, CQGError cqgError)
 {
 }
Example #21
0
        //**

        public static void StoreTickData(CQGTicks cqgTicks, CQGError cqgError, string userName)
        {
            //try
            //{

            if ((cqgError != null && cqgError.Code != 0))
            {
                FinishCollectingSymbol(cqgTicks.Request.Symbol, false, 0, "Expired! Error code: " + cqgError.Code + ". Description:" + cqgError.Description);
                return;
            }
            if (cqgTicks.Count == 0)
            {
                FinishCollectingSymbol(cqgTicks.Request.Symbol, false, 0, "No data recived");
                return;
            }

            new Thread(() =>
            {
                lock (_lockHistInsert)
                {
                    int groupId = 0;

                    OnTickInsertingStarted(cqgTicks.Request.Symbol, cqgTicks.Count);
                    DateTime _tmpTime = new DateTime();
                    int first_start   = 0;
                    int first_end     = _rangeDateEnd == _tmpTime ? cqgTicks.Count - 1 : CqgGetId(cqgTicks, _rangeDateEnd);

                    ///****************************************//
                    //inserting
                    OnProgressBarChanged(0);
                    var progr              = 0;
                    var rowsMaxCount       = (first_end - first_start);
                    var rowsInserted       = 0;
                    var cto                = (double)rowsMaxCount;
                    var realyInsertedCount = 0;

                    for (int i = first_start; i <= first_end; i++)
                    {
                        if (_isStoped)
                        {
                            break;
                        }


                        ClientDatabaseManager.CreateTickTable(cqgTicks.Request.Symbol, cqgTicks[i].Timestamp);

                        if (!ClientDatabaseManager.IsThisHourExistsInTable(cqgTicks.Request.Symbol, cqgTicks[i].Timestamp))
                        {
                            AddTick(cqgTicks[i], cqgTicks.Request.Symbol, DateTime.Now, ++groupId, userName);
                            realyInsertedCount++;
                        }



                        rowsInserted++;
                        var newProgr = (int)Math.Round((rowsInserted / cto) * 100f);
                        if (newProgr > progr)
                        {
                            progr = newProgr;
                            OnProgressBarChanged(progr);
                        }
                    }


                    ClientDatabaseManager.CommitQueueTick();

                    if (!_isStoped)
                    {
                        FinishCollectingSymbol(cqgTicks.Request.Symbol, true, realyInsertedCount, "");
                    }
                    OnProgressBarChanged(100);
                }
            })
            {
                Name = "InsertingHistoricalThread"
            }.Start();

            //}

            //catch (Exception ex)
            //{
            //    Console.WriteLine("TicksAdd"+ex.Message);
            //}
        }
        static void _cel_TimedBarsResolved(CQGTimedBars cqgTimedBars, CQGError cqgError)
        {
            ChangeTimeoutState(false, false);
            if (!IsStarted) return;
            if (_isStoped) return;

            var symbol = cqgTimedBars.Request.Symbol;
            StoreBarData(cqgTimedBars, cqgError, _userName);
        }
        static void _cel_TicksResolved(CQGTicks cqgTicks, CQGError cqgError)
        {
            ChangeTimeoutState(false, false);

            if (_isStoped) return;

            var symbol = cqgTicks.Request.Symbol;
            TicksAdd(cqgTicks, cqgError, _userName);
        }
        public static void StoreBarData(CQGTimedBars mCurTimedBars, CQGError cqgError, string userName)
        {
            //try
            //{g

            if (cqgError != null && cqgError.Code != 0)
            {
                FinishCollectingSymbol("B",mCurTimedBars.Request.Symbol, false, 0, "Expired! Error code: " + cqgError.Code + ". Description:" + cqgError.Description);
            }
            else
            {
                var str5 = mCurTimedBars.Request.Symbol.Trim();
                var str = str5.Split('.');
                str5 = str[str.Length - 1];
                var tableName = "B_" + str5 + "_" + GetTableType(_historicalPeriod);

                var realyInsertedRows = 0;

                if (mCurTimedBars.Status == eRequestStatus.rsSuccess)
                {
                    ClientDatabaseManager.DeleteLastBar("B_" + str5 + "_" + GetTableType(_historicalPeriod));

                    var lastExisting3000BarData = ClientDatabaseManager.GetLast3000BarData(tableName);

                    if (mCurTimedBars.Count != 0)
                    {
                        for (int i = mCurTimedBars.Count - 1; i >= 0; i--)
                        {
                            if (!lastExisting3000BarData.Contains(mCurTimedBars[i].Timestamp))
                            {
                                AddBar(mCurTimedBars[i], mCurTimedBars.Request.Symbol, DateTime.Now, GetTableType(_historicalPeriod), userName);
                                realyInsertedRows++;
                            }
                        }
                    }
                    ClientDatabaseManager.CommitQueueBar();

                }
                //var rowsCount = mCurTimedBars.Count;//DatabaseManager.GetRowsCount("B_" + str5 + "_" + GetTableType(_historicalPeriod)) - beforeRowsCount
                FinishCollectingSymbol("B",mCurTimedBars.Request.Symbol, true, realyInsertedRows, "");
            }

            //}
            //catch (Exception ex)
            //{
            //    Console.WriteLine("BarsAdd."+ex.Message);
            //}
        }
        public static void BarsAdd(CQGTimedBars mCurTimedBars, CQGError cqgError, string userName)
        {
            try
            {

                if (cqgError != null && cqgError.Code != 0)
                {
                    FinishCollectingSymbol(mCurTimedBars.Request.Symbol, false);
                }
                else
                {
                    var str5 = mCurTimedBars.Request.Symbol.Trim();
                var str = str5.Split('.');
                str5 = str[str.Length - 1];

                    if (mCurTimedBars.Status == eRequestStatus.rsSuccess)
                    {
                        DatabaseManager.DeleteLastBar("B_" + str5 + "_" + GetTableType(_historicalPeriod));

                        DateTime runDateTime = DateTime.Now;
                        if (mCurTimedBars.Count != 0)
                        {
                            for (int i = mCurTimedBars.Count - 1; i >= 0; i--)
                            {
                                AddBar(mCurTimedBars[i], mCurTimedBars.Request.Symbol, runDateTime, GetTableType(_historicalPeriod), userName);
                            }
                        }
                        DatabaseManager.CommitQueueBar();
                    }
                }

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        //**
        public static void StoreTickData(CQGTicks cqgTicks, CQGError cqgError, string userName)
        {
            //try
            //{

            if ((cqgError != null && cqgError.Code != 0))
            {
                FinishCollectingSymbol("T",cqgTicks.Request.Symbol, false, 0, "Expired! Error code: " + cqgError.Code + ". Description:" + cqgError.Description);
                return;

            }
            if (cqgTicks.Count == 0)
            {
                FinishCollectingSymbol("T",cqgTicks.Request.Symbol, false, 0, "No data recived");
                return;
            }

            new Thread(() =>
            {

                lock (_lockHistInsert)
                {

                    int groupId = 0;

                    OnTickInsertingStarted(cqgTicks.Request.Symbol, cqgTicks.Count);
                    DateTime _tmpTime = new DateTime();
                    int first_start = 0;
                    int first_end = _rangeDateEnd == _tmpTime ? cqgTicks.Count - 1 : CqgGetId(cqgTicks, _rangeDateEnd);

                    ///****************************************//
                    //inserting
                    OnProgressBarChanged(0);
                    var progr = 0;
                    var rowsMaxCount = (first_end - first_start);
                    var rowsInserted = 0;
                    var cto = (double)rowsMaxCount;
                    var realyInsertedCount = 0;

                    for (int i = first_start; i <= first_end; i++)
                    {
                        if (_isStoped) break;

                        ClientDatabaseManager.CreateTickTable(cqgTicks.Request.Symbol, cqgTicks[i].Timestamp);

                        if (!ClientDatabaseManager.IsThisHourExistsInTable(cqgTicks.Request.Symbol, cqgTicks[i].Timestamp))
                        {
                            AddTick(cqgTicks[i], cqgTicks.Request.Symbol, DateTime.Now, ++groupId, userName);
                            realyInsertedCount++;
                        }

                        rowsInserted++;
                        var newProgr = (int)Math.Round((rowsInserted / cto) * 100f);
                        if (newProgr > progr)
                        {
                            progr = newProgr;
                            OnProgressBarChanged(progr);
                        }

                    }

                    ClientDatabaseManager.CommitQueueTick();

                    if (!_isStoped) FinishCollectingSymbol("T",cqgTicks.Request.Symbol, true, realyInsertedCount, "");
                    OnProgressBarChanged(100);
                }

            }) { Name = "InsertingHistoricalThread" }.Start();

            //}

            //catch (Exception ex)
            //{
            //    Console.WriteLine("TicksAdd"+ex.Message);
            //}
        }
Example #27
0
        public void BarsAdd(CQGTimedBars mCurTimedBars, CQGError cqgError, string userName)
        {
            if (_shouldStop) return;
            try
            {
                _logger.LogAdd("Bars data resolved for symbol:" + mCurTimedBars.Request.Symbol, Category.Information, true);

                var ss = _aSymbolStates[mCurTimedBars.Request.Symbol];
                ss.IsCollected = true;

                if (cqgError != null && cqgError.Code != 0)
                {
                    ss.IsSuccess = false;
                }
                else
                {
                    if (mCurTimedBars.Status == eRequestStatus.rsSuccess)
                    {
                        DateTime runDateTime = DateTime.Now;
                        if (mCurTimedBars.Count != 0)
                        {
                            for (int i = mCurTimedBars.Count - 1; i >= 0; i--)
                            {
                                if (_shouldStop) break;
                                AddBar(mCurTimedBars[i], mCurTimedBars.Request.Symbol, runDateTime, _aTableType, userName);
                            }
                        }
                        DatabaseManager.CommitQueueBar();
                    }
                    ss.IsSuccess = true;
                }

                _aSymbolStates[mCurTimedBars.Request.Symbol] = ss;
                OnSymbolCollectEnd(mCurTimedBars.Request.Symbol, ss.IsSuccess, _aTableType);//TODO CHnaged this _aTableType

                if (SymbolsCollected == _aSymbolStates.Count)
                {
                    OnFinished();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                _logger.LogAdd("BarsAdd. " + ex, Category.Error);
            }
        }
		private void SessionOnOrderChanged(eChangeType changeType, CQGOrder cqgOrder, CQGOrderProperties oldProperties, CQGFill cqgFill, CQGError cqgError)
		{

		}
Example #29
0
 private void CEL_HistoricalSessionsResolved(CQGSessionsCollection cqg_historical_sessions,
     CQGHistoricalSessionsRequest cqg_historical_sessions_request, CQGError cqg_error)
 {
     _missingBarManager.HolidaysAdd(cqg_historical_sessions, cqg_historical_sessions_request.Symbol);
 }
Example #30
0
        /// <summary>
        /// Displays resolved CustomStudy definitions.
        /// </summary>
        /// <param name="cqg_custom_study_definitions">
        /// The resolved CQGCustomStudyDefinitions object.
        /// </param>
        /// <param name="cqg_error">
        /// CQGError object describing last error occurred
        /// during processing request or Nothing in case of no error.
        /// </param>
        private void CEL_CustomStudyDefinitionsResolved(CQGCustomStudyDefinitions cqg_custom_study_definitions, CQGError cqg_error)
        {
            try
            {
                // Notifying when any error occurred during request
                if (cqg_error != null)
                {
                    throw new Exception(cqg_error.Description);
                }

                // Fill up new data
                foreach (CQGCustomStudyDefinition definition in cqg_custom_study_definitions)
                {
                    //cmbDefinition.Items.Add(definition.Name);
                }
            }
            catch (Exception myE)
            {
                log.Error("CEL_CustomStudyDefinitionsResolved", myE);
            }
        }