diff --git a/MtApi5/MtApi5Client.cs b/MtApi5/MtApi5Client.cs index b1770ade..279fbef4 100755 --- a/MtApi5/MtApi5Client.cs +++ b/MtApi5/MtApi5Client.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using MTApiService; using System.Collections; +using System.ServiceModel; namespace MtApi5 { @@ -617,7 +618,11 @@ namespace MtApi5 { var commandParameters = new ArrayList { indicator_handle, buffer_num, start_pos, count }; buffer = SendCommand(Mt5CommandType.CopyBuffer, commandParameters); +<<<<<<< Updated upstream return buffer?.Length ?? 0; +======= + return buffer != null ? buffer.Length : 0; +>>>>>>> Stashed changes } /// @@ -632,7 +637,11 @@ namespace MtApi5 { var commandParameters = new ArrayList { indicator_handle, buffer_num, Mt5TimeConverter.ConvertToMtTime(start_time), count }; buffer = SendCommand(Mt5CommandType.CopyBuffer1, commandParameters); +<<<<<<< Updated upstream return buffer?.Length ?? 0; +======= + return buffer != null ? buffer.Length : 0; +>>>>>>> Stashed changes } /// @@ -647,7 +656,11 @@ namespace MtApi5 { var commandParameters = new ArrayList { indicator_handle, buffer_num, Mt5TimeConverter.ConvertToMtTime(start_time), Mt5TimeConverter.ConvertToMtTime(stop_time) }; buffer = SendCommand(Mt5CommandType.CopyBuffer1, commandParameters); +<<<<<<< Updated upstream return buffer?.Length ?? 0; +======= + return buffer != null ? buffer.Length : 0; +>>>>>>> Stashed changes } /// @@ -1462,7 +1475,15 @@ namespace MtApi5 private T SendCommand(Mt5CommandType commandType, ArrayList commandParameters) { - var response = _client.SendCommand((int)commandType, commandParameters); + MtResponse response; + try + { + response = _client.SendCommand((int)commandType, commandParameters); + } + catch (CommunicationException ex) + { + throw new Exception(ex.Message, ex); + } if (response is MtResponseDouble) return (T)Convert.ChangeType(((MtResponseDouble)response).Value, typeof(T)); diff --git a/mq5/MtApi5.ex5 b/mq5/MtApi5.ex5 index 7c9326fd..26b1a960 100755 Binary files a/mq5/MtApi5.ex5 and b/mq5/MtApi5.ex5 differ diff --git a/mq5/MtApi5.mq5 b/mq5/MtApi5.mq5 index 3ec3394b..79c4c342 100755 --- a/mq5/MtApi5.mq5 +++ b/mq5/MtApi5.mq5 @@ -143,21 +143,24 @@ int init() PrintFormat("Expert Handle = %d", ExpertHandle); //--- Backtesting mode - if (IsTesting()) - { - Print("Waiting on remote client..."); - //wait for command (BacktestingReady) from remote side to be ready for work - while(!IsRemoteReadyForTesting) - { - executeCommand(); - - //This section uses a while loop to simulate Sleep() during Backtest. - unsigned int viSleepUntilTick = GetTickCount() + 100; //100 milliseconds - while(GetTickCount() < viSleepUntilTick) - { - //Do absolutely nothing. Just loop until the desired tick is reached. - } - } + if (false) + { + if (IsTesting()) + { + Print("Waiting on remote client..."); + //wait for command (BacktestingReady) from remote side to be ready for work + while(!IsRemoteReadyForTesting) + { + executeCommand(); + + //This section uses a while loop to simulate Sleep() during Backtest. + unsigned int viSleepUntilTick = GetTickCount() + 100; //100 milliseconds + while(GetTickCount() < viSleepUntilTick) + { + //Do absolutely nothing. Just loop until the desired tick is reached. + } + } + } } //---