diff --git a/Binance.API.Csharp.Client.Domain/Interfaces/IBinanceClient.cs b/Binance.API.Csharp.Client.Domain/Interfaces/IBinanceClient.cs
index 7a9deff..5312215 100644
--- a/Binance.API.Csharp.Client.Domain/Interfaces/IBinanceClient.cs
+++ b/Binance.API.Csharp.Client.Domain/Interfaces/IBinanceClient.cs
@@ -51,14 +51,14 @@ public interface IBinanceClient
/// Time interval to retreive.
/// Limit of records to retrieve.
///
- Task> GetCandleSticks(string symbol, TimeInterval interval, int limit = 500);
+ Task> GetCandleSticks(string symbol, TimeInterval interval, DateTime? startTime = null, DateTime? endTime = null, int limit = 500);
///
/// 24 hour price change statistics.
///
/// Ticker symbol.
///
- Task GetPriceChange24H(string symbol);
+ Task> GetPriceChange24H(string symbol);
///
/// Latest price for all symbols.
diff --git a/Binance.API.Csharp.Client.Models/Market/PriceChangeInfo.cs b/Binance.API.Csharp.Client.Models/Market/PriceChangeInfo.cs
index 015bb60..e21713b 100644
--- a/Binance.API.Csharp.Client.Models/Market/PriceChangeInfo.cs
+++ b/Binance.API.Csharp.Client.Models/Market/PriceChangeInfo.cs
@@ -4,6 +4,8 @@ namespace Binance.API.Csharp.Client.Models.Market
{
public class PriceChangeInfo
{
+ [JsonProperty("symbol")]
+ public string Symbol { get; set; }
[JsonProperty("priceChange")]
public decimal PriceChange { get; set; }
[JsonProperty("priceChangePercent")]
diff --git a/Binance.API.Csharp.Client.Test/BinanceTest.cs b/Binance.API.Csharp.Client.Test/BinanceTest.cs
index 3e79dcf..4dce8bd 100644
--- a/Binance.API.Csharp.Client.Test/BinanceTest.cs
+++ b/Binance.API.Csharp.Client.Test/BinanceTest.cs
@@ -9,7 +9,7 @@ namespace Binance.API.Csharp.Client.Test
public class BinanceTest
{
private static ApiClient apiClient = new ApiClient("@YourApiKey", "@YourApiSecret");
- private static BinanceClient binanceClient = new BinanceClient(apiClient);
+ private static BinanceClient binanceClient = new BinanceClient(apiClient,false);
#region General
[TestMethod]
@@ -35,7 +35,7 @@ public void GetOrderBook()
[TestMethod]
public void GetCandleSticks()
{
- var candlestick = binanceClient.GetCandleSticks("ethbtc", TimeInterval.Minutes_15).Result;
+ var candlestick = binanceClient.GetCandleSticks("ethbtc", TimeInterval.Minutes_15, new System.DateTime(2017,11,24), new System.DateTime(2017, 11, 26)).Result;
}
[TestMethod]
@@ -47,7 +47,7 @@ public void GetAggregateTrades()
[TestMethod]
public void GetPriceChange24H()
{
- var priceChangeInfo = binanceClient.GetPriceChange24H("ethbtc").Result;
+ var priceChangeInfo = binanceClient.GetPriceChange24H().Result;
}
[TestMethod]
diff --git a/Binance.API.Csharp.Client/Binance.API.Csharp.Client.nuspec b/Binance.API.Csharp.Client/Binance.API.Csharp.Client.nuspec
index fd7bd51..a16388b 100644
--- a/Binance.API.Csharp.Client/Binance.API.Csharp.Client.nuspec
+++ b/Binance.API.Csharp.Client/Binance.API.Csharp.Client.nuspec
@@ -2,7 +2,7 @@
Binance.API.Csharp.Client
- 1.2.0
+ 1.2.1
Binance.API.Csharp.Client
Jose Mejia
Jose Mejia
@@ -10,7 +10,7 @@
https://github.com/morpheums/Binance.API.Csharp.Client/blob/master/Binance.API.Csharp.Client/BinanceLogo.png?raw=true
false
C#.NET client for Binance Exchange API.
- Fixing issue when calling "LoadTradingRules" method.
+ Fixing issue including dependencies dlls.
Copyright 2017
Criptocurrency Binance API dotnet csharp wrapper
diff --git a/Binance.API.Csharp.Client/BinanceClient.cs b/Binance.API.Csharp.Client/BinanceClient.cs
index 9e704cd..fd65700 100644
--- a/Binance.API.Csharp.Client/BinanceClient.cs
+++ b/Binance.API.Csharp.Client/BinanceClient.cs
@@ -22,9 +22,9 @@ public class BinanceClient : BinanceClientAbstract, IBinanceClient
///
/// API client to be used for API calls.
/// Optional parameter to skip loading trading rules.
- public BinanceClient(IApiClient apiClient, bool loadTradingRules = true) : base(apiClient)
+ public BinanceClient(IApiClient apiClient, bool loadTradingRules = false) : base(apiClient)
{
- if(loadTradingRules)
+ if (loadTradingRules)
{
LoadTradingRules();
}
@@ -164,14 +164,19 @@ public async Task> GetAggregateTrades(string symbol,
/// Time interval to retreive.
/// Limit of records to retrieve.
///
- public async Task> GetCandleSticks(string symbol, TimeInterval interval, int limit = 500)
+ public async Task> GetCandleSticks(string symbol, TimeInterval interval, DateTime? startTime = null, DateTime? endTime = null, int limit = 500)
{
if (string.IsNullOrWhiteSpace(symbol))
{
throw new ArgumentException("symbol cannot be empty. ", "symbol");
}
- var result = await _apiClient.CallAsync(ApiMethod.GET, EndPoints.Candlesticks, false, $"symbol={symbol.ToUpper()}&interval={interval.GetDescription()}&limit={limit}");
+ var args = $"symbol={symbol.ToUpper()}&interval={interval.GetDescription()}"
+ + (startTime .HasValue ? $"&startTime={startTime.Value.GetUnixTimeStamp()}" : "")
+ + (endTime.HasValue ? $"&endTime={endTime.Value.GetUnixTimeStamp()}" : "")
+ + $"&limit={limit}";
+
+ var result = await _apiClient.CallAsync(ApiMethod.GET, EndPoints.Candlesticks, false, args);
var parser = new CustomParser();
var parsedResult = parser.GetParsedCandlestick(result);
@@ -184,14 +189,11 @@ public async Task> GetCandleSticks(string symbol, TimeI
///
/// Ticker symbol.
///
- public async Task GetPriceChange24H(string symbol)
+ public async Task> GetPriceChange24H(string symbol = "")
{
- if (string.IsNullOrWhiteSpace(symbol))
- {
- throw new ArgumentException("symbol cannot be empty. ", "symbol");
- }
+ var args = string.IsNullOrWhiteSpace(symbol) ? "" : $"symbol={symbol.ToUpper()}";
- var result = await _apiClient.CallAsync(ApiMethod.GET, EndPoints.TickerPriceChange24H, false, $"symbol={symbol.ToUpper()}");
+ var result = await _apiClient.CallAsync>(ApiMethod.GET, EndPoints.TickerPriceChange24H, false, args);
return result;
}
@@ -461,8 +463,8 @@ public async Task GetDepositHistory(string asset, DepositStatus?
var args = $"asset={asset.ToUpper()}"
+ (status.HasValue ? $"&status={(int)status}" : "")
- + (startTime.HasValue ? $"&startTime={Utilities.GenerateTimeStamp(startTime.Value)}" : "")
- + (endTime.HasValue ? $"&endTime={Utilities.GenerateTimeStamp(endTime.Value)}" : "")
+ + (startTime.HasValue ? $"&startTime={startTime.Value.GetUnixTimeStamp()}" : "")
+ + (endTime.HasValue ? $"&endTime={endTime.Value.GetUnixTimeStamp()}" : "")
+ $"&recvWindow={recvWindow}";
var result = await _apiClient.CallAsync(ApiMethod.POST, EndPoints.DepositHistory, true, args);
diff --git a/Binance.API.Csharp.Client/Utils/ExtensionMethods.cs b/Binance.API.Csharp.Client/Utils/ExtensionMethods.cs
index 3d102a2..9168a97 100644
--- a/Binance.API.Csharp.Client/Utils/ExtensionMethods.cs
+++ b/Binance.API.Csharp.Client/Utils/ExtensionMethods.cs
@@ -22,5 +22,15 @@ public static string GetDescription(this Enum value)
.Single(x => x.GetValue(null).Equals(value)),
typeof(DescriptionAttribute)))?.Description ?? value.ToString();
}
+
+ ///
+ /// Gets a timestamp in milliseconds.
+ ///
+ /// Timestamp in milliseconds.
+ public static string GetUnixTimeStamp(this DateTime baseDateTime)
+ {
+ var dtOffset = new DateTimeOffset(baseDateTime);
+ return dtOffset.ToUnixTimeMilliseconds().ToString();
+ }
}
}