Esempio n. 1
0
        private void setNewBar(GMSDK.Bar gskBar)
        {
            string     symbol        = gskBar.exchange + "." + gskBar.sec_id;
            Instrument curInstrument = InstrumentManager.Instruments[symbol];

            if (curInstrument == null)
            {
                this.EmitError(2, "Symbol " + symbol + " was not found in InstrumentManager.");
                return;
            }
            GMBar gmBar = GSKToGM.ConvertBar(gskBar);

            this.OnNewBar(this, new BarEventArgs(gmBar, curInstrument, this));
        }
        public ReportArgs GetLastBars(List <string> symbols, int barSize)
        {
            byte barType = 7;//默认1分线
            int  min     = barSize / 60;

            switch (min)
            {
            case 1:
                barType = 7;
                break;

            case 5:
                barType = 0;
                break;

            case 15:
                barType = 1;
                break;

            case 30:
                barType = 2;
                break;

            case 60:
                barType = 3;
                break;

            case 1440:
                barType = 4;
                break;

            default:
                barType = 7;
                break;
            }
            ReportArgs reportArgs = new ReportArgs();

            reportArgs.Succeeded = true;
            Dictionary <string, GMSDK.Bar> barDict = new Dictionary <string, GMSDK.Bar>();

            reportArgs.Result = barDict;
            StringBuilder errInfo = new StringBuilder(256);
            StringBuilder result  = new StringBuilder(1024 * 1024);
            short         count   = 1;

            foreach (string symbol in symbols)
            {
                string[] temp     = symbol.Split('.');
                string   market   = temp[0];
                byte     marketID = 0;
                switch (market)
                {
                case "SHSE":
                    marketID = 1;
                    break;

                case "SZSE":
                    marketID = 0;
                    break;
                }
                string securityID = temp[1];
                if (TdxHqWrapper.TdxHq_GetSecurityBars(barType, marketID, securityID, 0, ref count, result, errInfo))
                {
                    List <string[]> data = this.pickUp(result);
                    GMSDK.Bar       bar  = new GMSDK.Bar();
                    bar.exchange    = market;
                    bar.sec_id      = securityID;
                    bar.strtime     = data[1][0];
                    bar.utc_endtime = DateTime.Parse(bar.strtime).ToFileTimeUtc();
                    bar.bar_type    = barSize;
                    bar.open        = float.Parse(data[1][1]);
                    bar.close       = float.Parse(data[1][2]);
                    bar.high        = float.Parse(data[1][3]);
                    bar.low         = float.Parse(data[1][4]);
                    bar.volume      = double.Parse(data[1][5]);
                    bar.amount      = double.Parse(data[1][6]);
                    barDict.Add(symbol, bar);
                }
                else
                {
                    reportArgs.Succeeded = false;
                    reportArgs.ErrorInfo = errInfo.ToString();
                    break;
                }
            }
            return(reportArgs);
        }
Esempio n. 3
0
 public static GMBar ConvertBar(GMSDK.Bar gskBar)
 {
     return(new GMBar(startTimeUTC.AddSeconds(gskBar.utc_time), gskBar.open, gskBar.high, gskBar.low, gskBar.close, (long)gskBar.volume, gskBar.bar_type, gskBar.pre_close, gskBar.amount, gskBar.adj_factor, gskBar.flag));
 }
Esempio n. 4
0
 public void onBar(GMSDK.Bar gskBar)
 {
     this.setNewBar(gskBar);
 }