MT4文件功能替换。 - 页 10 1...3456789101112 新评论 Ingvar Engelbrecht 2008.05.15 08:59 #91 文件替换 我想测试一个在策略测试器中 使用外部信号的EA,该线程指出,本地文件处理在策略测试器中不起作用。所以我试着使用这个主题中提供的dll。我想处理的输入是一个看起来像这样的文件。 2007-01-02;EURUSD;2.InstPipDown;;Yes 2007-01-02;USDJPY;1.InstPipUp;;Yes 2007-01-02;USDCHF;1.InstPipUp;;Yes 2007-01-03;EURUSD;2.InstPipDown;;Yes 2007-01-03;EURUSD;4.PipMax1Down;;Yes 2007-01-03;GBPUSD;4.PipMax1Down;;Yes 2007-01-04;USDJPY;8.PipRevBear;;Yes 2007-01-05;EURUSD;5.PipMax2Up;;Yes 2007-01-05;USDJPY;1.InstPipUp;;Yes 我确实自己创建了这个文件,所以我可以使用其他类型的分隔符。 我如何使用dll来获取一条 "记录"?我可以对各个字段进行解析。 我怎么知道我什么时候达到了EOF? 我已经尝试了一些变化,但我得到的结果不一致,有时是垃圾。像例子中那样写数据效果很好,但我想读数据。 Ingvar Engelbrecht 2008.05.15 16:51 #92 好吧,坚持不懈的规则!我发现了这个问题。 经过几个小时,我发现了这个问题。 文件处理程序拒绝打开我用其他程序创建的文件。打开返回-1。如果我使用演示程序创建的文件(mt4.log),并将我的内容复制到其中,打开就可以了。找不到原因。很奇怪 我使我的 "记录 "固定长度,并读取 "记录 "的长度加上2,以照顾到每条记录末尾的 "CRLF"。我得到了文件的长度,除以记录的长度,然后循环将所有的记录放入一个数组。 以下是代码。 int init() { string inArr[500]; int file; int filesize; int records; int i; file = gFileOpen("c:\mt4.log",READ)。 // Print(file)。 filesize = gFileSize(file); // Print(filesize); records = filesize/25。 // Print(records)。 for(i=1;i<=records;i++) { inArr = gFileRead(file,25); } gFileClose(file)。 Print(inArr[filesize-1]); //检查最后一条。 return(0); } MT4 Files Functions Replacement. Better NN EA development Read from file error! PriNova 2008.05.17 17:08 #93 带有文件输出的指标 你好,交易员和程序员。 我需要在一个新指标的代码上得到帮助。 该指标应该能够写入相关信息的文件,但它应该只在打开一个新的蜡烛后写入,而不是每一个刻度。 我想做的是,在每一个新的蜡烛上写下过去1000条的OHCL来训练一个PNN。 还有一些其他的信息,以了解一个蜡烛的收盘概率是多少。 请帮助我们。这将是一个伟大的项目,但如此简单的事情我却笨(或懒)得去做:-) 普里诺瓦 [删除] 2008.05.17 17:27 #94 datetime timeprev=0; before init() 和 if(timeprev==Time[0]) 返回(0)。 timeprev=Time[0]; 就在start()下面。 就这样了。 PriNova 2008.05.17 17:32 #95 很好,这是很快速的回复。 谢谢你 johnmcglaughlin 2008.07.20 07:19 #96 为什么移动功能 被从库中删除 CodersGuru。 我无法告诉你,你对我来说是多么有价值,你值得我从客户那里得到很多赞美,因为没有你,我就无法完成支持他们的工作。 你的教程中提到的移动功能没有实现,这是否有什么原因。 再次感谢您的服务 John McGlaughlin gorgoroth 2008.08.06 09:10 #97 gFileRead 你好。 在查看mtguru1.dll的源代码时,我发现gFileRead()函数不应该工作。我错了吗? gFileRead()使用一个局部变量来存储从文件中读取的字符串。当函数返回时,它返回一个指向该变量的指针,但这个指针可能是一个有效的指针,因为局部变量buffer超出了范围。 因此,从MQL4的EA来看,这样的指令应该会崩溃。 string buffer = gFileRead( handle, 50 )。 如果它能工作,那就很奇怪了...... P.S.: 我已经把这个问题贴在了错误的主题里,以前。https://www.mql5.com/en/forum/172885。 gorgoroth 2008.08.08 09:24 #98 Errata Corrige: .... 但这个指针可以是一个有效的指针 .... 但这个指针不 可能是一个有效的指针 [删除] 2008.10.10 15:52 #99 执行一个EXE文件 你好。 我想做一件简单的事情(我是这么想的)。我想从EA中简单地打开(启动)一个外部程序。(不在EA中) 所以,仅仅是为了测试的目的。假设我想在EA中发生某种情况时打开Microsoft word。 我以前也这样做过,但我找不到这个脚本,我花了两个小时在网上搜索。下次我将把代码保存在一个安全的地方。 Sixsense 2008.10.21 05:56 #100 有什么问题吗? 我得到这个错误 "2008.10.21 01:54:34 Fundamental Trader DailyFX_MQL4 v0.02: handle 2 does not exist in FileClose" 我应该怎么做? 1...3456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
文件替换
我想测试一个在策略测试器中 使用外部信号的EA,该线程指出,本地文件处理在策略测试器中不起作用。所以我试着使用这个主题中提供的dll。我想处理的输入是一个看起来像这样的文件。
2007-01-02;EURUSD;2.InstPipDown;;Yes
2007-01-02;USDJPY;1.InstPipUp;;Yes
2007-01-02;USDCHF;1.InstPipUp;;Yes
2007-01-03;EURUSD;2.InstPipDown;;Yes
2007-01-03;EURUSD;4.PipMax1Down;;Yes
2007-01-03;GBPUSD;4.PipMax1Down;;Yes
2007-01-04;USDJPY;8.PipRevBear;;Yes
2007-01-05;EURUSD;5.PipMax2Up;;Yes
2007-01-05;USDJPY;1.InstPipUp;;Yes
我确实自己创建了这个文件,所以我可以使用其他类型的分隔符。
我如何使用dll来获取一条 "记录"?我可以对各个字段进行解析。
我怎么知道我什么时候达到了EOF?
我已经尝试了一些变化,但我得到的结果不一致,有时是垃圾。像例子中那样写数据效果很好,但我想读数据。
好吧,坚持不懈的规则!我发现了这个问题。
经过几个小时,我发现了这个问题。
文件处理程序拒绝打开我用其他程序创建的文件。打开返回-1。如果我使用演示程序创建的文件(mt4.log),并将我的内容复制到其中,打开就可以了。找不到原因。很奇怪
我使我的 "记录 "固定长度,并读取 "记录 "的长度加上2,以照顾到每条记录末尾的 "CRLF"。我得到了文件的长度,除以记录的长度,然后循环将所有的记录放入一个数组。
以下是代码。
int init()
{
string inArr[500];
int file;
int filesize;
int records;
int i;
file = gFileOpen("c:\mt4.log",READ)。
// Print(file)。
filesize = gFileSize(file);
// Print(filesize);
records = filesize/25。
// Print(records)。
for(i=1;i<=records;i++)
{
inArr = gFileRead(file,25);
}
gFileClose(file)。
Print(inArr[filesize-1]); //检查最后一条。
return(0);
}
带有文件输出的指标
你好,交易员和程序员。
我需要在一个新指标的代码上得到帮助。
该指标应该能够写入相关信息的文件,但它应该只在打开一个新的蜡烛后写入,而不是每一个刻度。
我想做的是,在每一个新的蜡烛上写下过去1000条的OHCL来训练一个PNN。
还有一些其他的信息,以了解一个蜡烛的收盘概率是多少。
请帮助我们。这将是一个伟大的项目,但如此简单的事情我却笨(或懒)得去做:-)
普里诺瓦
datetime timeprev=0; before init()
和
if(timeprev==Time[0])
返回(0)。
timeprev=Time[0]; 就在start()下面。
就这样了。
很好,这是很快速的回复。
谢谢你
为什么移动功能 被从库中删除
CodersGuru。
我无法告诉你,你对我来说是多么有价值,你值得我从客户那里得到很多赞美,因为没有你,我就无法完成支持他们的工作。
你的教程中提到的移动功能没有实现,这是否有什么原因。
再次感谢您的服务
John McGlaughlin
gFileRead
你好。
在查看mtguru1.dll的源代码时,我发现gFileRead()函数不应该工作。我错了吗?
gFileRead()使用一个局部变量来存储从文件中读取的字符串。当函数返回时,它返回一个指向该变量的指针,但这个指针可能是一个有效的指针,因为局部变量buffer超出了范围。
因此,从MQL4的EA来看,这样的指令应该会崩溃。
string buffer = gFileRead( handle, 50 )。
如果它能工作,那就很奇怪了......
P.S.: 我已经把这个问题贴在了错误的主题里,以前。https://www.mql5.com/en/forum/172885。
Errata Corrige:
.... 但这个指针可以是一个有效的指针 ....
但这个指针不 可能是一个有效的指针
执行一个EXE文件
你好。
我想做一件简单的事情(我是这么想的)。我想从EA中简单地打开(启动)一个外部程序。(不在EA中)
所以,仅仅是为了测试的目的。假设我想在EA中发生某种情况时打开Microsoft word。
我以前也这样做过,但我找不到这个脚本,我花了两个小时在网上搜索。下次我将把代码保存在一个安全的地方。
有什么问题吗?
我得到这个错误 "2008.10.21 01:54:34 Fundamental Trader DailyFX_MQL4 v0.02: handle 2 does not exist in FileClose"
我应该怎么做?