MtApiService version 1.0.29. Added log wrapper class MtLog

This commit is contained in:
vdemydiuk
2018-02-15 17:37:08 +02:00
parent 83e62fbff7
commit 3600a86971
4 changed files with 97 additions and 9 deletions
+7 -2
View File
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using MTApiService;
using System.Collections;
using System.Diagnostics.CodeAnalysis;
using System.ServiceModel;
using MtApi5.Requests;
using MtApi5.Responses;
@@ -11,6 +12,7 @@ using System.Threading.Tasks;
namespace MtApi5
{
[SuppressMessage("ReSharper", "InconsistentNaming")]
public class MtApi5Client
{
#region MT Constants
@@ -32,9 +34,11 @@ namespace MtApi5
#region Private Fields
private static readonly MtLog Log = LogConfigurator.GetLogger(typeof(MtApi5Client));
private MtClient _client;
private readonly object _locker = new object();
private volatile bool _isBacktestingMode = false;
private volatile bool _isBacktestingMode;
private Mt5ConnectionState _connectionState = Mt5ConnectionState.Disconnected;
private int _executorHandle;
#endregion
@@ -78,7 +82,7 @@ namespace MtApi5
public IEnumerable<Mt5Quote> GetQuotes()
{
var client = Client;
var quotes = client != null ? client.GetQuotes() : null;
var quotes = client?.GetQuotes();
return quotes?.Select(q => q.Parse());
}
@@ -533,6 +537,7 @@ namespace MtApi5
/// <param name="sl">Stop Loss price</param>
/// <param name="tp">Take Profit price</param>
/// <param name="comment">comment</param>
/// <param name="result">output result</param>
/// <returns>true - successful check of the basic structures, otherwise - false.</returns>
public bool PositionOpen(string symbol, ENUM_ORDER_TYPE orderType, double volume, double price, double sl, double tp, string comment , out MqlTradeResult result)
{
+36 -5
View File
@@ -6,14 +6,18 @@ namespace MtApi5
{
internal static class MtConverters
{
private static readonly MtLog Log = LogConfigurator.GetLogger(typeof(MtConverters));
#region Values Converters
public static Mt5Quote Parse(this MtQuote quote)
{
return (quote != null) ? new Mt5Quote(quote.Instrument, quote.Bid, quote.Ask) : null;
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;
@@ -38,17 +42,25 @@ namespace MtApi5
result = new MqlTradeResult(retcode, deal, order, volume, price, bid, ask, comment, requestId);
}
catch (Exception)
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}");
var retVal = false;
result = null;
@@ -72,18 +84,25 @@ namespace MtApi5
result = new MqlTradeCheckResult(retcode, balance, equity, profit, margin, marginFree, marginLevel, comment);
}
catch (Exception)
catch (Exception ex)
{
retVal = false;
Log.Error($"ParseResult: {ex.Message}");
}
}
}
else
{
Log.Warn("ParseResult: input srting is null or empty!");
}
return retVal;
}
public static bool ParseResult(this string inputString, char separator, out double result)
{
Log.Debug($"ParseResult: inputString = {inputString}, separator = {separator}");
var retVal = false;
result = 0;
@@ -98,18 +117,25 @@ namespace MtApi5
result = double.Parse(values[1]);
}
catch (Exception)
catch (Exception ex)
{
retVal = false;
Log.Error($"ParseResult: {ex.Message}");
}
}
}
else
{
Log.Warn("ParseResult: input srting is null or empty!");
}
return retVal;
}
public static bool ParseResult(this string inputString, char separator, out DateTime from, out DateTime to)
{
Log.Debug($"ParseResult: inputString = {inputString}, separator = {separator}");
var retVal = false;
from = new DateTime();
@@ -130,12 +156,17 @@ namespace MtApi5
var iTo= int.Parse(values[2]);
to = Mt5TimeConverter.ConvertFromMtTime(iTo);
}
catch (Exception)
catch (Exception ex)
{
retVal = false;
Log.Error($"ParseResult: {ex.Message}");
}
}
}
else
{
Log.Warn("ParseResult: input srting is null or empty!");
}
return retVal;
}