用MQL语言实现报价导出为JSON文件

文章目录

    • 一、MQL语言导出报价为JSON文件意义
    • 二、MQL语言导出报价为JSON的代码实现
      • 设置输入变量
      • 加载历史数据
      • 报价写入JSON文件
      • 添加数据到json文件
      • 脚本主程序

一、MQL语言导出报价为JSON文件意义

  • 数据存储:将报价导出为JSON文件可以将数据以结构化的方式存储在文件中。JSON格式具有良好的可读性和易于解析的特点,可以方便地进行数据的存储和检索。

  • 数据传输:JSON文件可以作为一种常见的数据交换格式,用于在不同系统之间传输报价数据。由于JSON格式的普及性和通用性,它可以被广泛支持和解析,使得数据在不同系统之间的传输更加便捷。

  • 数据处理:导出为JSON文件后,可以使用各种编程语言和工具对报价数据进行处理和分析。JSON格式的数据可以轻松地转换为对象或字典结构,使得数据处理变得更加灵活和高效。

  • 数据可视化:通过将报价导出为JSON文件,可以方便地将数据用于可视化展示。各种数据可视化工具和库都支持JSON格式的数据输入,可以将报价数据转化为图表、图形等形式,帮助用户更好地理解和分析数据。

二、MQL语言导出报价为JSON的代码实现

设置输入变量

input string dataDiractoryName = "Data";
input datetime fromDate = D'01.01.2022';
input datetime toDate = D'30.12.2022';
input string dataFilename = "datasource.json";

加载历史数据

// 加载历史数据
bool LoadHistoryData(MqlRates& historyData[])
{bool copyRatesStatus = CopyRates(Symbol(), PERIOD_D1, fromDate, toDate, historyData);if (copyRatesStatus == true) {Alert("Data successfully retrieved");return true;}else{Alert("Unable to retrieve data");return false;}
}

报价写入JSON文件

//  报价写入JSON文件
uint WriteToJsonFile(int& file_handler, MqlRates& historyData[]) 
{uint writeCounter = 0;string jsonData = "";jsonData += "{ \"Time Series FX(Daily)\": \r\n";jsonData += "{\r\n";for(int counter = 0; counter < ArraySize(historyData); counter++){MqlDateTime dateStruct;TimeToStruct(historyData[counter].time, dateStruct);string properDate = dateStruct.year + "-" + dateStruct.mon + "-" + dateStruct.day;jsonData += "\"" + properDate + "\": {\r\n";jsonData += "     \"Symbol\": \"" + Symbol() + "\",\r\n";jsonData += "     \"1. open\": \"" + (string)historyData[counter].open + "\",\r\n";jsonData += "     \"2. high\": \"" + (string)historyData[counter].high + "\",\r\n";jsonData += "     \"3. low\": \"" + (string)historyData[counter].low + "\",\r\n";jsonData += "     \"4. close\": \"" + (string)historyData[counter].close + "\",\r\n";jsonData += "  },\r\n"; }jsonData += "}\n}\r\n";writeCounter = FileWriteString(file_handler, jsonData);return writeCounter;
}

添加数据到json文件

