关于MQL5向导和标准交易类库的问题 - 页 9 123456789101112131415 新评论 Anatoli Kazharski 2011.12.18 06:17 #81 -Alexey-:那么,它的实际目的,而不是测试者的目的是什么?它似乎就在那里,但你不能使用它。为什么关于这个问题的任何问题,例如,建议引入这种处理,或由开发人员写一篇文章,或一些错误处理指南,总是遇到开发人员的沉默?毕竟,他们是这个问题上最有能力的人--有什么问题呢?至少看起来很奇怪,我们没有真正有用的东西,而是在研究一堆没有人需要的指标(0个评论,0个要求),而此时却没有交易的基础--打开和关闭交易的能力。自动交易的仿真器的问题被挂起,没有答案,但它必须在标准库中。我想听听答案。因此,没有人隐瞒策略向导只为测试者服务的事实。))只是和快速检查这个或那个想法,然后决定朝哪个方向走。而且,错误处理 也不是什么难事。你至少可以看看别人是怎么做的。例如,KimIV 在第四论坛上的函数库。我想我甚至可以就这个问题写一篇文章,但我现在没有那么多时间。 而据我所知,开发商现在把所有的精力都放在了开发整个项目上。市场、信号 和仓库 服务被挂在空中,也许还有一些错误。在我看来,这些是现在的主要任务。 Oleg 2011.12.18 11:37 #82 问题的关键不在于任务是否复杂,而在于是否需要在标准库中 实现。在编写EA时定义一个主要任务的清单,并为开发者实施,这样就不需要看别人怎么做,也不需要等到有人有时间写文章,这将是一个好主意。 Anatoli Kazharski 2011.12.21 17:34 #83 beginner: 问题的关键不在于任务是否复杂,而在于是否需要在标准库中 实现。在编写EA时,最好定义一个主要任务清单,并为开发者实施,这样就不需要看别人怎么做了,也不需要等到有人有时间写文章。 在任何情况下,你很可能不得不等待公司解决更优先的任务。也许在不久的将来的某个时候,它将被实施。在这里,我决定不再等待,因为我真的不喜欢等待,而且很早以前就已经实施了。根本就没花多少时间。此外,我在学习语言的最初阶段就这样做了。你可以把你的请求写给服务台。如果我这样做呢?)) Victor Kirillin 2011.12.21 18:08 #84 tol64:...但如果我这样做呢?))没有。我很抱歉,但这就是标准库的作用,包含标准的解决方案。交易错误的处理在很大程度上取决于交易者的偏好。所以,亲爱的朋友们,让我们自己来做吧。 Oleg 2011.12.21 18:17 #85 tol64: 在任何情况下,它可能必须等到公司有更多的优先事项。也许它将在不久的将来的某个时候被实施。在这里,我决定不再等待,因为我真的不喜欢等待,而且很早以前就已经实施了。根本就没花多少时间。此外,我在学习语言的最初阶段就这样做了。你可以把你的请求写给服务台。如果我这样做呢?)) 实施工作可以由任何人以任何方式完成。你确定你所做的一切是最佳的、正确的和漂亮的。当然,可以有很多变体,但只有一个典型的开发者可以根据你的需要进行定制或按原样使用。 Anatoli Kazharski 2011.12.23 09:35 #86 beginner: 实施工作可以由任何人以任何方式进行。你确定你已经把一切都做得很好,很正确,很漂亮了吗?当然,可以有很多变体,但开发商的一个典型就足以根据你的需要定制它,或按原样使用它。 还没有在现实中测试,但那些已经测试过的人(论坛的有能力的成员)相当满意。看看完成的版本吧,它是可用的,但用于MT4。在MT5上也是如此。维克多-基里林已经在上面做了回答,所以最好不要等着做。))完全按照你想要的模式来做。 Ильшат 2011.12.28 15:58 #87 你好,我有两个问题。 1) 在双CExpertSignal::Direction()方法中,为了使所有过滤器的结果正常化,我们把得到的总值除以数字值。假设我们使用一个单一的过滤器,那么根据标准库的 代码,初始化时=1的数字值将递增+1,成为2。所以从一个过滤器得到的结果要除以2。问题=是否有错误?double CExpertSignal::Direction(){CExpertSignal *filter。长面具。双重方向。double result=m_weight*(LongCondition()-ShortCondition())。int number=1; // "投票 "的数量//---int total=m_filters.Total()。//---用于调试//printf(__FUNCTION__+" : %s %d",EnumToString(m_period), total)。//------按过滤器循环for(int i=0;i<total;i++){//---- 位图的掩码mask=((long)1)<<i;//---检查忽略过滤器信号的标志。如果((m_ignore&mask)!=0)继续。filter=m_filters.at(i)。direction=filter.Direction()。//--"禁止 "信号if(direction==EMPTY_VALUE) return(EMPTY_VALUE)。//------检查滤波器信号的反转标志if((m_invert&mask)!=0) result=direction;else result+=direction;号码++。}//-- 正常化result/=number;//----返回结果return(result)。}2)请告诉我m_adjusted_point变量的含义? 谢谢你。 Документация по MQL5: Стандартная библиотека www.mql5.com Стандартная библиотека - Документация по MQL5 Questions on MQL5 Wizard MQL5 向导: 根据计算价位下单, 止损和止盈。标准库扩展 MQL5 向导:如何教导 EA 以任意价格建立挂单 Victor Kirillin 2011.12.29 06:25 #88 IlshatG:你好,我有两个问题。 1)不存在根本性错误。2)对3/5位数报价的更正。 [删除] 2011.12.31 18:31 #89 uncleVic:没有。我很抱歉,但这正是标准库的作用,它包含标准的解决方案。交易错误的处理在很大程度上取决于交易者的偏好。所以,亲爱的朋友们,这是一件 "自己动手 "的事情。 你的偏好与此有什么关系?谁比你更了解服务器配置的能力?没有人。你可以定义充分的反应--典型的反应--而交易员将根据他的品味和知识进行调整。交换协议中的时间安排等等?交易员是交易还是深入研究错误?程序员应该写算法还是研究错误?程序员应该研究写一个服务器故障时自动交易的模拟器(对于故障的)的API,还是应该写算法?要花多少时间在这上面而不是在交易上? Sevrer 2012.02.02 10:23 #90 你好。我决定自己写一个信号模块,纯粹是为了认知的目的。我遇到了一个问题。我必须设置挂单,我知道这可以通过CExpertSignal::OpenLongParams(...)来完成。但我有一个问题--我的测试人员警告说无效过期。在挖掘了源代码之后,我意识到除了ORDER_TIME_SPECIFIED 之外,我们无法得到任何类型的时间,我们希望得到ORDER_TIME_GTC。到目前为止,我已经做了一个聪明的举动,但它不太正确。我已经纠正了库中的功能。bool CExpertTrade::SetOrderExpiration(datetime order_expiration) { if(m_symbol==NULL) return(false); //--- if (order_expiration == 0) { m_order_type_time =ORDER_TIME_GTC; } else if(!SetOrderTypeTime(ORDER_TIME_SPECIFIED)) return(false); //--- m_order_expiration=order_expiration; //--- return(true); }你能提供什么建议 Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5 123456789101112131415 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
那么,它的实际目的,而不是测试者的目的是什么?它似乎就在那里,但你不能使用它。为什么关于这个问题的任何问题,例如,建议引入这种处理,或由开发人员写一篇文章,或一些错误处理指南,总是遇到开发人员的沉默?毕竟,他们是这个问题上最有能力的人--有什么问题呢?至少看起来很奇怪,我们没有真正有用的东西,而是在研究一堆没有人需要的指标(0个评论,0个要求),而此时却没有交易的基础--打开和关闭交易的能力。自动交易的仿真器的问题被挂起,没有答案,但它必须在标准库中。我想听听答案。
因此,没有人隐瞒策略向导只为测试者服务的事实。))只是和快速检查这个或那个想法,然后决定朝哪个方向走。而且,错误处理 也不是什么难事。你至少可以看看别人是怎么做的。例如,KimIV 在第四论坛上的函数库。我想我甚至可以就这个问题写一篇文章,但我现在没有那么多时间。
而据我所知,开发商现在把所有的精力都放在了开发整个项目上。市场、信号 和仓库 服务被挂在空中,也许还有一些错误。在我看来,这些是现在的主要任务。
问题的关键不在于任务是否复杂,而在于是否需要在标准库中 实现。在编写EA时,最好定义一个主要任务清单,并为开发者实施,这样就不需要看别人怎么做了,也不需要等到有人有时间写文章。
...但如果我这样做呢?))
没有。
我很抱歉,但这就是标准库的作用,包含标准的解决方案。交易错误的处理在很大程度上取决于交易者的偏好。
所以,亲爱的朋友们,让我们自己来做吧。
在任何情况下,它可能必须等到公司有更多的优先事项。也许它将在不久的将来的某个时候被实施。在这里,我决定不再等待,因为我真的不喜欢等待,而且很早以前就已经实施了。根本就没花多少时间。此外,我在学习语言的最初阶段就这样做了。你可以把你的请求写给服务台。如果我这样做呢?))
实施工作可以由任何人以任何方式进行。你确定你已经把一切都做得很好,很正确,很漂亮了吗?当然,可以有很多变体,但开发商的一个典型就足以根据你的需要定制它,或按原样使用它。
你好,我有两个问题。
1) 在双CExpertSignal::Direction()方法中,为了使所有过滤器的结果正常化,我们把得到的总值除以数字值。假设我们使用一个单一的过滤器,那么根据标准库的 代码,初始化时=1的数字值将递增+1,成为2。所以从一个过滤器得到的结果要除以2。问题=是否有错误?
double CExpertSignal::Direction()
{
CExpertSignal *filter。
长面具。
双重方向。
double result=m_weight*(LongCondition()-ShortCondition())。
int number=1; // "投票 "的数量
//---
int total=m_filters.Total()。
//---用于调试
//printf(__FUNCTION__+" : %s %d",EnumToString(m_period), total)。
//------按过滤器循环
for(int i=0;i<total;i++)
{
//---- 位图的掩码
mask=((long)1)<<i;
//---检查忽略过滤器信号的标志。
如果((m_ignore&mask)!=0)继续。
filter=m_filters.at(i)。
direction=filter.Direction()。
//--"禁止 "信号
if(direction==EMPTY_VALUE) return(EMPTY_VALUE)。
//------检查滤波器信号的反转标志
if((m_invert&mask)!=0) result=direction;
else result+=direction;
号码++。
}
//-- 正常化
result/=number;
//----返回结果
return(result)。
}
2)请告诉我m_adjusted_point变量的含义?
谢谢你。
你好,我有两个问题。
1)不存在根本性错误。
2)对3/5位数报价的更正。
没有。
我很抱歉,但这正是标准库的作用,它包含标准的解决方案。交易错误的处理在很大程度上取决于交易者的偏好。
所以,亲爱的朋友们,这是一件 "自己动手 "的事情。
你好。
我决定自己写一个信号模块,纯粹是为了认知的目的。我遇到了一个问题。我必须设置挂单,我知道这可以通过CExpertSignal::OpenLongParams(...)来完成。但我有一个问题--我的测试人员警告说无效过期。在挖掘了源代码之后,我意识到除了ORDER_TIME_SPECIFIED 之外,我们无法得到任何类型的时间,我们希望得到ORDER_TIME_GTC。
到目前为止,我已经做了一个聪明的举动,但它不太正确。我已经纠正了库中的功能。
你能提供什么建议