Issue #89: Changed function OrderCheck to use json request/response

This commit is contained in:
vdemydiuk
2018-02-19 17:02:19 +02:00
parent d6640300f5
commit f1c1df1e00
12 changed files with 141 additions and 131 deletions
+5
View File
@@ -31,5 +31,10 @@ namespace MtApi5
Margin_level = margin_level;
Comment = comment;
}
public override string ToString()
{
return $"Retcode={Retcode}; Comment={Comment}; Balance={Balance}; Equity={Equity}; Profit={Profit}; Margin={Margin}; Margin_free={Margin_free}; Margin_level={Margin_level}";
}
}
}
+2 -2
View File
@@ -9,7 +9,7 @@ namespace MtApi5
//OrderSend = 1,
OrderCalcMargin = 2,
OrderCalcProfit = 3,
OrderCheck = 4,
//OrderCheck = 4,
//OrderSendAsync = 5,
PositionsTotal = 6,
PositionGetSymbol = 7,
@@ -101,7 +101,7 @@ namespace MtApi5
//CTrade
PositionClose = 64,
PositionOpen = 65,
PositionOpenWithResult = 1065,
//PositionOpenWithResult = 1065,
//Backtesting
BacktestingReady = 66,
+2
View File
@@ -68,6 +68,8 @@
<Compile Include="Mt5Quote.cs" />
<Compile Include="Requests\CopyTicksRequest.cs" />
<Compile Include="Requests\ICustomRequest.cs" />
<Compile Include="Requests\OrderCheckRequest.cs" />
<Compile Include="Requests\OrderCheckResult.cs" />
<Compile Include="Requests\OrderSendRequest.cs" />
<Compile Include="Requests\PositionOpenRequest.cs" />
<Compile Include="Requests\RequestBase.cs" />
+9 -9
View File
@@ -187,17 +187,22 @@ namespace MtApi5
/// </returns>
public bool OrderCheck(MqlTradeRequest request, out MqlTradeCheckResult result)
{
Log.Debug($"OrderCheck: request = {request}");
if (request == null)
{
Log.Warn("OrderCheck: request is not defined!");
result = null;
return false;
}
var commandParameters = request.ToArrayList();
var response = SendRequest<OrderCheckResult>(new OrderCheckRequest
{
TradeRequest = request
});
var strResult = SendCommand<string>(Mt5CommandType.OrderCheck, commandParameters);
return strResult.ParseResult(ParamSeparator, out result);
result = response?.TradeCheckResult;
return response != null && response.RetVal;
}
///<summary>
@@ -559,11 +564,6 @@ namespace MtApi5
result = response?.TradeResult;
return response != null && response.RetVal;
//var commandParameters = new ArrayList { symbol, (int)orderType, volume, price, sl, tp, comment };
//var strResult = SendCommand<string>(Mt5CommandType.PositionOpenWithResult, commandParameters);
//return strResult.ParseResult(ParamSeparator, out result);
}
#endregion
-43
View File
@@ -14,49 +14,6 @@ namespace MtApi5
return quote != null ? new Mt5Quote(quote.Instrument, quote.Bid, quote.Ask) : null;
}
//public static bool ParseResult(this string inputString, char separator, out MqlTradeResult result)
//{
// Log.Debug($"ParseResult: inputString = {inputString}, separator = {separator}");
// var retVal = false;
// result = null;
// if (string.IsNullOrEmpty(inputString) == false)
// {
// var values = inputString.Split(separator);
// if (values.Length == 10)
// {
// try
// {
// retVal = int.Parse(values[0]) != 0;
// var retcode = uint.Parse(values[1]);
// var deal = ulong.Parse(values[2]);
// var order = ulong.Parse(values[3]);
// var volume = double.Parse(values[4]);
// var price = double.Parse(values[5]);
// var bid = double.Parse(values[6]);
// var ask = double.Parse(values[7]);
// var comment = values[8];
// var requestId = uint.Parse(values[9]);
// result = new MqlTradeResult(retcode, deal, order, volume, price, bid, ask, comment, requestId);
// }
// catch (Exception ex)
// {
// Log.Error($"ParseResult: {ex.Message}");
// retVal = false;
// }
// }
// }
// else
// {
// Log.Warn("ParseResult: input srting is null or empty!");
// }
// return retVal;
//}
public static bool ParseResult(this string inputString, char separator, out MqlTradeCheckResult result)
{
Log.Debug($"ParseResult: inputString = {inputString}, separator = {separator}");
+10
View File
@@ -0,0 +1,10 @@
namespace MtApi5.Requests
{
internal class OrderCheckRequest: RequestBase
{
public override RequestType RequestType => RequestType.OrderCheck;
public MqlTradeRequest TradeRequest { get; set; }
}
}
+8
View File
@@ -0,0 +1,8 @@
namespace MtApi5.Requests
{
public class OrderCheckResult
{
public bool RetVal { get; set; }
public MqlTradeCheckResult TradeCheckResult { get; set; }
}
}
+2 -1
View File
@@ -8,6 +8,7 @@ namespace MtApi5.Requests
CopyTicks = 1,
iCustom = 2,
OrderSend = 3,
PositionOpen = 4
PositionOpen = 4,
OrderCheck = 5
}
}