本文主要是介绍用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));
}
这篇关于用MQL语言实现报价导出为JSON文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!