From 6023bffed6ccde1518e4abed05d710202ca9513d Mon Sep 17 00:00:00 2001 From: vdemydiuk Date: Tue, 8 May 2018 14:53:31 +0300 Subject: [PATCH] Issue #106: Extended structure Mt5Quote with fields from MqlTick (volume, last, time) --- MtApi5/Events/Mt5EventTypes.cs | 3 +- MtApi5/Events/OnTickEvent.cs | 9 ++++ MtApi5/Mt5Quote.cs | 10 +++- MtApi5/MtApi5.csproj | 1 + MtApi5/MtApi5Client.cs | 36 ++++++++++----- TestClients/MtApi5TestClient/ViewModel.cs | 11 ++--- mq5/MtApi5.ex5 | Bin 606134 -> 608586 bytes mq5/MtApi5.mq5 | 53 ++++++++++++++-------- 8 files changed, 83 insertions(+), 40 deletions(-) create mode 100644 MtApi5/Events/OnTickEvent.cs diff --git a/MtApi5/Events/Mt5EventTypes.cs b/MtApi5/Events/Mt5EventTypes.cs index 6fb3a3bd..bc7a8266 100644 --- a/MtApi5/Events/Mt5EventTypes.cs +++ b/MtApi5/Events/Mt5EventTypes.cs @@ -3,6 +3,7 @@ internal enum Mt5EventTypes { OnTradeTransaction = 1, - OnBookEvent = 2 + OnBookEvent = 2, + OnTick = 3 } } diff --git a/MtApi5/Events/OnTickEvent.cs b/MtApi5/Events/OnTickEvent.cs new file mode 100644 index 00000000..42994636 --- /dev/null +++ b/MtApi5/Events/OnTickEvent.cs @@ -0,0 +1,9 @@ +namespace MtApi5.Events +{ + internal class OnTickEvent + { + public MqlTick Tick { get; set; } + public string Instrument { get; set; } + public int ExpertHandle { get; set; } + } +} \ No newline at end of file diff --git a/MtApi5/Mt5Quote.cs b/MtApi5/Mt5Quote.cs index 463fa9b0..c3ec47c4 100755 --- a/MtApi5/Mt5Quote.cs +++ b/MtApi5/Mt5Quote.cs @@ -1,4 +1,5 @@ -using MTApiService; +using System; +using MTApiService; namespace MtApi5 { @@ -8,8 +9,13 @@ public class Mt5Quote public double Bid { get; } public double Ask { get; } public int ExpertHandle { get; set; } + public DateTime Time { get; set; } + public double Last { get; set; } + public ulong Volume { get; set; } +// public long TimeMsc { get; set; } +// public uint Flags { get; set; } - private Mt5Quote(string instrument, double bid, double ask) + internal Mt5Quote(string instrument, double bid, double ask) { Instrument = instrument; Bid = bid; diff --git a/MtApi5/MtApi5.csproj b/MtApi5/MtApi5.csproj index 286efa50..d83a75da 100755 --- a/MtApi5/MtApi5.csproj +++ b/MtApi5/MtApi5.csproj @@ -49,6 +49,7 @@ + diff --git a/MtApi5/MtApi5Client.cs b/MtApi5/MtApi5Client.cs index 72d48e3c..6bc71b64 100755 --- a/MtApi5/MtApi5Client.cs +++ b/MtApi5/MtApi5Client.cs @@ -40,12 +40,19 @@ public class MtApi5Client private volatile bool _isBacktestingMode; private Mt5ConnectionState _connectionState = Mt5ConnectionState.Disconnected; private int _executorHandle; + private readonly Dictionary> _mtEventHandlers = + new Dictionary>(); + #endregion #region Public Methods public MtApi5Client() { LogConfigurator.Setup(LogProfileName); + + _mtEventHandlers[Mt5EventTypes.OnBookEvent] = ReceivedOnBookEvent; + _mtEventHandlers[Mt5EventTypes.OnTick] = ReceivedOnTickEvent; + _mtEventHandlers[Mt5EventTypes.OnTradeTransaction] = ReceivedOnTradeTransaction; } /// @@ -3002,21 +3009,11 @@ private void Connect(MtClient client) } } + private void _client_MtEventReceived(MtEvent e) { var eventType = (Mt5EventTypes)e.EventType; - - switch (eventType) - { - case Mt5EventTypes.OnTradeTransaction: - ReceivedOnTradeTransaction(e.ExpertHandle, e.Payload); - break; - case Mt5EventTypes.OnBookEvent: - ReceivedOnBookEvent(e.ExpertHandle, e.Payload); - break; - default: - throw new ArgumentOutOfRangeException(); - } + _mtEventHandlers[eventType](e.ExpertHandle, e.Payload); } private void ReceivedOnTradeTransaction(int expertHandler, string payload) @@ -3041,6 +3038,21 @@ private void ReceivedOnBookEvent(int expertHandler, string payload) }); } + private void ReceivedOnTickEvent(int expertHandler, string payload) + { + var e = JsonConvert.DeserializeObject(payload); + var quote = new Mt5Quote(e.Instrument, e.Tick.bid, e.Tick.ask) + { + ExpertHandle = expertHandler, + Volume = e.Tick.volume, + Time = e.Tick.time, + Last = e.Tick.last + }; + + QuoteUpdated?.Invoke(this, quote.Instrument, quote.Bid, quote.Ask); + QuoteUpdate?.Invoke(this, new Mt5QuoteEventArgs(quote)); + } + private void Connect(string host, int port) { var client = new MtClient(host, port); diff --git a/TestClients/MtApi5TestClient/ViewModel.cs b/TestClients/MtApi5TestClient/ViewModel.cs index c309b4bd..870f43cf 100755 --- a/TestClients/MtApi5TestClient/ViewModel.cs +++ b/TestClients/MtApi5TestClient/ViewModel.cs @@ -240,7 +240,6 @@ public ViewModel() _mtApiClient.ConnectionStateChanged += mMtApiClient_ConnectionStateChanged; _mtApiClient.QuoteAdded += mMtApiClient_QuoteAdded; _mtApiClient.QuoteRemoved += mMtApiClient_QuoteRemoved; - _mtApiClient.QuoteUpdated += mMtApiClient_QuoteUpdated; _mtApiClient.QuoteUpdate += mMtApiClient_QuoteUpdate; _mtApiClient.OnTradeTransaction += mMtApiClient_OnTradeTransaction; _mtApiClient.OnBookEvent += _mtApiClient_OnBookEvent; @@ -1427,13 +1426,13 @@ private static void RunOnUiThread(Action action, params object[] args) Application.Current?.Dispatcher.Invoke(action, args); } - private static void mMtApiClient_QuoteUpdated(object sender, string symbol, double bid, double ask) - { - Console.WriteLine(@"Quote: Symbol = {0}, Bid = {1}, Ask = {2}", symbol, bid, ask); - } - private void mMtApiClient_QuoteUpdate(object sender, Mt5QuoteEventArgs e) { + var q = e.Quote; + + Console.WriteLine(@"Quote: Symbol = {0}, Bid = {1}, Ask = {2}, Volume = {3}, Time = {4}, Last = {5}" + , q.Instrument, q.Bid, q.Ask, q.Volume, q.Time, q.Last); + if (_quotesMap.ContainsKey(e.Quote.ExpertHandle)) { var qvm = _quotesMap[e.Quote.ExpertHandle]; diff --git a/mq5/MtApi5.ex5 b/mq5/MtApi5.ex5 index 5f63c7ca7fbfd59005421eb69c729dbdb241c4a8..cee3a9de272a0086a1bed09014bf36838682a87f 100755 GIT binary patch literal 608586 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�WXWky$>%@33tTN(aCan4xIXjju<|zJAG8 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