Exemplo n.º 1
0
        public List <Instrument> GetInstruments(string exchanges, string secTypes)
        {
            List <Instrument>  ret = new List <Instrument>();
            GMData <DataTable> dataList;

            lock (this.locker)
            {
                dataList = GMApi.GetInstruments(null, exchanges, secTypes);
            }
            if (dataList.status == 0)
            {
                foreach (DataRow dr in dataList.data.Rows)
                {
                    Instrument inst = new Instrument
                    {
                        Symbol      = dr["symbol"].ToString(),
                        Level       = (int)dr["sec_level"],
                        IsSuspended = (int)dr["is_suspended"] == 1,
                        LastClose   = double.Parse(dr["pre_close"].ToString()),
                        UpperLimit  = Utils.SafeRead <double>(dr, "upper_limit", 0.00),
                        LowerLimit  = Utils.SafeRead <double>(dr, "lower_limit", 0.00),
                        AdjFactor   = Utils.SafeRead <double>(dr, "adj_factor", 0.00),
                        CreatedAt   = Utils.SafeRead <DateTime>(dr, "created_at", new DateTime(1970, 1, 1))
                    };
                    ret.Add(inst);
                }
            }
            else
            {
                throw new Exception(this.GetErrorMsg(dataList.status));
            }
            return(ret);
        }
Exemplo n.º 2
0
        public void GetHistBars()
        {
            int ret = GMApi.SetToken(App.GMToken);

            if (ret != 0)
            {
                return;
            }
            HistBars.Clear();

            GMDataList <Bar> bars = GMApi.HistoryBars(symbol, frequency, startTime, endTime);

            HistBars.Clear();
            if (bars.status == 0)
            {
                //HistBars.AddRange(bars.data);
                foreach (Bar bar in bars.data)
                {
                    HistBars.Add(new VMBar(bar));
                }

                _events.PublishOnUIThread(new ModelEvents(new List <object>(new
                                                                            object[] { "Get Bars number = " + bars.data.Count })));
            }
        }
Exemplo n.º 3
0
        public void IncomeStatement()
        {
            DataType = "income_statement:";
            GMApi.SetToken(App.GMToken);
            GMData <DataTable> tbl = GMApi.GetFundamentalsN("income_statement", symbol, endDate, 30,
                                                            "ASSEIMPALOSS, BASICEPS, BIZCOST, BIZINCO");

            if (tbl.status == 0)
            {
                MyTable = tbl.data;
            }
        }
Exemplo n.º 4
0
        public void DerivFinanceIndicator()
        {
            DataType = "deriv_finance_indicator:";
            GMApi.SetToken(App.GMToken);
            GMData <DataTable> tbl = GMApi.GetFundamentalsN("deriv_finance_indicator", symbol, endDate, 30,
                                                            "ACCDEPRT,ACCPAYRT,ACCPAYTDAYS,ASSLIABRT,CASHCONVCYCLE,CRPS,CURRENTRT,EBIT,NFART");

            if (tbl.status == 0)
            {
                MyTable = tbl.data;
            }
        }
Exemplo n.º 5
0
        public void PrimFinanceIndicator()
        {
            DataType = "主要财务指标:";
            GMApi.SetToken(App.GMToken);
            GMData <DataTable> tbl = GMApi.GetFundamentalsN("prim_finance_indicator", Symbol, endDate, 30,
                                                            "EBIT, EPSBASIC, OPNCFPS, ROEDILUTED");

            if (tbl.status == 0)
            {
                MyTable = tbl.data;
            }
        }
Exemplo n.º 6
0
        public DateTime GetNextTradingDate(string exchange, DateTime date)
        {
            GMData <DateTime> dataList;

            lock (this.locker)
            {
                dataList = GMApi.GetNextTradingDate(exchange, Utils.DateToString(date));
            }
            if (dataList.status != 0)
            {
                throw new Exception(this.GetErrorMsg(dataList.status));
            }
            return(dataList.data);
        }
