From 4263f319c4b24d3c98c5295cdc6a919d17748aa0 Mon Sep 17 00:00:00 2001 From: Vyacheslav Demidyuk Date: Fri, 14 Feb 2025 21:40:39 +0200 Subject: [PATCH] PyMtApi5: implemented function ChartSaveTemplate" --- PyMtApi5/client.py | 9 +++++++++ PyMtApi5/mt5apiclient.py | 13 +++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/PyMtApi5/client.py b/PyMtApi5/client.py index 39df98cc..30937c2c 100644 --- a/PyMtApi5/client.py +++ b/PyMtApi5/client.py @@ -60,6 +60,7 @@ class Mt5ApiApp: "ChartId": self.process_chart_id, "ChartRedraw": self.process_chart_redraw, "ChartApplyTemplate": self.process_chart_apply_template, + "ChartSaveTemplate": self.process_chart_save_template, } def on_disconnect(self, error_msg=None): @@ -441,6 +442,14 @@ class Mt5ApiApp: result = mtapi.chart_apply_template(int(pieces[0]), pieces[1]) print(f"> ChartApplyTemplate: response = {result}") + def process_chart_save_template(self, mtapi, parameters): + pieces = parameters.split(" ", 1) + if len(pieces) != 2 or not pieces[0] or not pieces[1]: + print(f"! Invalid parameters for command ChartSaveTemplate: {parameters}") + return + result = mtapi.chart_save_template(int(pieces[0]), pieces[1]) + print(f"> ChartSaveTemplate: response = {result}") + def mtapi_command_thread(self, mtapi): while mtapi.is_connected(): filename = "client.cmd" diff --git a/PyMtApi5/mt5apiclient.py b/PyMtApi5/mt5apiclient.py index 581feb79..da5e044d 100644 --- a/PyMtApi5/mt5apiclient.py +++ b/PyMtApi5/mt5apiclient.py @@ -453,22 +453,27 @@ class Mt5ApiClient: return self.__send_command(self.__get_default_expert(), Mt5CommandType.MarketBookGet, cmd_params) # ChartId - def chart_id(self, expert_handle = 0): + def chart_id(self, expert_handle=0): if expert_handle == 0: return self.__send_command(self.__get_default_expert(), Mt5CommandType.ChartId) else: return self.__send_command(expert_handle, Mt5CommandType.ChartId) # ChartRedraw - def chart_redraw(self, chart_id = 0): + def chart_redraw(self, chart_id=0): cmd_params = {"ChartId": chart_id} - self.__send_command(self.__get_default_expert(), Mt5CommandType.ChartRedraw, cmd_params) + self.__send_command(self.__get_default_expert(), Mt5CommandType.ChartRedraw, cmd_params) # ChartApplyTemplate def chart_apply_template(self, chart_id, filename: str): - cmd_params = { "ChartId": chart_id, "TemplateFileName": filename}; + cmd_params = {"ChartId": chart_id, "TemplateFileName": filename} return self.__send_command(self.__get_default_expert(), Mt5CommandType.ChartApplyTemplate, cmd_params) + # ChartSaveTemplate + def chart_save_template(self, chart_id, filename: str): + cmd_params = {"ChartId": chart_id, "TemplateFileName": filename} + return self.__send_command(self.__get_default_expert(), Mt5CommandType.ChartSaveTemplate, cmd_params) + # Private methods def __event_thread_func(self):