初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1456 1...144914501451145214531454145514561457145814591460146114621463...1503 新评论 rex1818 2023.04.28 17:07 #14551 下午好! 请提供帮助:我们的目标是在价格穿越 MA 时实现平仓。 在这部分代码中 if(Bid<iMA(Symbol(),0,Fast_Ma_Period,Fast_Ma_Shift,Fast_Ma_Method,Fast_Ma_Price,0) && CountBuy()>0) { for(int i=OrdersTotal ()-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber ()== MagicNumber && OrderType() == OP_BUY) if(!OrderClose(OrderTicket(), OrderLots(),Bid, Slippage, Black)) Print("Ошибка"); 我在测试仪上 看到了以下图片:价格穿越 MA,并在蜡烛收盘/下一根蜡烛开盘时平仓,此时离预期的平仓水平(MA 边界)已经很远 ....。 附加的文件: c6lhmu6gs31235.jpg 38 kb Valeriy Yastremskiy 2023.04.28 20:25 #14552 rex1818 平仓。 在这部分代码中我在测试仪上 看到以下情况:价格穿越 MA,并在蜡烛收盘/下一根蜡烛开盘时平仓,此时离预期的平仓水平(MA 边界)已经很远 ....。刻度线的波动性比刻度线上的平均 MA 要大得多,因此 MA 值出现的刻度线之间的价差是很常见的。价格是离散的,我希望您不要混淆买入价和卖出价(即按买入价计算的 MA 值和收盘开盘价也是买入价,按卖出价计算的 MA 值和价格也是卖出价)。 Zy,你可以不按买入价或卖出价重新计算 ma,而是加上价差再减去,这样误差会很小。 rex1818 2023.04.29 05:58 #14553 Valeriy Yastremskiy #:刻度线的波动幅度远大于刻度线的平均 MA 值,因此 MA 值出现的刻度线之间的价差是很常见的。价格是离散的,我希望您不要混淆买入价和卖出价(即按买入价计算的 MA 值和收盘开盘价也是买入价,按卖出价计算的 MA 值和价格也是卖出价)。 Zy,顺便说一下,你不能按买入价或卖出价重新计算 ma,而是将价差加到减去,这样误差会很小。 感谢您的回答! 今天我将考虑您的建议,试着解决这个问题。 Alexey Viktorov 2023.04.29 05:59 #14554 rex1818 平仓。 在这部分代码中我在测试仪上 看到如下图所示:价格穿越 MA,并在蜡烛收盘/下一根蜡烛开盘时平仓,此时离预期的平仓水平(MA 边界)已经很远 ....。 不是选择了以收盘价测试吗? rex1818 2023.04.29 06:45 #14555 Alexey Viktorov #:不是选择关闭酒吧进行测试吗? 下午好! 测试模型:所有 ticks (.....)。我知道最准确的... Alexey Viktorov 2023.04.29 10:53 #14556 rex1818 #:下午好!测试模型: 所有刻度线 (.....)。我知道最准确的... Expert Advisor(智能交易系统)不是根据新条形图的打开而编写的吗? 您所显示的那部分代码不足以更准确地推测这种行为的原因。 rex1818 2023.04.29 18:12 #14557 感谢大家的回复! 找到错误了。 现在一切正常。 Mikhail Toptunov 2023.04.30 08:01 #14558 如果图表有 3000 个条形图的限制,而我们需要获取 2000000 个条形图的历史数据,是否有可能在不更改参数--窗口中的最大条形图 ???? 的情况下提取历史数据?当数组变成 200 万个索引时,我的系统就会超载。我必须寻找一种绕过图表卸载历史数据的解决方案。 void SMA(const int aRatesTotal,const int aPrevCalc,const double &aData[], double &aMA[]) { int Start=0; if(aPrevCalc==0) { for(int i=0;i<aRatesTotal;i++) { if(aData[i]!=0 && aData[i]!=EMPTY_VALUE) { Start=i+m_MAPeriod-1; break; } } aMA[Start]=0; for(int i=Start;i>Start-m_MAPeriod;i--) { aMA[Start]+=aData[i]; }但在此之前,我需要向这个数组提供数据。 rt=aRatesTotal; prv=aPrevCalc; for(int i=0; i<m_max_period; i++) { ArrayResize(d[i].m,rt); ArrayResize(d[i].f,rt); } chsma.Solve(rt,prv,aData,d[m_max_period-1].m); 看来系统崩溃不是因为一个数组,而是因为它开始创建如此大的数组。 ANDREY 2023.05.08 01:10 #14559 大家下午好! 我想从 Mql4 转到 Mql5。我开始阅读Mql5 参考手册。不幸的是,我看懂了,但不是全部。我在哪里可以找到像 Kovalev 的 Mql4 教科书那样 的信息,它可以 从基础开始, 详细描述 Mql5 的功能, 最重要的是,它可以给出编码最简单和最常见操作的具体示例。也就是说,我们需要的不是针对高级用户的培训信息,而是针对需要学习基础知识并从基础知识开始的初学者的培训信息。 感谢您的帮助 Aleksey Vyazmikin 2023.05.08 07:57 #14560 ANDREY #:大家下午好我想从 Mql4 转到 Mql5。我开始阅读Mql5 参考手册。不幸的是,我看懂了,但不是全部。我在哪里可以找到像 Kovalev 的 Mql4 教科书那样 的信息,它可以 从基础开始, 详细描述 Mql5 的功能, 最重要的是,它可以给出编码最简单和最常见操作的具体示例。也就是说,我们需要的不是针对高级用户的培训信息,而是针对需要学习基础知识并从基础知识开始的初学者的培训信息。感谢您的帮助 代码库中有最初在 MT4 上编写的智能交易系统和指标,然后在 MT5 上重新编写 - 您可以使用它们进行培训。 在许多方面,语言是相似的,给自己设定一个任务,在 MT5 上重写您能理解的代码--并积极使用说明和门户网站上的搜索功能--您总能找到答案,包括在文章中。 1...144914501451145214531454145514561457145814591460146114621463...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
下午好!
请提供帮助:我们的目标是在价格穿越 MA 时实现平仓。
在这部分代码中
我在测试仪上 看到了以下图片:价格穿越 MA,并在蜡烛收盘/下一根蜡烛开盘时平仓,此时离预期的平仓水平(MA 边界)已经很远 ....。
在这部分代码中
我在测试仪上 看到以下情况:价格穿越 MA,并在蜡烛收盘/下一根蜡烛开盘时平仓,此时离预期的平仓水平(MA 边界)已经很远 ....。
刻度线的波动性比刻度线上的平均 MA 要大得多,因此 MA 值出现的刻度线之间的价差是很常见的。价格是离散的,我希望您不要混淆买入价和卖出价(即按买入价计算的 MA 值和收盘开盘价也是买入价,按卖出价计算的 MA 值和价格也是卖出价)。
Zy,你可以不按买入价或卖出价重新计算 ma,而是加上价差再减去,这样误差会很小。刻度线的波动幅度远大于刻度线的平均 MA 值,因此 MA 值出现的刻度线之间的价差是很常见的。价格是离散的,我希望您不要混淆买入价和卖出价(即按买入价计算的 MA 值和收盘开盘价也是买入价,按卖出价计算的 MA 值和价格也是卖出价)。
Zy,顺便说一下,你不能按买入价或卖出价重新计算 ma,而是将价差加到减去,这样误差会很小。感谢您的回答!
今天我将考虑您的建议,试着解决这个问题。
在这部分代码中
我在测试仪上 看到如下图所示:价格穿越 MA,并在蜡烛收盘/下一根蜡烛开盘时平仓,此时离预期的平仓水平(MA 边界)已经很远 ....。
不是选择了以收盘价测试吗?
不是选择关闭酒吧进行测试吗?
下午好!
测试模型:所有 ticks (.....)。我知道最准确的...
下午好!
测试模型: 所有刻度线 (.....)。我知道最准确的...
Expert Advisor(智能交易系统)不是根据新条形图的打开而编写的吗?
您所显示的那部分代码不足以更准确地推测这种行为的原因。
感谢大家的回复!
找到错误了。
现在一切正常。
如果图表有 3000 个条形图的限制,而我们需要获取 2000000 个条形图的历史数据,是否有可能在不更改参数--窗口中的最大条形图 ???? 的情况下提取历史数据?
当数组变成 200 万个索引时,我的系统就会超载。我必须寻找一种绕过图表卸载历史数据的解决方案。
但在此之前,我需要向这个数组提供数据。
看来系统崩溃不是因为一个数组,而是因为它开始创建如此大的数组。大家下午好!
我想从 Mql4 转到 Mql5。我开始阅读Mql5 参考手册。不幸的是,我看懂了,但不是全部。我在哪里可以找到像 Kovalev 的 Mql4 教科书那样 的信息,它可以 从基础开始, 详细描述 Mql5 的功能, 最重要的是,它可以给出编码最简单和最常见操作的具体示例。也就是说,我们需要的不是针对高级用户的培训信息,而是针对需要学习基础知识并从基础知识开始的初学者的培训信息。
感谢您的帮助
大家下午好
我想从 Mql4 转到 Mql5。我开始阅读Mql5 参考手册。不幸的是,我看懂了,但不是全部。我在哪里可以找到像 Kovalev 的 Mql4 教科书那样 的信息,它可以 从基础开始, 详细描述 Mql5 的功能, 最重要的是,它可以给出编码最简单和最常见操作的具体示例。也就是说,我们需要的不是针对高级用户的培训信息,而是针对需要学习基础知识并从基础知识开始的初学者的培训信息。
感谢您的帮助
代码库中有最初在 MT4 上编写的智能交易系统和指标,然后在 MT5 上重新编写 - 您可以使用它们进行培训。
在许多方面,语言是相似的,给自己设定一个任务,在 MT5 上重写您能理解的代码--并积极使用说明和门户网站上的搜索功能--您总能找到答案,包括在文章中。