mql4 - 为什么 SymbolName() 什么都不返回?
问题描述
在一个旨在遍历每个可用符号并记录可用信息的脚本中:
int i, j, file_handle;
string InpDirectoryName, InpFileName, Textwrite, mySymbol;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
int MIIds[29]; // 0-28 market information type IDs
int ST;
MIIds[0] = 1;
MIIds[1] = 2;
MIIds[2] = 5;
for(i=3;i<=28; i++)
MIIds[i] = i+6;
ST = SymbolsTotal(false);
InpDirectoryName = "";
InpFileName = "Test.csv";
Textwrite = "";
file_handle=FileOpen(InpDirectoryName+InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
if(file_handle!=INVALID_HANDLE)
{
for(i=1;i<=ST; i++)
Print(i);
到目前为止,一切顺利,我得到了一个打印符号列表位置的列表。但是,在尝试调用相应的 SymbolName() 时,
mySymbol = SymbolName(i, false);
下一行没有进一步的打印输出:
Print(mySymbol);
输出如下:
0 12:29:56.630 Script test EURUSD,H4: loaded successfully
0 12:29:56.667 test EURUSD,H4: initialized
0 12:29:56.669 test EURUSD,H4: 1
...
0 12:29:56.670 test EURUSD,H4: 68
0 12:29:56.670 test EURUSD,H4:
0 12:29:56.670 test EURUSD,H4: uninit reason 0
0 12:29:56.676 Script test EURUSD,H4: removed
如您所见,没有错误代码,在未初始化之前只有一行空输出......为了完整起见,这是代码的其余部分,尽管目前没有问题:
SymbolSelect(mySymbol,true);
Textwrite = mySymbol;
for(j=0;i<=28; j++)
Textwrite = Textwrite + "," + MarketInfo(mySymbol,j);
FileWrite(file_handle,Textwrite);
FileClose(file_handle);
}
else Print("Operation FileOpen failed, error ",GetLastError());
}
感激地收到任何想法
解决方案
只是一个想法,看看:
https://docs.mql4.com/files/filereadstring
看起来您打开了文件,但是您必须使用命令FileReadString
才能Symbolname
从 CSV 文件中提取文件。当然,Symbolname
必须在 CSV 中。
推荐阅读
- python - 在 Python 中并行打开多个 Websocket
- c# - 有没有办法在 .NET Core 3.1 Windows Forms 应用程序中获取图表和报告?
- kotlin - Kotlin 惯用的方法来检查条件并在失败时执行某些操作
- docker - 无法拉取图像拉取访问被拒绝,存储库不存在或可能需要“docker login”:
- android - Android在使用Activity Result API时从父Activity完成子Activity
- python - 为什么我的按钮不在 GUI 中显示(Python、TK)
- javascript - Javascript checkbox.classList.add("flat","pull-left"); 未在 DataTable 中显示 css 装饰
- python - ImportError:无法从部分初始化的模块“faker”导入名称“faker”(很可能是由于循环导入)
- kentico - Kentico 12 MVC - 在小部件内添加表单选择器
- gradle - 如何查找/浏览 gradle 插件的 Gradle 模块元数据?