[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 291 1...284285286287288289290291292293294295296297298...1145 新评论 Mykola Demko 2009.11.09 21:45 #2901 alsu >> : 你混淆了 "库"(使用#import从其中提取函数)和 "包含头文件"(#include)的概念。 库位于library文件夹中,其来源的扩展名是*.mq4,如指标和专家顾问。 它们被编译成*.ex4文件(然后从中导入准备好的功能到其他程序中,像这样 为了正确地编译库,作为一项规则,你应该首先编写#property库指令。 Include头文件用于将现成的代码片断包含在各种程序中。 它们存储在includes文件夹中,扩展名为*.mqh,并使用#include <...>指令被包含在程序的文本中(即纳入文本);它们不必单独编译,因为它们是与主程序一起编译的。 顺便说一下,早些时候库是由带有#property library的模板生成的,现在不是了。有谁知道为什么他们改变了模板或者只是忘记了包含? PS如果不是阿尔苏,我不会明白提问者想知道什么,我已经老了。 Alexey Subbotin 2009.11.09 22:12 #2902 Urain >> : 顺便说一下,以前库是用带有#属性库的模板生成的,但现在不是了,谁知道他们为什么改变了模板或者只是忘记了包含? 如果我没有阿尔苏,我就不明白他想知道什么。 你可以手动调整模板:) Mykola Demko 2009.11.09 22:20 #2903 alsu >> : 你可以手动调整模板:) 是的,是的,我知道,但在我的时间里,我杀了2天才找到这个错误,而且在新建立的不同模板中,这是一个大问题。 Виктор 2009.11.09 22:37 #2904 Urain >> : >> ...如果不是阿尔苏,我不知道提问者想知道什么,我已经老了。 有经验的老前辈们,看看 "提问者" 的库的代码,给我解释一下作者写这个库的意思? [删除] 2009.11.09 23:26 #2905 对不起。 已经写了很多,但我仍然不明白我问题的答案。我将再次尝试解释我不能做什么。 假设我做了一个EA,在其中插入了#include<...>指令,然后用一段代码做了一个包含头文件。 我已经编译了专家顾问,并将其纳入交易。 一切正常。根据谢尔盖-科瓦廖夫的说法。 "......另一件可以补充的事情是,ex4文件是自给自足的--为了让它工作,,不需要包括用户的函数源代码。 ex4文件可以被复制,与其他交易者共享并在那里使用。 "无论其技术如何,它都是完整的。 我把我的EA复制并转移到另一台电脑上,给另一个交易员。之后,专家顾问不想工作,并写道,没有我所指的#include<...>函数,也就是说,它没有看到include头文件,无法编译。 下面是一个专家顾问和包含头文件的例子。看看问题上的错误到底是什么。 //+------------------------------------------------------------------+ //| Kibliot.mq4| //| Copyright © 2009, MetaQuotes Software Corp. //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright"Copyright © 2009, MetaQuotes Software Corp. #属性链接 "http://www.metaquotes.net" #include <PointZigZag.mqh>. //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ int start() {PointZigZag(); 评论("Prod.-y21 = ",y21," ", "Pok.-x21 = ",x21)。 return(0); } //+------------------------------------------------------------------+ zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz //+------------------------------------------------------------------+ //| PointZigZag.mqh| //| Copyright © 2009, MetaQuotes Software Corp. //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, MetaQuotes Software Corp. #属性链接 "http://www.metaquotes.net" Extern int intDepth = 12; //------- 变量ZigZag Extern intNextDeviation = 5; //------- 变量ZigZag。 Extern intBackstep = 3; //------- 变量ZigZag Extern inttern ShiftBars = 2; //------- 变量ZigZag //------- 变量ZigZag ------------------------------------------ 双重y3, y2, y1, zz;// int x3, x2, x1, sh;// 双倍x31, x21, x11; // ZigZag拐点 double y31, y21, y11; // ZigZag拐点 双倍时间ZZ,时间OO。 //------------------------------------------------------------------------------ double PointZigZag() {y3=0;y2=0;y1=0。 sh=ShiftBars。 while (y3==0) {zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh)。 如果(zz!=0 && zz!=EMPTY_VALUE) {if (y1==0) { x1=sh; y1=zz; } else if (y2==0) { x2=sh; y2=zz; } else if (y3==0) { x3=sh; y3=zz; }}sh++; } 如果(High[x1]>High[x2])。 {x11=高[x1];x21=低[x2];x31=高[x3]。 y11=0;y21=0;y31=0;TimeZZ=Time[x2]; 否则 {y11=Low[x1]; y21=High[x2]; y31=Low[x3]; x11=0;x21=0;x31=0;TimeZZ=Time[x2];} } //+------------------------------------------------------------------+ [WARNING CLOSED!] Any newbie 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 最低和最高函数返回什么 Alexey Subbotin 2009.11.09 23:30 #2906 请修正编译器以不变应万变的形式给出的错误行 Mykola Demko 2009.11.09 23:41 #2907 gvi2504 >> : 对不起。 已经写了很多,但我仍然不明白我问题的答案。我将再次尝试解释我不能做什么。 假设我做了一个EA,在其中插入了#include<...>指令,然后用一段代码做了一个包含头文件。 我已经编译了专家顾问,并将其纳入交易。 一切都在运作。根据谢尔盖-科瓦廖夫的说法。 "......我还可以补充说,ex4文件是自给自足的--为了让它工作,,不需要包括用户函数的源代码。 ex4文件可以被复制,与其他交易者共享并在那里使用。 "无论其技术如何,它都是完整的。 我把我的EA复制并转移到另一台电脑上,给另一个交易员。之后,专家顾问不想工作了,并写道:没有我#include<...>所指的函数,也就是说,它没有看到include头文件,无法编译。 下面是一个专家顾问和包含头文件的例子。看看问题中的错误到底是什么。 该指令要求被包含的文件也必须位于另一台计算机的include目录中,总的来说,不要自寻烦恼,把所有的东西都写在同一张纸上,把一段代码作为一个函数来分配,放在纸的最后,这样它就不会挂在那里,也不用打开和关闭,为什么要把自己的生活搞得这么复杂。指令#include和#import是需要的(我认为),以编写一个超过1000行、由几十个独立程序组成的复杂程序,否则,它们更令人困惑,而不是帮助。 [删除] 2009.11.10 00:15 #2908 alsu >> : 请修复编译器生成的错误行 编译器写了以下一行 PointZigZag.mqh' - 无法打开程序文件D:\Program Files\MetaTrader2\experts\Kibliot.mq4 (10, 1) Alexey Subbotin 2009.11.10 00:18 #2909 gvi2504 >> : 编译器写了以下一行 PointZigZag.mqh' - 无法打开程序文件D:\Program Files\MetaTrader2\experts\Kibliot.mq4 (10, 1) 见上面的回答--把包含文件PointZigZag.mqh放在包含文件夹中。 Mykola Demko 2009.11.10 00:20 #2910 alsu >> : 见上面的回答--把包含文件PointZigZag.mqh放在包含文件夹中。 在所有应该编译Kibliot.mq4文件的计算机上。 1...284285286287288289290291292293294295296297298...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你混淆了 "库"(使用#import从其中提取函数)和 "包含头文件"(#include)的概念。
库位于library文件夹中,其来源的扩展名是*.mq4,如指标和专家顾问。 它们被编译成*.ex4文件(然后从中导入准备好的功能到其他程序中,像这样
为了正确地编译库,作为一项规则,你应该首先编写#property库指令。
Include头文件用于将现成的代码片断包含在各种程序中。 它们存储在includes文件夹中,扩展名为*.mqh,并使用#include <...>指令被包含在程序的文本中(即纳入文本);它们不必单独编译,因为它们是与主程序一起编译的。
顺便说一下,早些时候库是由带有#property library的模板生成的,现在不是了。有谁知道为什么他们改变了模板或者只是忘记了包含?
PS如果不是阿尔苏,我不会明白提问者想知道什么,我已经老了。
顺便说一下,以前库是用带有#属性库的模板生成的,但现在不是了,谁知道他们为什么改变了模板或者只是忘记了包含?
如果我没有阿尔苏,我就不明白他想知道什么。
你可以手动调整模板:)
你可以手动调整模板:)
是的,是的,我知道,但在我的时间里,我杀了2天才找到这个错误,而且在新建立的不同模板中,这是一个大问题。
>> ...如果不是阿尔苏,我不知道提问者想知道什么,我已经老了。
有经验的老前辈们,看看 "提问者" 的库的代码,给我解释一下作者写这个库的意思?
对不起。
已经写了很多,但我仍然不明白我问题的答案。我将再次尝试解释我不能做什么。
假设我做了一个EA,在其中插入了#include<...>指令,然后用一段代码做了一个包含头文件。
我已经编译了专家顾问,并将其纳入交易。 一切正常。根据谢尔盖-科瓦廖夫的说法。
"......另一件可以补充的事情是,ex4文件是自给自足的--为了让它工作,,不需要包括用户的函数源代码。
ex4文件可以被复制,与其他交易者共享并在那里使用。
"无论其技术如何,它都是完整的。
我把我的EA复制并转移到另一台电脑上,给另一个交易员。之后,专家顾问不想工作,并写道,没有我所指的#include<...>函数,也就是说,它没有看到include头文件,无法编译。
下面是一个专家顾问和包含头文件的例子。看看问题上的错误到底是什么。
//+------------------------------------------------------------------+//| Kibliot.mq4|
//| Copyright © 2009, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"Copyright © 2009, MetaQuotes Software Corp.
#属性链接 "http://www.metaquotes.net"
#include <PointZigZag.mqh>.
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{PointZigZag();
评论("Prod.-y21 = ",y21," ", "Pok.-x21 = ",x21)。
return(0);
}
//+------------------------------------------------------------------+
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
//+------------------------------------------------------------------+//| PointZigZag.mqh|
//| Copyright © 2009, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp.
#属性链接 "http://www.metaquotes.net"
Extern int intDepth = 12; //------- 变量ZigZag
Extern intNextDeviation = 5; //------- 变量ZigZag。
Extern intBackstep = 3; //------- 变量ZigZag
Extern inttern ShiftBars = 2; //------- 变量ZigZag
//------- 变量ZigZag ------------------------------------------
双重y3, y2, y1, zz;//
int x3, x2, x1, sh;//
双倍x31, x21, x11; // ZigZag拐点
double y31, y21, y11; // ZigZag拐点
双倍时间ZZ,时间OO。
//------------------------------------------------------------------------------
double PointZigZag()
{y3=0;y2=0;y1=0。
sh=ShiftBars。
while (y3==0)
{zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh)。
如果(zz!=0 && zz!=EMPTY_VALUE)
{if (y1==0) { x1=sh; y1=zz; }
else if (y2==0) { x2=sh; y2=zz; }
else if (y3==0) { x3=sh; y3=zz; }}sh++;
}
如果(High[x1]>High[x2])。
{x11=高[x1];x21=低[x2];x31=高[x3]。
y11=0;y21=0;y31=0;TimeZZ=Time[x2];
否则
{y11=Low[x1]; y21=High[x2]; y31=Low[x3];
x11=0;x21=0;x31=0;TimeZZ=Time[x2];}
}
//+------------------------------------------------------------------+
对不起。
已经写了很多,但我仍然不明白我问题的答案。我将再次尝试解释我不能做什么。
假设我做了一个EA,在其中插入了#include<...>指令,然后用一段代码做了一个包含头文件。
我已经编译了专家顾问,并将其纳入交易。 一切都在运作。根据谢尔盖-科瓦廖夫的说法。
"......我还可以补充说,ex4文件是自给自足的--为了让它工作,,不需要包括用户函数的源代码。
ex4文件可以被复制,与其他交易者共享并在那里使用。
"无论其技术如何,它都是完整的。
我把我的EA复制并转移到另一台电脑上,给另一个交易员。之后,专家顾问不想工作了,并写道:没有我#include<...>所指的函数,也就是说,它没有看到include头文件,无法编译。
下面是一个专家顾问和包含头文件的例子。看看问题中的错误到底是什么。
该指令要求被包含的文件也必须位于另一台计算机的include目录中,总的来说,不要自寻烦恼,把所有的东西都写在同一张纸上,把一段代码作为一个函数来分配,放在纸的最后,这样它就不会挂在那里,也不用打开和关闭,为什么要把自己的生活搞得这么复杂。指令#include和#import是需要的(我认为),以编写一个超过1000行、由几十个独立程序组成的复杂程序,否则,它们更令人困惑,而不是帮助。
请修复编译器生成的错误行
编译器写了以下一行
PointZigZag.mqh' - 无法打开程序文件D:\Program Files\MetaTrader2\experts\Kibliot.mq4 (10, 1)
编译器写了以下一行
PointZigZag.mqh' - 无法打开程序文件D:\Program Files\MetaTrader2\experts\Kibliot.mq4 (10, 1)
见上面的回答--把包含文件PointZigZag.mqh放在包含文件夹中。
见上面的回答--把包含文件PointZigZag.mqh放在包含文件夹中。
在所有应该编译Kibliot.mq4文件的计算机上。