From 6c45f28a0549d9663b89427a556546f5b19e66c7 Mon Sep 17 00:00:00 2001 From: vdemydiuk Date: Mon, 4 Jun 2018 15:04:12 +0300 Subject: [PATCH] Issue #121: Added original MtTime field to MqlRates (MT5) --- MtApi5/MqlRates.cs | 15 +++++++++++++++ MtApi5/MtApi5Client.cs | 6 +++--- TestClients/MtApi5TestClient/ViewModel.cs | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/MtApi5/MqlRates.cs b/MtApi5/MqlRates.cs index ec958397..740cedb7 100755 --- a/MtApi5/MqlRates.cs +++ b/MtApi5/MqlRates.cs @@ -8,6 +8,20 @@ namespace MtApi5 public MqlRates(DateTime time, double open, double high, double low, double close, long tick_volume, int spread, long real_volume) { this.time = time; + mt_time = Mt5TimeConverter.ConvertToMtTime(time); + this.open = open; + this.high = high; + this.low = low; + this.close = close; + this.tick_volume = tick_volume; + this.spread = spread; + this.real_volume = real_volume; + } + + internal MqlRates(long time, double open, double high, double low, double close, long tick_volume, int spread, long real_volume) + { + this.time = Mt5TimeConverter.ConvertFromMtTime(time); + mt_time = time; this.open = open; this.high = high; this.low = low; @@ -22,6 +36,7 @@ namespace MtApi5 } public DateTime time { get; set; } // Period start time + public long mt_time { get; set; } // Period start time (original MT time) public double open { get; set; } // Open price public double high { get; set; } // The highest price of the period public double low { get; set; } // The lowest price of the period diff --git a/MtApi5/MtApi5Client.cs b/MtApi5/MtApi5Client.cs index 0b481426..1cecd379 100755 --- a/MtApi5/MtApi5Client.cs +++ b/MtApi5/MtApi5Client.cs @@ -741,7 +741,7 @@ namespace MtApi5 ratesArray = new MqlRates[retVal.Length]; for(var i = 0; i < retVal.Length; i++) { - ratesArray[i] = new MqlRates(Mt5TimeConverter.ConvertFromMtTime(retVal[i].time) + ratesArray[i] = new MqlRates(retVal[i].time , retVal[i].open , retVal[i].high , retVal[i].low @@ -775,7 +775,7 @@ namespace MtApi5 ratesArray = new MqlRates[retVal.Length]; for (var i = 0; i < retVal.Length; i++) { - ratesArray[i] = new MqlRates(Mt5TimeConverter.ConvertFromMtTime(retVal[i].time) + ratesArray[i] = new MqlRates(retVal[i].time , retVal[i].open , retVal[i].high , retVal[i].low @@ -809,7 +809,7 @@ namespace MtApi5 ratesArray = new MqlRates[retVal.Length]; for (var i = 0; i < retVal.Length; i++) { - ratesArray[i] = new MqlRates(Mt5TimeConverter.ConvertFromMtTime(retVal[i].time) + ratesArray[i] = new MqlRates(retVal[i].time , retVal[i].open , retVal[i].high , retVal[i].low diff --git a/TestClients/MtApi5TestClient/ViewModel.cs b/TestClients/MtApi5TestClient/ViewModel.cs index 01180a6d..f4b553db 100755 --- a/TestClients/MtApi5TestClient/ViewModel.cs +++ b/TestClients/MtApi5TestClient/ViewModel.cs @@ -807,7 +807,7 @@ namespace MtApi5TestClient foreach (var rates in result) { TimeSeriesResults.Add( - $"time={rates.time}; open={rates.open}; high={rates.high}; low={rates.low}; close={rates.close}; tick_volume={rates.tick_volume}; spread={rates.spread}; real_volume={rates.tick_volume}"); + $"time={rates.time}; mt_time={rates.mt_time}; open={rates.open}; high={rates.high}; low={rates.low}; close={rates.close}; tick_volume={rates.tick_volume}; spread={rates.spread}; real_volume={rates.tick_volume}"); } });