mirror of
https://github.com/vdemydiuk/mtapi.git
synced 2026-08-23 07:38:13 +00:00
Issue #33: Implemented function SeriesInfoInteger (MtApi MT4)
This commit is contained in:
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
namespace MtApi
|
||||||
|
{
|
||||||
|
public enum EnumSeriesInfoInteger
|
||||||
|
{
|
||||||
|
SERIES_BARS_COUNT = 0,
|
||||||
|
SERIES_FIRSTDATE = 1,
|
||||||
|
SERIES_LASTBAR_DATE = 5,
|
||||||
|
SERIES_SERVER_FIRSTDATE = 2
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@ namespace MtApi.Monitors
|
|||||||
public class TimeframeTradeMonitor : TradeMonitor
|
public class TimeframeTradeMonitor : TradeMonitor
|
||||||
{
|
{
|
||||||
#region Fields
|
#region Fields
|
||||||
private volatile bool _isStarted = false;
|
private volatile bool _isStarted;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ctor
|
#region ctor
|
||||||
@@ -23,13 +23,8 @@ namespace MtApi.Monitors
|
|||||||
// Returns:
|
// Returns:
|
||||||
// true if PositionMonitor should check orders
|
// true if PositionMonitor should check orders
|
||||||
// otherwise, false.
|
// otherwise, false.
|
||||||
public override bool IsStarted
|
public override bool IsStarted => _isStarted;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return _isStarted;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Protected Methods
|
#region Protected Methods
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace MtApi.Monitors
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ctor
|
#region ctor
|
||||||
public TradeMonitor(MtApiClient apiClient)
|
protected TradeMonitor(MtApiClient apiClient)
|
||||||
{
|
{
|
||||||
if (apiClient == null)
|
if (apiClient == null)
|
||||||
throw new ArgumentNullException(nameof(apiClient));
|
throw new ArgumentNullException(nameof(apiClient));
|
||||||
@@ -73,13 +73,7 @@ namespace MtApi.Monitors
|
|||||||
protected abstract void OnMtConnected();
|
protected abstract void OnMtConnected();
|
||||||
protected abstract void OnMtDisconnected();
|
protected abstract void OnMtDisconnected();
|
||||||
|
|
||||||
public bool IsMtConnected
|
public bool IsMtConnected => _apiClient.ConnectionState == MtConnectionState.Connected;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return _apiClient.ConnectionState == MtConnectionState.Connected;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void Check()
|
protected void Check()
|
||||||
{
|
{
|
||||||
@@ -113,12 +107,12 @@ namespace MtApi.Monitors
|
|||||||
prevOrders = _prevOrders;
|
prevOrders = _prevOrders;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_prevOrders != null) //skip checking on first load orders
|
if (prevOrders != null) //skip checking on first load orders
|
||||||
{
|
{
|
||||||
//check open orders
|
//check open orders
|
||||||
foreach (var order in tradesOrders)
|
foreach (var order in tradesOrders)
|
||||||
{
|
{
|
||||||
if (_prevOrders.Find(a => a.Ticket == order.Ticket) == null)
|
if (prevOrders.Find(a => a.Ticket == order.Ticket) == null)
|
||||||
{
|
{
|
||||||
openedOrders.Add(order);
|
openedOrders.Add(order);
|
||||||
}
|
}
|
||||||
@@ -126,7 +120,7 @@ namespace MtApi.Monitors
|
|||||||
|
|
||||||
//check closed orders
|
//check closed orders
|
||||||
var closeOrdersTemp = new List<MtOrder>();
|
var closeOrdersTemp = new List<MtOrder>();
|
||||||
foreach (var order in _prevOrders)
|
foreach (var order in prevOrders)
|
||||||
{
|
{
|
||||||
if (tradesOrders.Find(a => a.Ticket == order.Ticket) == null)
|
if (tradesOrders.Find(a => a.Ticket == order.Ticket) == null)
|
||||||
{
|
{
|
||||||
@@ -180,10 +174,7 @@ namespace MtApi.Monitors
|
|||||||
_prevOrders = null;
|
_prevOrders = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Task.Factory.StartNew(() =>
|
Task.Factory.StartNew(Check);
|
||||||
{
|
|
||||||
Check();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,6 +59,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="ChartPeriod.cs" />
|
<Compile Include="ChartPeriod.cs" />
|
||||||
|
<Compile Include="EnumSeriesInfoInteger.cs" />
|
||||||
<Compile Include="EnumSymbolInfoInteger.cs" />
|
<Compile Include="EnumSymbolInfoInteger.cs" />
|
||||||
<Compile Include="ExtensionMethods.cs" />
|
<Compile Include="ExtensionMethods.cs" />
|
||||||
<Compile Include="Monitors\AvailabilityOrdersEventArgs.cs" />
|
<Compile Include="Monitors\AvailabilityOrdersEventArgs.cs" />
|
||||||
@@ -92,6 +93,7 @@
|
|||||||
<Compile Include="Requests\OrderDeleteRequest.cs" />
|
<Compile Include="Requests\OrderDeleteRequest.cs" />
|
||||||
<Compile Include="Requests\OrderModifyRequest.cs" />
|
<Compile Include="Requests\OrderModifyRequest.cs" />
|
||||||
<Compile Include="Requests\OrderSendRequest.cs" />
|
<Compile Include="Requests\OrderSendRequest.cs" />
|
||||||
|
<Compile Include="Requests\SeriesInfoIntegerRequest.cs" />
|
||||||
<Compile Include="Requests\SessionRequest.cs" />
|
<Compile Include="Requests\SessionRequest.cs" />
|
||||||
<Compile Include="Requests\RequestBase.cs" />
|
<Compile Include="Requests\RequestBase.cs" />
|
||||||
<Compile Include="Requests\RequestType.cs" />
|
<Compile Include="Requests\RequestType.cs" />
|
||||||
@@ -100,6 +102,7 @@
|
|||||||
<Compile Include="Responses\GetOrdersResponse.cs" />
|
<Compile Include="Responses\GetOrdersResponse.cs" />
|
||||||
<Compile Include="Responses\ICustomResponse.cs" />
|
<Compile Include="Responses\ICustomResponse.cs" />
|
||||||
<Compile Include="Responses\OrderSendResponse.cs" />
|
<Compile Include="Responses\OrderSendResponse.cs" />
|
||||||
|
<Compile Include="Responses\SeriesInfoIntegerResponse.cs" />
|
||||||
<Compile Include="Responses\SessionResponse.cs" />
|
<Compile Include="Responses\SessionResponse.cs" />
|
||||||
<Compile Include="Responses\ResponseBase.cs" />
|
<Compile Include="Responses\ResponseBase.cs" />
|
||||||
<Compile Include="SeriesIdentifier.cs" />
|
<Compile Include="SeriesIdentifier.cs" />
|
||||||
|
|||||||
@@ -1466,6 +1466,18 @@ namespace MtApi
|
|||||||
return response?.Rates;
|
return response?.Rates;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long SeriesInfoInteger(string symbolName, ENUM_TIMEFRAMES timeframe, EnumSeriesInfoInteger propId)
|
||||||
|
{
|
||||||
|
var response = SendRequest<SeriesInfoIntegerResponse>(new SeriesInfoIntegerRequest
|
||||||
|
{
|
||||||
|
SymbolName = symbolName,
|
||||||
|
Timeframe = (int)timeframe,
|
||||||
|
PropId = (int)propId
|
||||||
|
});
|
||||||
|
|
||||||
|
return response?.Value ?? 0;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Checkup
|
#region Checkup
|
||||||
|
|||||||
@@ -1,12 +1,6 @@
|
|||||||
using System;
|
namespace MtApi.Requests
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace MtApi.Requests
|
|
||||||
{
|
{
|
||||||
public abstract class CopyRatesRequestBase : RequestBase
|
internal abstract class CopyRatesRequestBase : RequestBase
|
||||||
{
|
{
|
||||||
public enum CopyRatesTypeEnum
|
public enum CopyRatesTypeEnum
|
||||||
{
|
{
|
||||||
@@ -15,10 +9,7 @@ namespace MtApi.Requests
|
|||||||
CopyRates_3 = 3,
|
CopyRates_3 = 3,
|
||||||
}
|
}
|
||||||
|
|
||||||
public override RequestType RequestType
|
public override RequestType RequestType => RequestType.CopyRates;
|
||||||
{
|
|
||||||
get { return RequestType.CopyRates; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract CopyRatesTypeEnum CopyRatesType { get; }
|
public abstract CopyRatesTypeEnum CopyRatesType { get; }
|
||||||
|
|
||||||
@@ -26,34 +17,25 @@ namespace MtApi.Requests
|
|||||||
public ENUM_TIMEFRAMES Timeframe { get; set; }
|
public ENUM_TIMEFRAMES Timeframe { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CopyRates1Request : CopyRatesRequestBase
|
internal class CopyRates1Request : CopyRatesRequestBase
|
||||||
{
|
{
|
||||||
public override CopyRatesTypeEnum CopyRatesType
|
public override CopyRatesTypeEnum CopyRatesType => CopyRatesTypeEnum.CopyRates_1;
|
||||||
{
|
|
||||||
get { return CopyRatesTypeEnum.CopyRates_1; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public int StartPos { get; set; }
|
public int StartPos { get; set; }
|
||||||
public int Count { get; set; }
|
public int Count { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CopyRates2Request : CopyRatesRequestBase
|
internal class CopyRates2Request : CopyRatesRequestBase
|
||||||
{
|
{
|
||||||
public override CopyRatesTypeEnum CopyRatesType
|
public override CopyRatesTypeEnum CopyRatesType => CopyRatesTypeEnum.CopyRates_2;
|
||||||
{
|
|
||||||
get { return CopyRatesTypeEnum.CopyRates_2; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public int StartTime { get; set; }
|
public int StartTime { get; set; }
|
||||||
public int Count { get; set; }
|
public int Count { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CopyRates3Request : CopyRatesRequestBase
|
internal class CopyRates3Request : CopyRatesRequestBase
|
||||||
{
|
{
|
||||||
public override CopyRatesTypeEnum CopyRatesType
|
public override CopyRatesTypeEnum CopyRatesType => CopyRatesTypeEnum.CopyRates_3;
|
||||||
{
|
|
||||||
get { return CopyRatesTypeEnum.CopyRates_3; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public int StartTime { get; set; }
|
public int StartTime { get; set; }
|
||||||
public int StopTime { get; set; }
|
public int StopTime { get; set; }
|
||||||
|
|||||||
Regular → Executable
+2
-5
@@ -1,14 +1,11 @@
|
|||||||
namespace MtApi.Requests
|
namespace MtApi.Requests
|
||||||
{
|
{
|
||||||
public class GetOrderRequest: RequestBase
|
internal class GetOrderRequest: RequestBase
|
||||||
{
|
{
|
||||||
public int Index { get; set; }
|
public int Index { get; set; }
|
||||||
public int Select { get; set; }
|
public int Select { get; set; }
|
||||||
public int Pool { get; set; }
|
public int Pool { get; set; }
|
||||||
|
|
||||||
public override RequestType RequestType
|
public override RequestType RequestType => RequestType.GetOrder;
|
||||||
{
|
|
||||||
get { return RequestType.GetOrder; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Regular → Executable
+2
-5
@@ -1,12 +1,9 @@
|
|||||||
namespace MtApi.Requests
|
namespace MtApi.Requests
|
||||||
{
|
{
|
||||||
public class GetOrdersRequest: RequestBase
|
internal class GetOrdersRequest: RequestBase
|
||||||
{
|
{
|
||||||
public int Pool { get; set; }
|
public int Pool { get; set; }
|
||||||
|
|
||||||
public override RequestType RequestType
|
public override RequestType RequestType => RequestType.GetOrders;
|
||||||
{
|
|
||||||
get { return RequestType.GetOrders; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Regular → Executable
+3
-8
@@ -1,10 +1,8 @@
|
|||||||
|
using System.Collections;
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
|
|
||||||
namespace MtApi.Requests
|
namespace MtApi.Requests
|
||||||
{
|
{
|
||||||
public class ICustomRequest : RequestBase
|
internal class ICustomRequest : RequestBase
|
||||||
{
|
{
|
||||||
public enum ParametersType
|
public enum ParametersType
|
||||||
{
|
{
|
||||||
@@ -22,9 +20,6 @@ namespace MtApi.Requests
|
|||||||
public ArrayList Params { get; set; }
|
public ArrayList Params { get; set; }
|
||||||
public ParametersType ParamsType { get; set; }
|
public ParametersType ParamsType { get; set; }
|
||||||
|
|
||||||
public override RequestType RequestType
|
public override RequestType RequestType => RequestType.iCustom;
|
||||||
{
|
|
||||||
get { return RequestType.iCustom; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Regular → Executable
+2
-5
@@ -1,15 +1,12 @@
|
|||||||
namespace MtApi.Requests
|
namespace MtApi.Requests
|
||||||
{
|
{
|
||||||
public class OrderCloseByRequest: RequestBase
|
internal class OrderCloseByRequest: RequestBase
|
||||||
{
|
{
|
||||||
public int Ticket { get; set; }
|
public int Ticket { get; set; }
|
||||||
public int Opposite { get; set; }
|
public int Opposite { get; set; }
|
||||||
|
|
||||||
public int? ArrowColor { get; set; }
|
public int? ArrowColor { get; set; }
|
||||||
|
|
||||||
public override RequestType RequestType
|
public override RequestType RequestType => RequestType.OrderCloseBy;
|
||||||
{
|
|
||||||
get { return RequestType.OrderCloseBy; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Regular → Executable
+2
-5
@@ -1,6 +1,6 @@
|
|||||||
namespace MtApi.Requests
|
namespace MtApi.Requests
|
||||||
{
|
{
|
||||||
public class OrderCloseRequest: RequestBase
|
internal class OrderCloseRequest: RequestBase
|
||||||
{
|
{
|
||||||
public int Ticket { get; set; }
|
public int Ticket { get; set; }
|
||||||
|
|
||||||
@@ -9,9 +9,6 @@
|
|||||||
public int? Slippage { get; set; }
|
public int? Slippage { get; set; }
|
||||||
public int? ArrowColor { get; set; }
|
public int? ArrowColor { get; set; }
|
||||||
|
|
||||||
public override RequestType RequestType
|
public override RequestType RequestType => RequestType.OrderClose;
|
||||||
{
|
|
||||||
get { return RequestType.OrderClose; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Regular → Executable
+2
-5
@@ -1,14 +1,11 @@
|
|||||||
namespace MtApi.Requests
|
namespace MtApi.Requests
|
||||||
{
|
{
|
||||||
public class OrderDeleteRequest: RequestBase
|
internal class OrderDeleteRequest: RequestBase
|
||||||
{
|
{
|
||||||
public int Ticket { get; set; }
|
public int Ticket { get; set; }
|
||||||
|
|
||||||
public int? ArrowColor { get; set; }
|
public int? ArrowColor { get; set; }
|
||||||
|
|
||||||
public override RequestType RequestType
|
public override RequestType RequestType => RequestType.OrderDelete;
|
||||||
{
|
|
||||||
get { return RequestType.OrderDelete; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Regular → Executable
+2
-5
@@ -1,6 +1,6 @@
|
|||||||
namespace MtApi.Requests
|
namespace MtApi.Requests
|
||||||
{
|
{
|
||||||
public class OrderModifyRequest: RequestBase
|
internal class OrderModifyRequest: RequestBase
|
||||||
{
|
{
|
||||||
public int Ticket { get; set; }
|
public int Ticket { get; set; }
|
||||||
public double Price { get; set; }
|
public double Price { get; set; }
|
||||||
@@ -10,9 +10,6 @@
|
|||||||
|
|
||||||
public int? ArrowColor { get; set; }
|
public int? ArrowColor { get; set; }
|
||||||
|
|
||||||
public override RequestType RequestType
|
public override RequestType RequestType => RequestType.OrderModify;
|
||||||
{
|
|
||||||
get { return RequestType.OrderModify; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Regular → Executable
+2
-5
@@ -1,6 +1,6 @@
|
|||||||
namespace MtApi.Requests
|
namespace MtApi.Requests
|
||||||
{
|
{
|
||||||
public class OrderSendRequest: RequestBase
|
internal class OrderSendRequest: RequestBase
|
||||||
{
|
{
|
||||||
public string Symbol { get; set; }
|
public string Symbol { get; set; }
|
||||||
public int Cmd { get; set; }
|
public int Cmd { get; set; }
|
||||||
@@ -15,9 +15,6 @@
|
|||||||
public int? Expiration { get; set; }
|
public int? Expiration { get; set; }
|
||||||
public int? ArrowColor { get; set; }
|
public int? ArrowColor { get; set; }
|
||||||
|
|
||||||
public override RequestType RequestType
|
public override RequestType RequestType => RequestType.OrderSend;
|
||||||
{
|
|
||||||
get { return RequestType.OrderSend; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
using Newtonsoft.Json;
|
namespace MtApi.Requests
|
||||||
|
|
||||||
namespace MtApi.Requests
|
|
||||||
{
|
{
|
||||||
public abstract class RequestBase
|
internal abstract class RequestBase
|
||||||
{
|
{
|
||||||
public abstract RequestType RequestType { get; }
|
public abstract RequestType RequestType { get; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
namespace MtApi.Requests
|
namespace MtApi.Requests
|
||||||
{
|
{
|
||||||
public enum RequestType
|
internal enum RequestType
|
||||||
{
|
{
|
||||||
Unknown = 0,
|
Unknown = 0,
|
||||||
GetOrder = 1,
|
GetOrder = 1,
|
||||||
GetOrders = 2,
|
GetOrders = 2,
|
||||||
OrderSend = 3,
|
OrderSend = 3,
|
||||||
OrderClose = 4,
|
OrderClose = 4,
|
||||||
OrderCloseBy = 5,
|
OrderCloseBy = 5,
|
||||||
OrderDelete = 6,
|
OrderDelete = 6,
|
||||||
OrderModify = 7,
|
OrderModify = 7,
|
||||||
iCustom = 8,
|
iCustom = 8,
|
||||||
CopyRates = 9,
|
CopyRates = 9,
|
||||||
Session = 10,
|
Session = 10,
|
||||||
|
SeriesInfoInteger = 11
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
namespace MtApi.Requests
|
||||||
|
{
|
||||||
|
internal class SeriesInfoIntegerRequest: RequestBase
|
||||||
|
{
|
||||||
|
public override RequestType RequestType => RequestType.SeriesInfoInteger;
|
||||||
|
|
||||||
|
public string SymbolName { get; set; }
|
||||||
|
public int Timeframe { get; set; }
|
||||||
|
public int PropId { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,16 +2,13 @@
|
|||||||
|
|
||||||
namespace MtApi.Requests
|
namespace MtApi.Requests
|
||||||
{
|
{
|
||||||
public class SessionRequest : RequestBase
|
internal class SessionRequest : RequestBase
|
||||||
{
|
{
|
||||||
public string Symbol { get; set; }
|
public string Symbol { get; set; }
|
||||||
public DayOfWeek DayOfWeek { get; set; }
|
public DayOfWeek DayOfWeek { get; set; }
|
||||||
public int SessionIndex { get; set; }
|
public int SessionIndex { get; set; }
|
||||||
public SessionType SessionType { get; set; }
|
public SessionType SessionType { get; set; }
|
||||||
|
|
||||||
public override RequestType RequestType
|
public override RequestType RequestType => RequestType.Session;
|
||||||
{
|
|
||||||
get { return RequestType.Session; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace MtApi.Responses
|
namespace MtApi.Responses
|
||||||
{
|
{
|
||||||
public class CopyRatesResponse: ResponseBase
|
internal class CopyRatesResponse: ResponseBase
|
||||||
{
|
{
|
||||||
public List<MqlRates> Rates { get; set; }
|
public List<MqlRates> Rates { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
Regular → Executable
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
namespace MtApi.Responses
|
namespace MtApi.Responses
|
||||||
{
|
{
|
||||||
public class GetOrderResponse: ResponseBase
|
internal class GetOrderResponse: ResponseBase
|
||||||
{
|
{
|
||||||
public MtOrder Order { get; set; }
|
public MtOrder Order { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
Regular → Executable
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace MtApi.Responses
|
namespace MtApi.Responses
|
||||||
{
|
{
|
||||||
public class GetOrdersResponse: ResponseBase
|
internal class GetOrdersResponse: ResponseBase
|
||||||
{
|
{
|
||||||
public List<MtOrder> Orders { get; set; }
|
public List<MtOrder> Orders { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
Regular → Executable
+2
-8
@@ -1,12 +1,6 @@
|
|||||||
using System;
|
namespace MtApi.Responses
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace MtApi.Responses
|
|
||||||
{
|
{
|
||||||
public class ICustomResponse: ResponseBase
|
internal class ICustomResponse: ResponseBase
|
||||||
{
|
{
|
||||||
public double Value { get; set; }
|
public double Value { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
Regular → Executable
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
namespace MtApi.Responses
|
namespace MtApi.Responses
|
||||||
{
|
{
|
||||||
public class OrderSendResponse: ResponseBase
|
internal class OrderSendResponse: ResponseBase
|
||||||
{
|
{
|
||||||
public int Ticket { get; set; }
|
public int Ticket { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
Regular → Executable
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
namespace MtApi.Responses
|
namespace MtApi.Responses
|
||||||
{
|
{
|
||||||
public class ResponseBase
|
internal class ResponseBase
|
||||||
{
|
{
|
||||||
public int ErrorCode { get; set; }
|
public int ErrorCode { get; set; }
|
||||||
public string ErrorMessage { get; set; }
|
public string ErrorMessage { get; set; }
|
||||||
|
|||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
namespace MtApi.Responses
|
||||||
|
{
|
||||||
|
internal class SeriesInfoIntegerResponse: ResponseBase
|
||||||
|
{
|
||||||
|
public long Value { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
namespace MtApi.Responses
|
namespace MtApi.Responses
|
||||||
{
|
{
|
||||||
public class SessionResponse : ResponseBase
|
internal class SessionResponse : ResponseBase
|
||||||
{
|
{
|
||||||
public MtSession Session { get; set; }
|
public MtSession Session { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
+30
@@ -154,6 +154,8 @@
|
|||||||
this.button28 = new System.Windows.Forms.Button();
|
this.button28 = new System.Windows.Forms.Button();
|
||||||
this.label28 = new System.Windows.Forms.Label();
|
this.label28 = new System.Windows.Forms.Label();
|
||||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||||
|
this.button31 = new System.Windows.Forms.Button();
|
||||||
|
this.comboBox5 = new System.Windows.Forms.ComboBox();
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.statusStrip1.SuspendLayout();
|
this.statusStrip1.SuspendLayout();
|
||||||
this.groupBox2.SuspendLayout();
|
this.groupBox2.SuspendLayout();
|
||||||
@@ -1109,6 +1111,8 @@
|
|||||||
//
|
//
|
||||||
// tabPage5
|
// tabPage5
|
||||||
//
|
//
|
||||||
|
this.tabPage5.Controls.Add(this.comboBox5);
|
||||||
|
this.tabPage5.Controls.Add(this.button31);
|
||||||
this.tabPage5.Controls.Add(this.dateTimePicker2);
|
this.tabPage5.Controls.Add(this.dateTimePicker2);
|
||||||
this.tabPage5.Controls.Add(this.dateTimePicker1);
|
this.tabPage5.Controls.Add(this.dateTimePicker1);
|
||||||
this.tabPage5.Controls.Add(this.label6);
|
this.tabPage5.Controls.Add(this.label6);
|
||||||
@@ -1546,6 +1550,30 @@
|
|||||||
this.textBox1.TabIndex = 0;
|
this.textBox1.TabIndex = 0;
|
||||||
this.textBox1.Text = "EURUSD";
|
this.textBox1.Text = "EURUSD";
|
||||||
//
|
//
|
||||||
|
// button31
|
||||||
|
//
|
||||||
|
this.button31.Location = new System.Drawing.Point(287, 298);
|
||||||
|
this.button31.Name = "button31";
|
||||||
|
this.button31.Size = new System.Drawing.Size(128, 23);
|
||||||
|
this.button31.TabIndex = 22;
|
||||||
|
this.button31.Text = "SeriesInfoInteger";
|
||||||
|
this.button31.UseVisualStyleBackColor = true;
|
||||||
|
this.button31.Click += new System.EventHandler(this.button31_Click);
|
||||||
|
//
|
||||||
|
// comboBox5
|
||||||
|
//
|
||||||
|
this.comboBox5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.comboBox5.FormattingEnabled = true;
|
||||||
|
this.comboBox5.Items.AddRange(new object[] {
|
||||||
|
"SERIES_BARS_COUNT",
|
||||||
|
"SERIES_FIRSTDATE",
|
||||||
|
"SERIES_LASTBAR_DATE",
|
||||||
|
"SERIES_SERVER_FIRSTDATE"});
|
||||||
|
this.comboBox5.Location = new System.Drawing.Point(160, 298);
|
||||||
|
this.comboBox5.Name = "comboBox5";
|
||||||
|
this.comboBox5.Size = new System.Drawing.Size(121, 21);
|
||||||
|
this.comboBox5.TabIndex = 23;
|
||||||
|
//
|
||||||
// Form1
|
// Form1
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
@@ -1718,6 +1746,8 @@
|
|||||||
private System.Windows.Forms.Button button30;
|
private System.Windows.Forms.Button button30;
|
||||||
private System.Windows.Forms.Button button32;
|
private System.Windows.Forms.Button button32;
|
||||||
private System.Windows.Forms.ComboBox comboBox4;
|
private System.Windows.Forms.ComboBox comboBox4;
|
||||||
|
private System.Windows.Forms.Button button31;
|
||||||
|
private System.Windows.Forms.ComboBox comboBox5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,9 @@ namespace TestApiClientUI
|
|||||||
|
|
||||||
comboBox1.SelectedIndex = 0;
|
comboBox1.SelectedIndex = 0;
|
||||||
comboBox2.SelectedIndex = 0;
|
comboBox2.SelectedIndex = 0;
|
||||||
|
comboBox3.SelectedIndex = 0;
|
||||||
comboBox4.SelectedIndex = 0;
|
comboBox4.SelectedIndex = 0;
|
||||||
|
comboBox5.SelectedIndex = 0;
|
||||||
|
|
||||||
_timerTradeMonitor = new TimerTradeMonitor(_apiClient) { Interval = 10000 }; // 10 sec
|
_timerTradeMonitor = new TimerTradeMonitor(_apiClient) { Interval = 10000 }; // 10 sec
|
||||||
_timerTradeMonitor.AvailabilityOrdersChanged += _tradeMonitor_AvailabilityOrdersChanged;
|
_timerTradeMonitor.AvailabilityOrdersChanged += _tradeMonitor_AvailabilityOrdersChanged;
|
||||||
@@ -1221,5 +1223,18 @@ namespace TestApiClientUI
|
|||||||
AddToLog($"{sender.GetType()}: Closed orders - {string.Join(", ", e.Closed.Select(o => o.Ticket).ToList())}");
|
AddToLog($"{sender.GetType()}: Closed orders - {string.Join(", ", e.Closed.Select(o => o.Ticket).ToList())}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//SeriesInfoInteger
|
||||||
|
private async void button31_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var symbol = textBoxSelectedSymbol.Text;
|
||||||
|
ENUM_TIMEFRAMES timeframes;
|
||||||
|
Enum.TryParse(comboBox3.Text, out timeframes);
|
||||||
|
EnumSeriesInfoInteger propId;
|
||||||
|
Enum.TryParse(comboBox5.Text, out propId);
|
||||||
|
|
||||||
|
var result = await Execute(() => _apiClient.SeriesInfoInteger(symbol, timeframes, propId));
|
||||||
|
AddToLog($"SeriesInfoInteger: result = {result}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Regular → Executable
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user