文章 "针对初学者以 MQL5 编写“EA 交易”的分步指南" - 页 4 1234567891011...30 新评论 Samuel Olowoyo 2010.10.09 02:37 #31 Stacy: 我非常感谢这篇文章,它帮了我大忙。写完 EA 代码后,我按下了调试按钮,结果被告知有 10 个错误,而您的文章中没有任何纠正这些错误的信息。请尽快给我回信。你好,斯泰西、感谢您的赞美,正如您所说,文章中没有讨论如何纠正某些代码错误,不过,我们很快就会发表另一篇文章,详细解释如何解决代码错误。敬请期待。谢谢塞缪尔 tcnguyen27 2010.11.07 12:59 #32 大家好!我是一个初学者,我正试图按照指南编写一个 E.A,但它没有做出卖出或买入指令。我的算法是使用 2 个 ma(6 和 12)和 1 个 rsi(14),就像这样:bool Buy_Condition_1 = (maVal_fast[0]<maVal_slow[0]) && (maVal_fast[1] > maVal_slow[1]);bool Buy_Condition_2 = (rsiVal[0] < Pereprod);if(Buy_Condition_1 && Buy_Condition_2){// 胡说......胡说......mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // 最新卖出价mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // 止损值mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit mrequest.volume = Lot;// 交易手数mrequest.type =ORDER_TYPE_BUY;// .............}但是它没有跳转到上面的代码段,所以不能自动交易。我需要帮助 :(.我使用 PRICE_MEDIAN 而不是 PRICE_CLOSE(我不知道它们之间的区别)。谢谢。 Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties www.mql5.com Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5 Discussion of article "Step-by-Step Questions from a "dummy" Questions from Beginners MQL5 Samuel Olowoyo 2010.11.07 20:12 #33 hi everyone! i am a beginer and i am trying to write an E.A follow the guide but it did not make sell or buy order. 您好、能否请您提供代码,以便我们了解问题出在哪里? Andrey F. Zelinsky 2010.12.20 09:52 #34 Мы решили хранить значения Stop Loss и Take Profit в определенных ранее переменных STP и TKP. Почему мы это сделали? 这样做是因为输入参数的值不能修改,它们是只读的。 我们需要确保我们的智能交易系统能在所有经纪商处正常运行。要根据图表的当前符号确定报价的准确性,可以使用以下方法。 受人尊敬、经验丰富的程序员使用了一种神奇的 "方法 "来 "解决 "五位数符号的问题。现在,这种 "方法 "也在初学者中推广开来,可以说是在教育文献中。 作者给出的 "方法 "完全抹杀了 5 位数的全部优势。作者没有向初学者解释,引入 5 位数报价后,可以设置的获利点数不是 10 个点,而是 10.5 个点。还要解释在使用带有 5 位数报价的智能交易系统时,有必要指定止盈不是 10 个点,而是 100 个点。但程序代码中并没有这样的解释,而是引入了一些字符串,从程序上导致无法利用 5 位数报价。 "我们必须确保我们的 EA 能在所有经纪商处正常运行"。好吧,我们确定了,然后呢?如果 Expert Advisor 在程序上 "被判正确运行",现在如何利用 5 位数报价的优势? [删除] 2010.12.22 12:44 #35 abolk:德高望重、经验丰富的程序员用一种神奇的 "方法 "来 "解决 "五位数的问题。现在,这种 "方法 "也在初学者中推广开来,可以说是在教育文献中。作者给出的 "方法 "完全抹杀了 5 位数的全部优势。作者没有向初学者解释,引入 5 位数报价后,可以设置的获利点数不是 10 个点,而是 10.5 个点。还要解释在使用带有 5 位数报价的智能交易系统时,有必要指定止盈不是 10 个点,而是 100 个点。程序代码中没有这些解释,而是引入了一些行,这些行在编程上无法使用 5 位数报价的优势。"我们必须确保我们的 EA 能在所有经纪商处正常运行"。好吧,我们确定了,然后呢?如果智能交易系统在程序上被 "判定为正确服务",我们现在又如何使用 5 位数报价的优势呢?10.5 是另一种说法:)如果我们考虑到需要在不同精度的账户上进行通用工作,那么 4 位数的标准化是完全可以理解的。如果所有经纪商都使用 5 位数的账户,也许就不需要这样的处理了(尽管为了代码的通用性,存在这样的区块也无妨)。但我不明白这怎么会妨碍利用第 5 位数字的优势。这个区块的精确度允许您使用第一个四位数点数(有条件的 "标准"),如果是五位数,则为 10 点。PS我认为大多数经纪商不允许使用更小的数值。即使他们允许而且有必要,也有可能摆脱困境(即使使用 0.1-0.9 这样的奇特值)。 Andrey F. Zelinsky 2010.12.22 13:36 #36 Interesting:10.5 仍有争议)如果我们考虑到不同精度的账户需要通用工作,那么 4 位数的标准化是完全可以理解的。如果所有经纪商都使用 5 位数的账户,也许就没有必要进行这样的处理了(不过,为了代码的通用性,有这样的区块也无妨)。但我不明白这如何妨碍利用第 5 位数字的优势。这个区块的精确度允许使用 1 个四位数点数(有条件的 "标准"),如果是五位数,则为 10 点。PS我认为大多数经纪商都不允许使用更小的数值。即使他们允许,而且有必要使用,也有可能摆脱困境(甚至使用 0.1-0.9 这样的奇特值)。 4 位数的价格变化 为 0.0001,5 位数的价格变化 为 0.00001。 4 位数不可能在 10.5 个标准点后平仓,但 5 位数却有可能。 如果以编程方式使用上述程序块,那么在 5 位数符号上使用智能交易系统时,将无法更改止损点,例如,在 10.5 个标准点时止损。这一点对剥头皮者很重要。 为了让 Expert Advisor 在 4 位数和 5 位数上正常工作, 有必要在四舍五入时考虑到报价的符号,并在输入参数中设置止损时手动 考虑到 10 个标准点被写成 100。 否则,如果使用这样的区块,那么当从 k5 位数切换到 4 位数时,将不得不除以什么? 这些都是输入参数,为什么要用它们进行 "奇怪 "的转换操作呢? 重构经典策略(第七部分):基于USDJPY的外汇市场与主权债务分析 自定义品种(符号):实践基础 构建自动运行的 EA(第 02 部分):开始编码 Andrey Khatimlianskii 2010.12.22 22:57 #37 abolk: 4 位数不可能在 10.5 个标准点后平仓,但 5 位数却有这种可能性。您进行交易吗?还是你只是在推测?我很难想象一个 EA,改变 0.5 个点的 TP 会对结果产生多大影响。对于 99% 的智能交易系统来说,用 4 位数的点数指定所有数值更简单、更方便。在普通教育文章中描述剩下的 1%是没有意义的。 [删除] 2010.12.23 06:33 #38 komposter:你在交易吗?还是只是想理论一下?我很难想象一个 EA 的 TP 值改变 0.5 点会对结果产生多大影响。对于 99% 的智能交易系统来说,用四位数点数指定所有数值更简单方便。而对于剩下的 1%,在普通教育文章中进行描述是没有意义的。+1.这不是交易精确度的问题,而是这 10.5 个点听起来像什么,会让每个人(尤其是初级交易者)感到困惑。根据定义,点是价格变化的最小单位。也许我错了?在现实生活中,不太可能出现以 5 个五位数点(0.5 个标准点)为止损点和止赢点的 EA。我甚至将此类智能交易系统的数量定义为总数的 0.1-0.01%。PS这里不考虑基于交易操作 结果的内部计算(每个人都可以四舍五入到必要的精确度)。 hrenfx 2010.12.23 06:48 #39 abolk:作者给出的 "方法 "完全抹杀了 5 位数报价的所有优点。他没有向初学者解释,引入 5 位数报价后,例如,止盈可以设置为 10.5,而不是 10 个点。还要解释在使用带有 5 位数报价的智能交易系统时,有必要指定止盈不是 10 个点,而是 100 个点。但程序代码中并没有这样的解释,而是引入了几行代码,在程序上不允许使用 5 位数报价的优势。我完全支持该评论的作者。有需要的人可以四舍五入到第 3 位数。但在一般情况下这样做是一个严重的错误。精确度越高越好,不值得因为一些纯粹主观的实际用途观点而使每个人都失去精确度。附注: 在一般情况下,SL 和 TP 设置的不是绝对值(这在任何地方都是公认的),而是相对值。这样,点数、5-符号、点数-美元和其他牵强附会的问题就会自行消失。 Yedelkin 2010.12.23 13:59 #40 abolk,hrenfx,究竟争论的是什么?让我们仔细阅读一下文章的标题:"...无论从标题还是内容来看,这篇文章都充分说明了它的目的。 听我说,对于初学者来说,专家的四舍五入精度并没有什么区别,主要的方法是:"我们只需要处理好EA 的编写"。就我个人而言,作为一名初学者,"四舍五入 "到 4 位数的技巧(虽然是在另一篇文章中)非常有用,揭示了编程技巧之一。随着经验的积累,高水平的专家将能够决定以何种精度进行计算/交易,而我们讨论的这篇文章丝毫不会妨碍他们。 这篇文章丝毫没有妨碍您:)。其他人也一样:"当他们成长到你的水平时,他们会自己想办法"。 我想再次提请您注意:文章的作者并没有把他对这个问题的看法强加于人,也没有讨论使用 4 位或 5 位数字的价值。作者只是帮助初学者使用某些编程技巧掌握 MQL5 编程的初始步骤。 1234567891011...30 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我非常感谢这篇文章,它帮了我大忙。写完 EA 代码后,我按下了调试按钮,结果被告知有 10 个错误,而您的文章中没有任何纠正这些错误的信息。请尽快给我回信。
你好,斯泰西、
感谢您的赞美,正如您所说,文章中没有讨论如何纠正某些代码错误,不过,我们很快就会发表另一篇文章,详细解释如何解决代码错误。
敬请期待。
谢谢
塞缪尔
大家好!
我是一个初学者,我正试图按照指南编写一个 E.A,但它没有做出卖出或买入指令。
我的算法是使用 2 个 ma(6 和 12)和 1 个 rsi(14),就像这样:
bool Buy_Condition_1 = (maVal_fast[0]<maVal_slow[0]) && (maVal_fast[1] > maVal_slow[1]);
bool Buy_Condition_2 = (rsiVal[0] < Pereprod);
if(Buy_Condition_1 && Buy_Condition_2)
{
// 胡说......胡说......
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // 最新卖出价
mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // 止损值
mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
mrequest.volume = Lot;// 交易手数
mrequest.type =ORDER_TYPE_BUY;
// .............
}
但是它没有跳转到上面的代码段,所以不能自动交易。
我需要帮助 :(.
我使用 PRICE_MEDIAN 而不是 PRICE_CLOSE(我不知道它们之间的区别)。
谢谢。
hi everyone!
i am a beginer and i am trying to write an E.A follow the guide but it did not make sell or buy order.
您好、
能否请您提供代码,以便我们了解问题出在哪里?
Мы решили хранить значения Stop Loss и Take Profit в определенных ранее переменных STP и TKP. Почему мы это сделали?
这样做是因为输入参数的值不能修改,它们是只读的。
我们需要确保我们的智能交易系统能在所有经纪商处正常运行。要根据图表的当前符号确定报价的准确性,可以使用以下方法。
受人尊敬、经验丰富的程序员使用了一种神奇的 "方法 "来 "解决 "五位数符号的问题。现在,这种 "方法 "也在初学者中推广开来,可以说是在教育文献中。
作者给出的 "方法 "完全抹杀了 5 位数的全部优势。作者没有向初学者解释,引入 5 位数报价后,可以设置的获利点数不是 10 个点,而是 10.5 个点。还要解释在使用带有 5 位数报价的智能交易系统时,有必要指定止盈不是 10 个点,而是 100 个点。但程序代码中并没有这样的解释,而是引入了一些字符串,从程序上导致无法利用 5 位数报价。
"我们必须确保我们的 EA 能在所有经纪商处正常运行"。好吧,我们确定了,然后呢?如果 Expert Advisor 在程序上 "被判正确运行",现在如何利用 5 位数报价的优势?
德高望重、经验丰富的程序员用一种神奇的 "方法 "来 "解决 "五位数的问题。现在,这种 "方法 "也在初学者中推广开来,可以说是在教育文献中。
作者给出的 "方法 "完全抹杀了 5 位数的全部优势。作者没有向初学者解释,引入 5 位数报价后,可以设置的获利点数不是 10 个点,而是 10.5 个点。还要解释在使用带有 5 位数报价的智能交易系统时,有必要指定止盈不是 10 个点,而是 100 个点。程序代码中没有这些解释,而是引入了一些行,这些行在编程上无法使用 5 位数报价的优势。
"我们必须确保我们的 EA 能在所有经纪商处正常运行"。好吧,我们确定了,然后呢?如果智能交易系统在程序上被 "判定为正确服务",我们现在又如何使用 5 位数报价的优势呢?
10.5 是另一种说法:)
如果我们考虑到需要在不同精度的账户上进行通用工作,那么 4 位数的标准化是完全可以理解的。
如果所有经纪商都使用 5 位数的账户,也许就不需要这样的处理了(尽管为了代码的通用性,存在这样的区块也无妨)。
但我不明白这怎么会妨碍利用第 5 位数字的优势。
这个区块的精确度允许您使用第一个四位数点数(有条件的 "标准"),如果是五位数,则为 10 点。
PS
我认为大多数经纪商不允许使用更小的数值。即使他们允许而且有必要,也有可能摆脱困境(即使使用 0.1-0.9 这样的奇特值)。
10.5 仍有争议)
如果我们考虑到不同精度的账户需要通用工作,那么 4 位数的标准化是完全可以理解的。
如果所有经纪商都使用 5 位数的账户,也许就没有必要进行这样的处理了(不过,为了代码的通用性,有这样的区块也无妨)。
但我不明白这如何妨碍利用第 5 位数字的优势。
这个区块的精确度允许使用 1 个四位数点数(有条件的 "标准"),如果是五位数,则为 10 点。
PS
我认为大多数经纪商都不允许使用更小的数值。即使他们允许,而且有必要使用,也有可能摆脱困境(甚至使用 0.1-0.9 这样的奇特值)。
4 位数的价格变化 为 0.0001,5 位数的价格变化 为 0.00001。
4 位数不可能在 10.5 个标准点后平仓,但 5 位数却有可能。
如果以编程方式使用上述程序块,那么在 5 位数符号上使用智能交易系统时,将无法更改止损点,例如,在 10.5 个标准点时止损。这一点对剥头皮者很重要。
为了让 Expert Advisor 在 4 位数和 5 位数上正常工作, 有必要在四舍五入时考虑到报价的符号,并在输入参数中设置止损时手动 考虑到 10 个标准点被写成 100。
否则,如果使用这样的区块,那么当从 k5 位数切换到 4 位数时,将不得不除以什么?
这些都是输入参数,为什么要用它们进行 "奇怪 "的转换操作呢?
4 位数不可能在 10.5 个标准点后平仓,但 5 位数却有这种可能性。
您进行交易吗?还是你只是在推测?
我很难想象一个 EA,改变 0.5 个点的 TP 会对结果产生多大影响。对于 99% 的智能交易系统来说,用 4 位数的点数指定所有数值更简单、更方便。在普通教育文章中描述剩下的 1%是没有意义的。
你在交易吗?还是只是想理论一下?
我很难想象一个 EA 的 TP 值改变 0.5 点会对结果产生多大影响。对于 99% 的智能交易系统来说,用四位数点数指定所有数值更简单方便。而对于剩下的 1%,在普通教育文章中进行描述是没有意义的。
+1.
这不是交易精确度的问题,而是这 10.5 个点听起来像什么,会让每个人(尤其是初级交易者)感到困惑。
根据定义,点是价格变化的最小单位。也许我错了?
在现实生活中,不太可能出现以 5 个五位数点(0.5 个标准点)为止损点和止赢点的 EA。
我甚至将此类智能交易系统的数量定义为总数的 0.1-0.01%。
PS
这里不考虑基于交易操作 结果的内部计算(每个人都可以四舍五入到必要的精确度)。
作者给出的 "方法 "完全抹杀了 5 位数报价的所有优点。他没有向初学者解释,引入 5 位数报价后,例如,止盈可以设置为 10.5,而不是 10 个点。还要解释在使用带有 5 位数报价的智能交易系统时,有必要指定止盈不是 10 个点,而是 100 个点。但程序代码中并没有这样的解释,而是引入了几行代码,在程序上不允许使用 5 位数报价的优势。
我完全支持该评论的作者。
有需要的人可以四舍五入到第 3 位数。但在一般情况下这样做是一个严重的错误。
精确度越高越好,不值得因为一些纯粹主观的实际用途观点而使每个人都失去精确度。
附注: 在一般情况下,SL 和 TP 设置的不是绝对值(这在任何地方都是公认的),而是相对值。这样,点数、5-符号、点数-美元和其他牵强附会的问题就会自行消失。
abolk,hrenfx,究竟争论的是什么?让我们仔细阅读一下文章的标题:"...无论从标题还是内容来看,这篇文章都充分说明了它的目的。 听我说,对于初学者来说,专家的四舍五入精度并没有什么区别,主要的方法是:"我们只需要处理好EA 的编写"。就我个人而言,作为一名初学者,"四舍五入 "到 4 位数的技巧(虽然是在另一篇文章中)非常有用,揭示了编程技巧之一。随着经验的积累,高水平的专家将能够决定以何种精度进行计算/交易,而我们讨论的这篇文章丝毫不会妨碍他们。 这篇文章丝毫没有妨碍您:)。其他人也一样:"当他们成长到你的水平时,他们会自己想办法"。
我想再次提请您注意:文章的作者并没有把他对这个问题的看法强加于人,也没有讨论使用 4 位或 5 位数字的价值。作者只是帮助初学者使用某些编程技巧掌握 MQL5 编程的初始步骤。