From 66d981ca9caf4ae30ef38a495f60f8ee7c89af0b Mon Sep 17 00:00:00 2001 From: Viacheslav Demydiuk Date: Sat, 13 Jan 2024 14:48:06 +0200 Subject: [PATCH] MtApi5: small update in requesting quote --- MtApi5/MqlTick.cs | 5 +---- MtApi5/Mt5Quote.cs | 21 +-------------------- MtApi5/MtApi5Client.cs | 25 +++++++++++++++++++++---- 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/MtApi5/MqlTick.cs b/MtApi5/MqlTick.cs index 6cb4c07a..ded5c160 100755 --- a/MtApi5/MqlTick.cs +++ b/MtApi5/MqlTick.cs @@ -1,7 +1,4 @@ -// ReSharper disable InconsistentNaming -using System; - -namespace MtApi5 +namespace MtApi5 { public class MqlTick { diff --git a/MtApi5/Mt5Quote.cs b/MtApi5/Mt5Quote.cs index cae0e17c..350bf106 100755 --- a/MtApi5/Mt5Quote.cs +++ b/MtApi5/Mt5Quote.cs @@ -1,6 +1,4 @@ -using System; - -namespace MtApi5 +namespace MtApi5 { public class Mt5Quote { @@ -13,22 +11,5 @@ namespace MtApi5 public ulong Volume { get; set; } // public long TimeMsc { get; set; } // public uint Flags { get; set; } - - internal Mt5Quote() - { - } - - internal Mt5Quote(string instrument, double bid, double ask) - { - Instrument = instrument; - Bid = bid; - Ask = ask; - } - - //internal Mt5Quote(MtQuote quote) - // :this(quote.Instrument, quote.Bid, quote.Ask) - //{ - // ExpertHandle = quote.ExpertHandle; - //} } } diff --git a/MtApi5/MtApi5Client.cs b/MtApi5/MtApi5Client.cs index 363a6527..5c4ffbe8 100755 --- a/MtApi5/MtApi5Client.cs +++ b/MtApi5/MtApi5Client.cs @@ -4,6 +4,7 @@ using Newtonsoft.Json; using MtApi5.Events; using MtClient; using System.Reflection.Metadata; +using System.Collections.Generic; namespace MtApi5 { @@ -3478,9 +3479,22 @@ namespace MtApi5 private Mt5Quote? GetQuote(int expertHandle) { Log?.Debug($"GetQuote: expertHandle = {expertHandle}"); - var quote = SendCommand(expertHandle, Mt5CommandType.GetQuote); - if (quote != null) - quote.ExpertHandle = expertHandle; + + var e = SendCommand(expertHandle, Mt5CommandType.GetQuote); + if (e == null || string.IsNullOrEmpty(e.Instrument) || e.Tick == null) + return null; + + Mt5Quote quote = new() + { + Instrument = e.Instrument, + Bid = e.Tick.bid, + Ask = e.Tick.ask, + ExpertHandle = expertHandle, + Volume = e.Tick.volume, + Time = e.Tick.time, + Last = e.Tick.last + }; + return quote; } @@ -3530,8 +3544,11 @@ namespace MtApi5 QuoteUpdated?.Invoke(this, e.Instrument, e.Tick.bid, e.Tick.ask); - var quote = new Mt5Quote(e.Instrument, e.Tick.bid, e.Tick.ask) + Mt5Quote quote = new() { + Instrument = e.Instrument, + Bid = e.Tick.bid, + Ask = e.Tick.ask, ExpertHandle = expertHandler, Volume = e.Tick.volume, Time = e.Tick.time,