// 添加数据到json文件
void AddDataToJsonFile(MqlRates& historyData[])
{int file_handler = FileOpen(dataDiractoryName + "//" + dataFilename, FILE_READ|FILE_WRITE|FILE_BIN|FILE_COMMON);uint writeStatus = 0;if (file_handler != INVALID_HANDLE) {//Alert("File opened successfully");writeStatus = WriteToJsonFile(file_handler, historyData);FileClose(file_handler);}else{Alert("File failed to open!");}if (writeStatus != 0){Alert("Added data to data file successfully!");}else{Alert("Data was not added to a file!");    }
}

脚本主程序

void OnStart()
{MqlRates historyData[];if (LoadHistoryData(historyData)){AddDataToJsonFile(historyData);}//Alert("Total Elements is : ", ArraySize(historyData));
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/690354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript(JS)与Java的区别与联系

区别&#xff1a; 1.JS是前端语言&#xff0c;Java是后端语言 2.JS是在浏览器上运行的&#xff0c;而Java是要在Java虚拟机&#xff08;JVM&#xff09;上运行 3.JS是弱类型语言&#xff08;不需要声明变量类型&#xff09;&#xff0c;而Java是强类型语言&#xff08;需要声…

sqlserver 事务

下面是 SQL Server 中使用事务的示例 SQL 代码&#xff1a; BEGIN TRANSACTION;UPDATE 表名 SET 列名 新值 WHERE 条件;INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1, 值2, 值3);DELETE FROM 表名 WHERE 条件;COMMIT TRANSACTION;在上面的示例中&#xff0c;通过 BEGIN TRA…

[ linux网络 ] 网关服务器搭建,综合应用SNAT、DNAT转换,dhcp分配、dns分离解析,nfs网络共享以及ssh免密登录

实验准备工作&#xff1a; 网关服务器安装&#xff1a;dhcp bind &#xff08;yum install -y dhcp bind bind-utlis&#xff09; server1安装&#xff1a;httpd (yum install -y httpd) 没有网络就搭建本地yum仓库或者配置网卡使其能够上网。 ( 1&#xff09;网关服务器…

不同域名的页面进行通信,通过iframe和postMessge进行消息通信

不同域名的页面&#xff0c;通过iframe和postMessge进行消息通信 前言 浏览器不同标签页之间进行消息通信&#xff0c;尤其是当这些标签页位于不同域名时&#xff0c;通常需要使用一些特定的技术或协议来实现。以下是几种可能的方法&#xff1a; WebSocket&#xff1a;WebSo…

源聚达科技:抖音店铺2024年卖什么好

随着时代的变迁和科技的进步&#xff0c;消费者的购物习惯与偏好也在不断演变。展望2024年&#xff0c;抖音作为新兴的电商平台&#xff0c;其店铺销售策略需紧跟潮流&#xff0c;才能在激烈的市场竞争中脱颖而出。那么&#xff0c;哪些产品将成为抖音店铺的新宠呢? 首当其冲&…

STM32CubeMax(使用7步)新建工程

现在有时间学习一下STM32用CubeMX新建一个工程的步骤&#xff0c;特此记录一下&#xff1a; 第一步打开STM32CubeMax 第二步搜索芯片型号&#xff1a; 第三步配置时钟&#xff1a; 第四步点选配置时钟源&#xff1a; 第五步填写工程相关的名称路径信息&#xff1a; 第六步选择…

基于SpringBoot3从零配置SpringDoc

基于SpringBoot3从零配置SpringDoc 一、SpringFox二、SpringDoc三、Open API 规范四、SpringBoot3配置Knife4j1.官方参考文档2.添加依赖3.添加配置项4.设置文档首页5.编写控制器6.文档展示 一、SpringFox github SpringFox 已经停止更新了。SpringFox 对 SpringBoot3.0 不适配…

微信小程序开发之Vant组件库

文章目录 环境Vant介绍示例 微信小程序的npm支持安装npm包构建npm 在微信小程序开发中使用Vant准备安装和配置一&#xff1a;安装二&#xff1a;修改app.json三&#xff1a;修改project.config.json四&#xff1a;构建npm包 使用Button组件Calendar组件 参考 环境 Windows 11 …

【开源】基于JAVA+Vue+SpringBoot的就医保险管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 科室档案模块2.2 医生档案模块2.3 预约挂号模块2.4 我的挂号模块 三、系统展示四、核心代码4.1 用户查询全部医生4.2 新增医生4.3 查询科室4.4 新增号源4.5 预约号源 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVue…

5G网络eMBB、uRLLC、mMTC

ITU&#xff08;国际电信联盟&#xff09;于2015年9月正式定义了5G的三大应用场景&#xff1a;eMBB&#xff08;增强型移动宽带&#xff09;、uRLLC&#xff08;低时延高可靠通信&#xff09;、mMTC&#xff08;海量物联网通信&#xff09;。 eMBB是4G MBB&#xff08;移动宽带…

【武器工具篇】

Web安全 信息收集 【搜索引擎】 必应&#xff1a;必应 360搜索&#xff1a;360搜索&#xff0c;SO靠谱 俄罗斯搜索引擎&#xff1a;https://yandex.com/ 【子域名收集】 Virus Total&#xff1a;VirusTotal OneForAll&#xff1a;GitCode - 开发者的代码家园 FOFA&…

把Llama2封装为API服务并做一个互动网页

最近按照官方例子&#xff0c;把Llama2跑起来了测试通了&#xff0c;但是想封装成api服务&#xff0c;耗费了一些些力气 参考&#xff1a;https://github.com/facebookresearch/llama/pull/147/files 1. 准备的前提如下 按照官方如下命令&#xff0c;可以运行成功 torchrun -…

【QT+QGIS跨平台编译】之四十二:【QWT+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、QWT介绍二、QWT下载三、文件分析四、pro文件五、编译实践5.1 Windows下编译4.2 Linux下编译5.3 MacOS下编译一、QWT介绍 QWT是一个基于Qt框架的开源C++库,用于创建交互式的图形用户界面。它提供了丰富的绘图和交互功能,可以用于快速开发图形化应用程序。 QWT包…

程序员怎么利用chatgpt提高效率

在当今这个数字化时代&#xff0c;AI 技术以各种形式融入到我们的生活和工作中&#xff0c;对于程序员而言&#xff0c;AI 可以成为他们的得力助手。特别是 OpenAI 的 ChatGPT&#xff0c;其深度学习模型在编程领域具有很大潜力。 首先&#xff0c;我们介绍一下 GitHub Copilo…

【Larry】英语学习笔记语法篇——非谓语动词和从句是一回事

目录 非谓语动词和从句是一回事 不定式&#xff1a;名词/形容词/副词 1、不定式 名词属性的不定式&#xff1a;作为主语、表语、宾语 形容词属性的不定式&#xff1a;作后置定语 副词属性的不定式&#xff1a;作状语 副词属性的不定式&#xff1a;作插入语 不定式的逻辑…

【CSS】display:flex和display: inline-flex区别

flex&#xff1a;将对象作为弹性伸缩盒显示 inline-flex&#xff1a;将对象作为内联块级弹性伸缩盒显示 DOM结构 <div class"main"><div></div><div></div><div></div><div></div></div>flex .main{…

记录 | pytorch计算ap的方法

假设当前经过标签数据与预测数据的加载&#xff0c;我们得到了下面两个变量&#xff1a; det_boxes&#xff1a;包含全部图像中所有类别的预测框&#xff0c;其中一个边框包含了[left, top, right, bottom, score, NameofImage]gt_boxes&#xff1a;包含了全部图像中所有类别的…

聚合支付备案机构如何有效应对自律监督现场检查

孟凡富 在2023年第四季度&#xff0c;部分已备案的聚合支付机构收到了中国支付清算协会的《中国支付清算协会自律检查通知书》&#xff0c;标志着对其进行的现场检查工作正式启动。此次检查的时间范围涵盖了机构从2022年9月1日至2023年8月31日的运营情况&#xff0c;内容广泛&…

Uni-App《》

1. 什么是 UniApp&#xff1f;它有什么特点&#xff1f; UniApp 是一个基于 Vue.js 的跨平台应用开发框架&#xff0c;可以使用 Vue.js 的开发语法编写一次代码&#xff0c;然后通过编译生成可以在多个平台&#xff08;包括iOS、Android、H5 等&#xff09;上运行的应用。UniAp…

HTML世界核心

目录 一、基本文档(Basic Documentation) 二、基本标签(Basic Tags) 三、文本格式化(Formatting) 四、链接(Links) 五、图片(Images) 六、样式/区块(Styles/Sections) 七、无序列表(Disorder List) 八、有序列表(Sequence List) 九、定义列表(Definin…