public bool InsertTickData(string symbol, TickDataType type, DateTime date, double price, double size, string conditionCodes, string exchangeCodes) { if (!getSQLconnection()) { return false; } else { int SymbolID = GetSymbolID(symbol); if (SymbolID <= 0) { SymbolID = InsertSymbol(symbol); } byte fieldType; switch (type) { case TickDataType.TRADE: fieldType = 0; break; case TickDataType.ASK: fieldType = 1; break; case TickDataType.BID: fieldType = 2; break; default: return false; } SqlCommand cmd = cn.CreateCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "InsertTickData"; SqlParameter SymbolPrm = new SqlParameter("@SymbolID", SqlDbType.SmallInt); SymbolPrm.Value = SymbolID; cmd.Parameters.Add(SymbolPrm); SqlParameter pFldType = new SqlParameter("@FldType", SqlDbType.TinyInt); pFldType.Value = fieldType; cmd.Parameters.Add(pFldType); SqlParameter DatePrm = new SqlParameter("@Date", SqlDbType.DateTime2); DatePrm.Value = date; cmd.Parameters.Add(DatePrm); SqlParameter pPrice = new SqlParameter("@Price", SqlDbType.Real); pPrice.Value = price; cmd.Parameters.Add(pPrice); SqlParameter pSize = new SqlParameter("@Size", SqlDbType.Real); pSize.Value = size; cmd.Parameters.Add(pSize); SqlParameter pCondCode = new SqlParameter("@CondCode", SqlDbType.VarChar); if (conditionCodes == string.Empty) pCondCode.Value = DBNull.Value; else pCondCode.Value = conditionCodes; cmd.Parameters.Add(pCondCode); SqlParameter pExchgCode = new SqlParameter("@ExchgCode", SqlDbType.VarChar); if (exchangeCodes == string.Empty) pExchgCode.Value = DBNull.Value; else pExchgCode.Value = exchangeCodes; cmd.Parameters.Add(pExchgCode); cn.Open(); cmd.ExecuteNonQuery(); cn.Close(); } return true; }
/// <summary> /// Gets the tick data. /// </summary> /// <param name="apiUrl">The API URL.</param> /// <param name="accountID">The account identifier.</param> /// <param name="accessToken">The access token.</param> /// <param name="symbol">The symbol.</param> /// <param name="tickDataType">Type of the tick data.</param> /// <param name="date">The date.</param> /// <param name="hourFrom">The hour from.</param> /// <param name="minuteFrom">The minute from.</param> /// <param name="secondFrom">The second from.</param> /// <param name="hourTo">The hour to.</param> /// <param name="minuteTo">The minute to.</param> /// <param name="secondTo">The second to.</param> /// <returns></returns> public static List <TickData> GetTickData(string apiUrl, string accountID, string accessToken, string symbol, TickDataType tickDataType, DateTime date, int hourFrom, int minuteFrom, int secondFrom, int hourTo, int minuteTo, int secondTo) { string tickDataTypeString = string.Empty; switch (tickDataType) { case TickDataType.Bid: tickDataTypeString = "bid"; break; case TickDataType.Ask: tickDataTypeString = "ask"; break; } string dateString = String.Format("{0:0000}", date.Year) + String.Format("{0:00}", date.Month) + String.Format("{0:00}", date.Day); string timeFrom = String.Format("{0:00}", hourFrom) + String.Format("{0:00}", minuteFrom) + String.Format("{0:00}", secondFrom); string timeTo = String.Format("{0:00}", hourTo) + String.Format("{0:00}", minuteTo) + String.Format("{0:00}", secondTo); var client = new RestClient(apiUrl); var request = new RestRequest(@"connect/tradingaccounts/" + accountID + "/symbols/" + symbol + "/" + tickDataTypeString + "/?oauth_token=" + accessToken + "&date=" + dateString + "&from=" + timeFrom + "&to=" + timeTo); var responseTickDataBid = client.Execute <TickData>(request); return(JsonConvert.DeserializeObject <List <TickData> >((JObject.Parse(responseTickDataBid.Content)["data"]).ToString())); }