来自一个 "傻瓜 "的问题 - 页 65 1...585960616263646566676869707172...277 新评论 Yedelkin 2011.09.15 19:53 #641 x100intraday: 当我调用我的函数时,我应该通过引用、通过指针或其他方式传递数组? 请阅读关于通过值和通过引用传递参数的 章节。 MQL5 参考 / 语言基础知识 / 函数 / 传递参数 Документация по MQL5: Основы языка / Функции / Передача параметров www.mql5.com Основы языка / Функции / Передача параметров - Документация по MQL5 x572intraday 2011.09.15 20:13 #642 Yedelkin: 请阅读《参考手册》中关于通过值和通过引用传递参数 的章节。 MQL5 参考 / 语言基础知识 / 函数 / 传递参数实际上,我刚刚从那里过来,我在之前的信息中提到的编译错误是在阅读了上述部分后发生的。现在我仔细重读了一遍--这都是关于const和放在哪里。谢谢,我已经明白了。 Sergey Gritsay 2011.09.16 08:22 #643 x100intraday:在OnCalculate 中,我可以很容易地 通过索引使用数组元素,如高。是否也可以在ExtFunc中访问这个数组的索引元素?当调用我的函数时,我应该通过引用、通过指针或其他方式传递数组参数吗?到目前为止,我已经设法将错误信息 减少到:"'高'--参数转换是不允许的 "和"'高'--常量变量不能作为引用传递",关于我在OnCalculate 中的数组参数的函数调用的同一行。是没有希望还是有解决的办法?到目前为止,在OnCalculate 中,我已经采用了将高点复制到另一个数组 中的方法。 然后在ExtFunc中使用CopyOfHigh而不是直接使用higharray。只要通过引用将数组传递给你的函数bool ExtFunc (string str, int P, int i, double & high[]) { if (high[i] < high[i-1]) return(false); return(true); } int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int i=0; if ExtFunc("s",60,i,high) == 1) Buffer[i] = high[i]; } Роман 2011.09.16 13:19 #644 向大家问好! 这个警告是什么意思。由于类型转换专家.mq5可能造成的数据损失 编译时? 它是这样说的。 string Symb="EURJPY"; int DIGITS = SymbolInfoInteger(Symb,SYMBOL_DIGITS);怎么了? Документация по MQL5: Основы языка / Типы данных / Приведение типов www.mql5.com Основы языка / Типы данных / Приведение типов - Документация по MQL5 Nikolay Kositsin 2011.09.16 13:26 #645 sergey1294: 只需通过引用将数组传递给你的函数 并非如此。bool ExtFunc (string str, int P, int i, const double & high[]) { if (high[i] < high[i-1]) return(false); return(true); } int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int i=0; if ExtFunc("s",60,i,high) == 1) Buffer[i] = high[i]; } Yedelkin 2011.09.16 17:26 #646 RomanS: 向大家问好! 这个警告是什么意思。 由于类型转换专家.mq5可能造成的数据损失 编译时?它是这样说的。 怎么了?SymbolInfoInteger()函数返回长类型的值(见参考),而DIGITS被声明为int。这是一个隐含的类型转换。见 "类型转换"。 Vladimir Gomonov 2011.09.16 18:45 #647 RomanS:该警告意味着什么。由于类型转换可能造成的数据损失这一信息的含义各不相同,取决于考虑它的背景。比如说。1. "做一个显式的类型转换!" int DIGITS = (int) SymbolInfoInteger(Symb,SYMBOL_DIGITS); 2."可能的数据抽动与隐式类型转换。" // 这是一个字面翻译。这是可以理解的,因为函数返回的长类型有更大的尺寸,涵盖的数值范围更广。另一个最近最常出现在我脑海中的选项。3. "MetaQuotes工作人员不明白,如果错误信息和mql5编译器警告是用用户的母语给出的,这将是多么酷、有吸引力和有效的学习。" Anatoli Kazharski 2011.09.16 19:01 #648 MetaDriver:...如果mql5编译器 的错误信息和警告 是以用户的母语给出的,那将是多么酷、有吸引力和有效的学习。" 是的,这不会是坏事。虽然我个人对英语已经有点心得,而且现在的翻译也是一抓一大把,但还是那句话,这占用了宝贵的时间,这就不多说了。有些人没有足够的能力,对于金融市场上的交易+编程这样复杂的主题,使用翻译。MetaTrader 5是一个多语言平台。我希望帮助实例中的信息和评论(我们有时会遇到)能用终端中选择的语言。 masharov 2011.09.17 15:32 #649 我怀疑,如果该指标是通过iCustom激活的,它是在每个tick 上计算的。而且它不依赖于通过CopyBuffer对它的调用。这是否正确?如果是正确的,那么是否可以禁用指标的计算,只在调用CopyBuffer之前启用? Yedelkin 2011.09.17 16:05 #650 masharov: 我怀疑,如果该指标是通过iCustom激活的,它是在每个tick上计算的。而且它不依赖于通过CopyBuffer对它的调用。这是否正确? 这取决于自定义指标 的逻辑。实际上,它可以每天重新计算一次其数值,跳过所有其他时间。所以说,按照作者的意愿。 masharov。 如果是这样,是否可以禁用指标的重新计算,只在调用CopyBuffer之前启用? 基本上,有些人试图使用这种怪物的方法:通过iCustom创建一个指标的副本,复制所需的数据,删除指标的副本。该程序根据需要重复进行。 还有一个OnTimer()函数,我自己没有用过,但也许你可以根据你的任务来调整它。 1...585960616263646566676869707172...277 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
当我调用我的函数时,我应该通过引用、通过指针或其他方式传递数组?
请阅读关于通过值和通过引用传递参数的 章节。
MQL5 参考 / 语言基础知识 / 函数 / 传递参数
请阅读《参考手册》中关于通过值和通过引用传递参数 的章节。
MQL5 参考 / 语言基础知识 / 函数 / 传递参数
实际上,我刚刚从那里过来,我在之前的信息中提到的编译错误是在阅读了上述部分后发生的。
现在我仔细重读了一遍--这都是关于const和放在哪里。
谢谢,我已经明白了。
在OnCalculate 中,我可以很容易地 通过索引使用数组元素,如高。是否也可以在ExtFunc中访问这个数组的索引元素?当调用我的函数时,我应该通过引用、通过指针或其他方式传递数组参数吗?到目前为止,我已经设法将错误信息 减少到:"'高'--参数转换是不允许的 "和"'高'--常量变量不能作为引用传递",关于我在OnCalculate 中的数组参数的函数调用的同一行。是没有希望还是有解决的办法?
到目前为止,在OnCalculate 中,我已经采用了将高点复制到另一个数组 中的方法。
然后在ExtFunc中使用CopyOfHigh而不是直接使用higharray。只要通过引用将数组传递给你的函数
向大家问好!
这个警告是什么意思。
由于类型转换专家.mq5可能造成的数据损失
编译时? 它是这样说的。
怎么了?
只需通过引用将数组传递给你的函数
并非如此。
向大家问好!
这个警告是什么意思。
由于类型转换专家.mq5可能造成的数据损失
编译时?它是这样说的。
怎么了?
该警告意味着什么。
由于类型转换可能造成的数据损失
这一信息的含义各不相同,取决于考虑它的背景。
比如说。
1. "做一个显式的类型转换!"
2."可能的数据抽动与隐式类型转换。" // 这是一个字面翻译。
这是可以理解的,因为函数返回的长类型有更大的尺寸,涵盖的数值范围更广。
另一个最近最常出现在我脑海中的选项。
3. "MetaQuotes工作人员不明白,如果错误信息和mql5编译器警告是用用户的母语给出的,这将是多么酷、有吸引力和有效的学习。"
...如果mql5编译器 的错误信息和警告 是以用户的母语给出的,那将是多么酷、有吸引力和有效的学习。"
我怀疑,如果该指标是通过iCustom激活的,它是在每个tick 上计算的。而且它不依赖于通过CopyBuffer对它的调用。这是否正确?
如果是正确的,那么是否可以禁用指标的计算,只在调用CopyBuffer之前启用?
我怀疑,如果该指标是通过iCustom激活的,它是在每个tick上计算的。而且它不依赖于通过CopyBuffer对它的调用。这是否正确?
这取决于自定义指标 的逻辑。实际上,它可以每天重新计算一次其数值,跳过所有其他时间。所以说,按照作者的意愿。
如果是这样,是否可以禁用指标的重新计算,只在调用CopyBuffer之前启用?
基本上,有些人试图使用这种怪物的方法:通过iCustom创建一个指标的副本,复制所需的数据,删除指标的副本。该程序根据需要重复进行。
还有一个OnTimer()函数,我自己没有用过,但也许你可以根据你的任务来调整它。