Exemplo n.º 7
0
        public List <Trade> HistoryTrades(string symbol, string startTime, string endTime = "")
        {
            List <Trade> ret = new List <Trade>();

            if (endTime == "")
            {
                endTime = Utils.DateTimeToString(DateTime.Now);
            }
            GMDataList <GMSDK.Tick> dataList;

            lock (this.locker)
            {
                dataList = GMApi.HistoryTicks(symbol, startTime, endTime);
            }
            if (dataList.status != 0)
            {
                throw new Exception(this.GetErrorMsg(dataList.status));
            }
            foreach (GMSDK.Tick gmTick in dataList.data)
            {
                if (gmTick.lastVolume <= 0)
                {
                    continue;
                }
                Trade aTrade = new Trade
                {
                    DateTime = gmTick.createdAt,
                    Price    = gmTick.price,
                    Volume   = gmTick.lastVolume,
                    Amount   = gmTick.lastAmount,
                };

                switch (gmTick.tradeType)
                {
                case 7:
                    aTrade.BuyOrSell = 'B';
                    break;

                case 8:
                    aTrade.BuyOrSell = 'S';
                    break;

                default:
                    aTrade.BuyOrSell = 'N';
                    break;
                }
                ret.Add(aTrade);
            }
            return(ret);
        }
Exemplo n.º 8
0
        public List <Bar> HistoryBars(string symbol, int size, string startTime, string endTime = "")
        {
            List <Bar> ret = new List <Bar>();

            if (endTime == "")
            {
                endTime = Utils.DateTimeToString(DateTime.Now);
            }
            GMDataList <GMSDK.Bar> dataList;

            lock (this.locker)
            {
                dataList = GMApi.HistoryBars(symbol, string.Format("{0}s", size), startTime, endTime);
            }

            if (dataList.status != 0)
            {
                throw new Exception(this.GetErrorMsg(dataList.status));
            }
            foreach (GMSDK.Bar gmBar in dataList.data)
            {
                Bar aBar = new Bar()
                {
                    BeginTime = gmBar.bob,
                    EndTime   = gmBar.eob,
                    LastClose = gmBar.preClose,
                    Open      = gmBar.open,
                    High      = gmBar.high,
                    Low       = gmBar.low,
                    Close     = gmBar.close,
                    Volume    = gmBar.volume,
                    Amount    = gmBar.amount,
                    Size      = size
                };
                ret.Add(aBar);
            }
            return(ret);
        }
Exemplo n.º 9
0
        public void GetHistTicks()
        {
            int ret = GMApi.SetToken(App.GMToken);

            if (ret != 0)
            {
                return;
            }
            HistTicks.Clear();

            GMDataList <Tick> ticks = GMApi.HistoryTicks(symbol, startTime, endTime);

            if (ticks.status == 0)
            {
                foreach (Tick tick in ticks.data)
                {
                    HistTicks.Add(new VMTick(tick));
                }

                _events.PublishOnUIThread(new ModelEvents(new List <object>(new
                                                                            object[] { "Get Ticks number = " + ticks.data.Count })));
            }
        }
Exemplo n.º 10
0
        public Dictionary <string, Tick> Current(IEnumerable <string> symbols)
        {
            Dictionary <string, Tick> ret = new Dictionary <string, Tick>();
            string symbolString           = "";

            foreach (string symbol in symbols)
            {
                symbolString += symbol + ",";
            }
            GMDataList <GMSDK.Tick> dataList;

            lock (this.locker)
            {
                dataList = GMApi.Current(symbolString);
            }
            if (dataList.status != 0)
            {
                throw new Exception(this.GetErrorMsg(dataList.status));
            }
            foreach (GMSDK.Tick gmTick in dataList.data)
            {
                Tick aTick = new Tick
                {
                    DateTime  = gmTick.createdAt,
                    Open      = gmTick.open,
                    High      = gmTick.high,
                    Low       = gmTick.low,
                    Price     = gmTick.price,
                    Volume    = gmTick.lastVolume,
                    Amount    = gmTick.lastAmount,
                    CumVolume = gmTick.cumVolume,
                    CumAmount = gmTick.cumAmount
                };
                int i = 0;
                foreach (GMSDK.Quote gmQuote in gmTick.quotes)
                {
                    if (gmQuote == null)
                    {
                        continue;
                    }
                    Quote aQuote = new Quote
                    {
                        BidPrice  = gmQuote.bidPrice,
                        BidVolume = gmQuote.bidVolume,
                        AskPrice  = gmQuote.askPrice,
                        AskVolume = gmQuote.askVolume
                    };
                    aTick.Quotes[i] = aQuote;
                    i++;
                }

                switch (gmTick.tradeType)
                {
                case 7:
                    aTick.BuyOrSell = 'B';
                    break;

                case 8:
                    aTick.BuyOrSell = 'S';
                    break;

                default:
                    aTick.BuyOrSell = 'N';
                    break;
                }
                aTick.Source = "GM";
                ret.Add(gmTick.symbol, aTick);
            }
            return(ret);
        }
Exemplo n.º 11
0
 public static void SetToken(string token)
 {
     GMApi.SetToken(token);
 }