文章 "基于交易模块创建多个 EA 交易" - 页 4 1234567 新评论 Vipro 2010.12.25 21:50 #31 非常感谢作者提供的文章和代码。今天,我重新设计了模型类简单智能交易系统的代码。经过一番努力,我成功地在不同的货币对和时间框架上实现了并行工作。代码中唯一需要修正的地方是对 GetMyPosition() 函数稍作现代化处理,使其仅按作为参数传递的符号计算交易量。否则,在两个或更多交易对捆绑下工作的模型在调用 GetMyPosition() 时,得到的是多个交易对的总成交量,而不是所需的每个交易对的单独成交量。我还在CTableOrders 类中添加了一个方法来获取订单符号。string OrderSymbol(){return(m_symbol);}再次感谢! Vasiliy Sokolov 2010.12.30 20:48 #32 朋友们,感谢你们对我工作的赞赏!我很高兴认识到,我所思考的问题是相关的、必要的。让我们不要与不识字的批评者争论。他们永远存在,即使在显而易见的事情上,他们也不会被说服。最好相应地重载 double GetMyPosition() 方法:double GetMyPosition(stringSymbol).这将给您带来更大的灵活性和通用性。毫无疑问,随着时间的推移,代码会不断改进和变化,因为不可能同时考虑到所有可能的应用领域。再次感谢您,祝您 2011 年新年快乐!幸福和好运 Владимир 2011.01.11 12:02 #33 Огромное спасибо автору за статью, обязательно возьму себе на вооружение. Mykola Revych 2011.01.12 13:06 #34 感谢 Vasily 的文章--在我看来,这是目前最好的方法。你是如何调试出这段代码的,真是令人难以置信。 Vasily - 在没有测试仪调试器的情况下,你是如何调试这段代码的? 我发现在没有测试仪调试器的情况下工作非常困难,因为信号不同,条件也不同。 请分享您的调试经验。 chr1sch4n 2011.01.21 02:11 #35 你好。 我调试了这段代码,发现 Model.mqh 中第 355 行有个错误 switch(op_type) { case ORDER_TYPE_BUY: case ORDER_TYPE_SELL: rez=m_trade.PositionOpen(m_symbol,op_type,lot_send,price,0.0,0.0,comment); break; 在 ORDER_TYPE_BUY 下: is none Funktion.Is that right?No function by Buy? 我修改了以下代码: switch(op_type) { case ORDER_TYPE_BUY: rez=m_trade.PositionOpen(m_symbol,op_type,lot_send,price,0.0,0.0,comment); break; case ORDER_TYPE_SELL: rez=m_trade.PositionOpen(m_symbol,op_type,lot_send,price,0.0,0.0,comment); break; 但是,您在 Jornual 中看到,他没有多头头寸,只有空头头寸。 我找不到错误。需要帮助。MfG Christian 附加的文件: logfile.txt 100 kb YYURIYY 2011.01.24 16:07 #36 在最新的终端更新 后,模型停止了工作。有人能解释一下发生了什么吗? Mykola Revych 2011.01.25 12:03 #37 YYURIYY: 在最新的终端更新后,模型停止了工作。有人能解释一下发生了什么吗?同样。一个星期以来,我一直在一个逗号一个逗号地解析代码。该策略下了卖单,但 GetNumberOrders() 函数只返回卖单 = 0,而买单 = 1。我想请这段代码的开发者瓦西里帮帮我。我还不知道原因何在。 Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5 slacktrader 2011.01.25 22:50 #38 为这篇文章点赞!!我很高兴有更多人关注这个想法。以前,我曾尝试在 MQL4 中开发多货币多策略 EA 模板。由于 MQL5 的出现,我试图设计这样一个 EA 的对象模型并开始实现它。不幸的是,没有空闲时间进行这些活动... :-(请继续这个项目......这是我的想法......有一个框架,可以轻松实现许多策略,并可以手动或自动切换/关闭任何策略。这样,我们就可以拥有一个 EA 组合,甚至可以根据需要添加或删除某些 EA。谢谢您的帮助PS: 如果您有兴趣,这里有一个链接...https:// www.mql5.com/en/forum/118148 Cooperation on interesting projects: TRENDLINE AUTOTRADER and UNIVERSAL MULTICURRENCY MULTISTRATEGY TRADER TEMPLATE - MQL4 forum www.mql5.com Cooperation on interesting projects: TRENDLINE AUTOTRADER and UNIVERSAL MULTICURRENCY MULTISTRATEGY TRADER TEMPLATE - MQL4 forum Mykola Revych 2011.01.26 14:52 #39 YYURIYY: 在最新的终端更新后,模型停止了工作。有人能解释一下发生了什么吗?我想我知道了。在代码中,您需要更改 :#property copyright "Copyright 2010, MetaQuotes Software Corp." #property link "http://www.mql5.com" #include <Trade\_OrderInfo.mqh> #include <Trade\_HistoryOrderInfo.mqh> #include <Arrays\List.mqh> class CTableOrders : CObject { private: ulong m_magic; // 发布命令的专家的魔力 ulong m_ticket; // 主订单的机票 ulong m_ticket_sl; // 根据主订单(止损)执行的交易回购订单的票据 ulong m_ticket_tp; // 根据主订单(获利)执行的交易的回购订单票据 ENUM_ORDER_TYPE m_type; // 主订单类型 datetime m_time_setup; // 订单设置时间 double m_price; // 订购价格 double m_sl; // 建议止损价 double m_tp; // 预计获利的价格 double m_volume_initial; // 订购量 public: CTableOrders(); bool Add(COrderInfo &order_info, double stop_loss, double take_profit); bool Add(CHistoryOrderInfo &history_order_info, double stop_loss, double take_profit); double StopLoss(void){return(m_sl);} double TakeProfit(void){return(m_tp);} ulong Magic(){return(m_magic);} ulong Ticket(){return(m_ticket);} int Type() const; datetime TimeSetup(){return(m_time_setup);} double Price(){return(m_price);} double VolumeInitial(){return(m_volume_initial);} }; CTableOrders::CTableOrders(void) { m_magic=0; m_ticket=0; m_type=0; m_time_setup=0; m_price=0.0; m_volume_initial=0.0; } bool CTableOrders::Add(CHistoryOrderInfo &history_order_info, double stop_loss, double take_profit) { if(HistoryOrderSelect(history_order_info.Ticket())){ m_magic=history_order_info.Magic(); m_ticket=history_order_info.Ticket(); m_type=history_order_info.OrderType(); m_time_setup=history_order_info.TimeSetup(); m_volume_initial=history_order_info.VolumeInitial(); m_price=history_order_info.PriceOpen(); m_sl=stop_loss; m_tp=take_profit; return(true); } else return(false); } bool CTableOrders::Add(COrderInfo &order_info, double stop_loss, double take_profit) { if(OrderSelect(order_info.Ticket())){ m_magic=order_info.Magic(); m_ticket=order_info.Ticket(); m_type=order_info.OrderType(); m_time_setup=order_info.TimeSetup(); m_volume_initial=order_info.VolumeInitial(); m_price=order_info.PriceOpen(); m_sl=stop_loss; m_tp=take_profit; return(true); } else return(false); } int CTableOrders::Type() const { return((ENUM_ORDER_TYPE)m_type); } Brett Luedtke 2011.01.29 08:54 #40 这篇文章的范围很广,而且考虑得**周全。我无法用言语表达我对你为构建这个框架所做努力的感激之情;你还将你的方法背后的原因解释得通俗易懂(至少对我来说是这样!)。这篇文章远远超出了概念的范畴,我同意这一点--这是对交易和 OO 编程技术的实用、正确、最重要的 审慎 应用!有一个请求--您在英文文件中的评论能否翻译一下?另外,有人能告诉我如何使用俄语工具吗?MetaEditor 中的注释甚至不显示为俄语,而显示为与本示例差别不大的乱码重音符号字符: // Èíèöèàëèçèóðóåì óêàçàòåëü ìîäåëüþ MACD我使用 Chrome+Google Translate 浏览俄语网站已经有一段时间了,但对于较长的文章(尤其是这篇文章),我只能翻译出有限长度的文档。我很想深入阅读这篇文章,但不得不等待一段时间,至少对我来说,这是难以忍受的!如果您能就如何更好地使用外语提出建议,我们将非常乐意接受!这是一篇杰作,索科洛夫先生。我向您致以崇高的敬意和感激之情,并期待着实现我对这一伟大交易系统方法的愿景。您解决了我在尝试设计一个系统时遇到的许多矛盾,这个系统可以满足我对最终交易系统的要求。至于其余有待解决的问题,这个框架通过设计将我的努力引向了正确的方向。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
非常感谢作者提供的文章和代码。今天,我重新设计了模型类简单智能交易系统的代码。经过一番努力,我成功地在不同的货币对和时间框架上实现了并行工作。
代码中唯一需要修正的地方是对 GetMyPosition() 函数稍作现代化处理,使其仅按作为参数传递的符号计算交易量。否则,在两个或更多交易对捆绑下工作的模型在调用 GetMyPosition() 时,得到的是多个交易对的总成交量,而不是所需的每个交易对的单独成交量。我还在CTableOrders 类中添加了一个方法来获取订单符号。
再次感谢!
朋友们,感谢你们对我工作的赞赏!我很高兴认识到,我所思考的问题是相关的、必要的。让我们不要与不识字的批评者争论。他们永远存在,即使在显而易见的事情上,他们也不会被说服。
最好相应地重载 double GetMyPosition() 方法:double GetMyPosition(stringSymbol).这将给您带来更大的灵活性和通用性。
毫无疑问,随着时间的推移,代码会不断改进和变化,因为不可能同时考虑到所有可能的应用领域。
再次感谢您,祝您 2011 年新年快乐!幸福和好运
感谢 Vasily 的文章--在我看来,这是目前最好的方法。你是如何调试出这段代码的,真是令人难以置信。
Vasily - 在没有测试仪调试器的情况下,你是如何调试这段代码的? 我发现在没有测试仪调试器的情况下工作非常困难,因为信号不同,条件也不同。
请分享您的调试经验。
你好。
我调试了这段代码,发现 Model.mqh 中第 355 行有个错误
在 ORDER_TYPE_BUY 下: is none Funktion.Is that right?No function by Buy?
我修改了以下代码:
但是,您在 Jornual 中看到,他没有多头头寸,只有空头头寸。
我找不到错误。需要帮助。
MfG Christian
在最新的终端更新后,模型停止了工作。有人能解释一下发生了什么吗?
同样。一个星期以来,我一直在一个逗号一个逗号地解析代码。该策略下了卖单,但 GetNumberOrders() 函数只返回卖单 = 0,而买单 = 1。
我想请这段代码的开发者瓦西里帮帮我。我还不知道原因何在。
为这篇文章点赞!!
我很高兴有更多人关注这个想法。以前,我曾尝试在 MQL4 中开发多货币多策略 EA 模板。
由于 MQL5 的出现,我试图设计这样一个 EA 的对象模型并开始实现它。
不幸的是,没有空闲时间进行这些活动... :-(
请继续这个项目......这是我的想法......有一个框架,可以轻松实现许多策略,并可以手动或自动切换/关闭任何策略。这样,我们就可以拥有一个 EA 组合,甚至可以根据需要添加或删除某些 EA。
谢谢您的帮助
PS: 如果您有兴趣,这里有一个链接...
https:// www.mql5.com/en/forum/118148
在最新的终端更新后,模型停止了工作。有人能解释一下发生了什么吗?
我想我知道了。在代码中,您需要更改 :
这篇文章的范围很广,而且考虑得**周全。
我无法用言语表达我对你为构建这个框架所做努力的感激之情;你还将你的方法背后的原因解释得通俗易懂(至少对我来说是这样!)。这篇文章远远超出了概念的范畴,我同意这一点--这是对交易和 OO 编程技术的实用、正确、最重要的 审慎 应用!
有一个请求--您在英文文件中的评论能否翻译一下?另外,有人能告诉我如何使用俄语工具吗?MetaEditor 中的注释甚至不显示为俄语,而显示为与本示例差别不大的乱码重音符号字符:
// Èíèöèàëèçèóðóåì óêàçàòåëü ìîäåëüþ MACD
我使用 Chrome+Google Translate 浏览俄语网站已经有一段时间了,但对于较长的文章(尤其是这篇文章),我只能翻译出有限长度的文档。我很想深入阅读这篇文章,但不得不等待一段时间,至少对我来说,这是难以忍受的!如果您能就如何更好地使用外语提出建议,我们将非常乐意接受!
这是一篇杰作,索科洛夫先生。我向您致以崇高的敬意和感激之情,并期待着实现我对这一伟大交易系统方法的愿景。您解决了我在尝试设计一个系统时遇到的许多矛盾,这个系统可以满足我对最终交易系统的要求。至于其余有待解决的问题,这个框架通过设计将我的努力引向了正确的方向。