From cbff71f8d05f68a0c6e01b22a9496df158e01c9c Mon Sep 17 00:00:00 2001 From: Janderson FFerreira Date: Mon, 12 Mar 2018 11:17:12 -0300 Subject: [PATCH] - Correction of Test Client - Missing codes in mtapi5.mq5 --- MtApi5/Mt5Enums.cs | 144 +++++++++++----------- TestClients/MtApi5TestClient/ViewModel.cs | 22 ++-- mq5/MtApi5.mq5 | 83 +++++++++++++ 3 files changed, 166 insertions(+), 83 deletions(-) diff --git a/MtApi5/Mt5Enums.cs b/MtApi5/Mt5Enums.cs index 2225710a..edb532b9 100755 --- a/MtApi5/Mt5Enums.cs +++ b/MtApi5/Mt5Enums.cs @@ -38,83 +38,83 @@ namespace MtApi5 #region Charts Properties - public enum ENUM_CHART_PROPERTY_DOUBLE - { - CHART_SHIFT_SIZE = 3, - CHART_FIXED_POSITION = 41, - CHART_FIXED_MAX = 8, - CHART_FIXED_MIN = 9, - CHART_POINTS_PER_BAR = 11, - CHART_PRICE_MIN = 108, - CHART_PRICE_MAX = 109 + public enum ENUM_CHART_PROPERTY_DOUBLE + { + CHART_SHIFT_SIZE = 3, + CHART_FIXED_POSITION = 41, + CHART_FIXED_MAX = 8, + CHART_FIXED_MIN = 9, + CHART_POINTS_PER_BAR = 11, + CHART_PRICE_MIN = 108, + CHART_PRICE_MAX = 109 } - public enum ENUM_CHART_PROPERTY_INTEGER - { - CHART_SHOW = 46, - CHART_IS_OBJECT = 111, - CHART_BRING_TO_TOP = 35, - CHART_CONTEXT_MENU = 50, - CHART_CROSSHAIR_TOOL = 49, - CHART_MOUSE_SCROLL = 42, - CHART_EVENT_MOUSE_WHEEL = 48, - CHART_EVENT_MOUSE_MOVE = 40, - CHART_EVENT_OBJECT_CREATE = 38, - CHART_EVENT_OBJECT_DELETE = 39, - CHART_MODE = 0, - CHART_FOREGROUND = 1, - CHART_SHIFT = 2, - CHART_AUTOSCROLL = 4, - CHART_KEYBOARD_CONTROL = 47, - CHART_QUICK_NAVIGATION = 45, - CHART_SCALE = 5, - CHART_SCALEFIX = 6, - CHART_SCALEFIX_11 = 7, - CHART_SCALE_PT_PER_BAR = 10, - CHART_SHOW_OHLC = 12, - CHART_SHOW_BID_LINE = 13, - CHART_SHOW_ASK_LINE = 14, - CHART_SHOW_LAST_LINE = 15, - CHART_SHOW_PERIOD_SEP = 16, - CHART_SHOW_GRID = 17, - CHART_SHOW_VOLUMES = 18, - CHART_SHOW_OBJECT_DESCR = 19, - CHART_VISIBLE_BARS = 100, - CHART_WINDOWS_TOTAL = 101, - CHART_WINDOW_IS_VISIBLE = 102, - CHART_WINDOW_HANDLE = 103, - CHART_WINDOW_YDISTANCE = 110, - CHART_FIRST_VISIBLE_BAR = 104, - CHART_WIDTH_IN_BARS = 105, - CHART_WIDTH_IN_PIXELS = 106, - CHART_HEIGHT_IN_PIXELS = 107, - CHART_COLOR_BACKGROUND = 21, - CHART_COLOR_FOREGROUND = 22, - CHART_COLOR_GRID = 23, - CHART_COLOR_VOLUME = 24, - CHART_COLOR_CHART_UP = 25, - CHART_COLOR_CHART_DOWN = 26, - CHART_COLOR_CHART_LINE = 27, - CHART_COLOR_CANDLE_BULL = 28, - CHART_COLOR_CANDLE_BEAR = 29, - CHART_COLOR_BID = 30, - CHART_COLOR_ASK = 31, - CHART_COLOR_LAST = 32, - CHART_COLOR_STOP_LEVEL = 33, - CHART_SHOW_TRADE_LEVELS = 34, - CHART_DRAG_TRADE_LEVELS = 43, - CHART_SHOW_DATE_SCALE = 36, - CHART_SHOW_PRICE_SCALE = 37, - CHART_SHOW_ONE_CLICK = 44, + public enum ENUM_CHART_PROPERTY_INTEGER + { + CHART_SHOW = 46, + CHART_IS_OBJECT = 111, + CHART_BRING_TO_TOP = 35, + CHART_CONTEXT_MENU = 50, + CHART_CROSSHAIR_TOOL = 49, + CHART_MOUSE_SCROLL = 42, + CHART_EVENT_MOUSE_WHEEL = 48, + CHART_EVENT_MOUSE_MOVE = 40, + CHART_EVENT_OBJECT_CREATE = 38, + CHART_EVENT_OBJECT_DELETE = 39, + CHART_MODE = 0, + CHART_FOREGROUND = 1, + CHART_SHIFT = 2, + CHART_AUTOSCROLL = 4, + CHART_KEYBOARD_CONTROL = 47, + CHART_QUICK_NAVIGATION = 45, + CHART_SCALE = 5, + CHART_SCALEFIX = 6, + CHART_SCALEFIX_11 = 7, + CHART_SCALE_PT_PER_BAR = 10, + CHART_SHOW_OHLC = 12, + CHART_SHOW_BID_LINE = 13, + CHART_SHOW_ASK_LINE = 14, + CHART_SHOW_LAST_LINE = 15, + CHART_SHOW_PERIOD_SEP = 16, + CHART_SHOW_GRID = 17, + CHART_SHOW_VOLUMES = 18, + CHART_SHOW_OBJECT_DESCR = 19, + CHART_VISIBLE_BARS = 100, + CHART_WINDOWS_TOTAL = 101, + CHART_WINDOW_IS_VISIBLE = 102, + CHART_WINDOW_HANDLE = 103, + CHART_WINDOW_YDISTANCE = 110, + CHART_FIRST_VISIBLE_BAR = 104, + CHART_WIDTH_IN_BARS = 105, + CHART_WIDTH_IN_PIXELS = 106, + CHART_HEIGHT_IN_PIXELS = 107, + CHART_COLOR_BACKGROUND = 21, + CHART_COLOR_FOREGROUND = 22, + CHART_COLOR_GRID = 23, + CHART_COLOR_VOLUME = 24, + CHART_COLOR_CHART_UP = 25, + CHART_COLOR_CHART_DOWN = 26, + CHART_COLOR_CHART_LINE = 27, + CHART_COLOR_CANDLE_BULL = 28, + CHART_COLOR_CANDLE_BEAR = 29, + CHART_COLOR_BID = 30, + CHART_COLOR_ASK = 31, + CHART_COLOR_LAST = 32, + CHART_COLOR_STOP_LEVEL = 33, + CHART_SHOW_TRADE_LEVELS = 34, + CHART_DRAG_TRADE_LEVELS = 43, + CHART_SHOW_DATE_SCALE = 36, + CHART_SHOW_PRICE_SCALE = 37, + CHART_SHOW_ONE_CLICK = 44, CHART_IS_MAXIMIZED = 115, - CHART_IS_MINIMIZED = 116 + CHART_IS_MINIMIZED = 116 } - public enum ENUM_CHART_PROPERTY_STRING - { - CHART_COMMENT = 20, - CHART_EXPERT_NAME = 113, - CHART_SCRIPT_NAME = 114 + public enum ENUM_CHART_PROPERTY_STRING + { + CHART_COMMENT = 20, + CHART_EXPERT_NAME = 113, + CHART_SCRIPT_NAME = 114 } diff --git a/TestClients/MtApi5TestClient/ViewModel.cs b/TestClients/MtApi5TestClient/ViewModel.cs index 4b37691b..fe2c3d25 100755 --- a/TestClients/MtApi5TestClient/ViewModel.cs +++ b/TestClients/MtApi5TestClient/ViewModel.cs @@ -8,6 +8,7 @@ using System.Collections.ObjectModel; using System.Globalization; using System.Threading.Tasks; using System.IO; +using Microsoft.Win32; namespace MtApi5TestClient { @@ -114,17 +115,16 @@ namespace MtApi5TestClient var MT5Path = _mtApiClient.TerminalInfoString(ENUM_TERMINAL_INFO_STRING.TERMINAL_PATH); - var TemplateName = "\\Files\\aa.tpl"; - var TemplateStringContent = File.ReadAllLines("d:\\template_name.tpl"); - - - File.WriteAllLines($"{MT5Path}\\MQL5{TemplateName}", TemplateStringContent); - - - AddLog($"path: {MT5Path}"); - _mtApiClient.ChartApplyTemplate(ChartId, TemplateName); - //var Applytemplate = _mtApiClient.ChartApplyTemplate(ChartId, "/") - + OpenFileDialog openFileDialog = new OpenFileDialog(); + openFileDialog.Filter = "Template File (*.tpl)|*.tpl|All files (*.*)|*.*"; + if (openFileDialog.ShowDialog() == true) + { + var TemplateName = "\\Files\\mt5api_copy.tpl"; + var TemplateStringContent = File.ReadAllLines(openFileDialog.FileName); + File.WriteAllLines($"{MT5Path}\\MQL5{TemplateName}", TemplateStringContent); + AddLog($"path: {MT5Path}"); + _mtApiClient.ChartApplyTemplate(ChartId, TemplateName); + } return ChartId; }); diff --git a/mq5/MtApi5.mq5 b/mq5/MtApi5.mq5 index 462c8de1..84a7d3c2 100755 --- a/mq5/MtApi5.mq5 +++ b/mq5/MtApi5.mq5 @@ -709,11 +709,27 @@ int executeCommand() case 241: //ChartOpen Execute_ChartOpen(); break; + + case 242: //ChartFirst + Execute_ChartFirst(); + break; + + case 243: //ChartFirst + Execute_ChartNext(); + break; + + case 245: //ChartFirst + Execute_ChartSymbol(); + break; case 236: //ChartApplyTemplate Execute_ChartApplyTemplate(); break; + case 252: //ChartGetString + Execute_ChartGetString(); + break; + case 153: //TerminalInfoString Execute_TerminalInfoString(); break; @@ -6022,6 +6038,49 @@ void Execute_ChartOpen() } } +void Execute_ChartFirst() +{ + if (!sendLongResponse(ExpertHandle, ChartFirst(), _response_error)) + { + PrintResponseError("ChartFirst", _response_error); + } +} + +void Execute_ChartNext() +{ + long ChartId; + + if (!getLongValue(ExpertHandle, 0, ChartId, _error)) + { + PrintParamError("ChartFirst", "ChartId", _error); + sendErrorResponse(ExpertHandle, -1, _error, _response_error); + return; + } + + if (!sendLongResponse(ExpertHandle, ChartNext(ChartId), _response_error)) + { + PrintResponseError("ChartFirst", _response_error); + } +} + +void Execute_ChartSymbol() +{ + long ChartId; + + if (!getLongValue(ExpertHandle, 0, ChartId, _error)) + { + PrintParamError("ChartSymbol", "ChartId", _error); + sendErrorResponse(ExpertHandle, -1, _error, _response_error); + return; + } + + if (!sendStringResponse(ExpertHandle, ChartSymbol(ChartId), _response_error)) + { + PrintResponseError("ChartSymbol", _response_error); + } +} + + void Execute_ChartApplyTemplate() { long ChartId; @@ -6051,6 +6110,30 @@ void Execute_ChartApplyTemplate() ChartRedraw(ChartId); } +void Execute_ChartGetString() +{ + long ChartId; + int PropId; + + if (!getLongValue(ExpertHandle, 0, ChartId, _error)) + { + PrintParamError("ChartGetString", "ChartId", _error); + sendErrorResponse(ExpertHandle, -1, _error, _response_error); + return; + } + if (!getIntValue(ExpertHandle, 1, PropId, _error)) + { + PrintParamError("ChartGetString", "PropId", _error); + sendErrorResponse(ExpertHandle, -1, _error, _response_error); + return; + } + + if (!sendStringResponse(ExpertHandle, ChartGetString(ChartId, (ENUM_CHART_PROPERTY_STRING)PropId), _response_error)) + { + PrintResponseError("ChartGetString", _response_error); + } + ChartRedraw(ChartId); +} void Execute_TerminalInfoString() {