开发人员!你甚至会测试你所创造的东西吗? - 页 6 12345678910111213...19 新评论 Yury Kulikov 2013.12.10 11:37 #51 Mikalas:你能告诉我,你如何控制一个订单是否被修改(没有服务器的响应)?修改一个订单会触发几个事件,我控制所有这些事件,同时也控制待办任务在待办列表中的时间。我有一个forts机器人,每节课做500-600个交易,到目前为止没有损失的事件,也就是说,等待列表中的所有任务都被执行,没有达到定时检查。 Vasiliy Sokolov 2013.12.10 11:46 #52 Yurich:根据定义,事件模型不可能完全可靠;如果一个事件没有发生,并不意味着它没有发生。 如果有些事件达到了,有些没有达到,那么就需要重复的代码块来保证对命令结果的处理,这些代码块会通过与前一次的比较来检查状态,等等。那么问题来了,如果重复的代码工作起来绝对可靠,为什么还要使用建立在事件上的代码呢?为什么使用两个代码而不是一个非事件驱动的代码?滋生多余的人? Vasiliy Sokolov 2013.12.10 11:48 #53 Yurich:修改一个订单会触发几个事件,我控制所有这些事件,我还控制一个等待名单任务在等待名单上的时间。我有一个外汇机器人,每节课做500-600次交易,到目前为止没有损失事件,也就是说,等待列表中的所有任务都被执行,没有达到定时检查。 现在这更有趣了...那么,就没有出现过预期事件终究没有到来的情况吗? Yury Kulikov 2013.12.10 12:02 #54 C-4: 现在这更有趣了...那么,从来没有出现过预期事件没有到来的情况? 当我说没有事件损失时,我的意思是,在等待名单上的任务正在等待他们的事件(至少是一连串重要事件中的一个)。也许有迈克尔说的事件的损失,我没有保留事件的日志,但它们并不影响我的事件模型的整体运作。 Vasiliy Sokolov 2013.12.10 12:29 #55 to:Michael.一般来说,在情况以某种方式得到解决之前,你更容易做额外的检查。int dealsCount = 0; /// /// С заданной периодичностью синхронизируем количество обработанных и поступивших трейдов. /// void OnTimer(void) { if(dealsCount != HistoryDealsTotal()) { //Пришли новые трейды. их нужно обработать for(int i = dealsCount; i < HistoryDealsTotal(); i++) { ulong ticket = HistoryDealGetTicket(i); DealChecking(ticket); } } } /// /// Поступило новое событие о поступлении трейда. /// void OnTradeTransaction( const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result ) { if(trans.type == TRADE_TRANSACTION_DEAL_ADD) DealChecking(trans.deal); ... } /// /// Обработчик трейдов. /// \param ticket - Уникальный идентификатор трейда, который надо обработать. void DealChecking(int ticket) { // Далее идет нужная обработка. ... //Трейд обработан - увеличиваем количество обработанных трейдов. dealsCount++; }这个实现没有冗余,因为只有一个 "新交易 "事件的实际处理程序。但它被以两种不同的方式调用:通过计时器和通过事件OnTradeTransaction。如果新的交易 由于某种原因没有调用 OnTradeTransaction 事件,将发生总金额和已处理交易金额的不同步。在这种情况下,所有未处理的交易仍将通过for循环到达DealChecking处理器。这个方案可以对任何事件进行限制,而不仅仅是针对 TRADE_TRANSACTION_DEAL_ADD。 Anatoli Kazharski 2013.12.10 12:30 #56 Mikalas:...P/S 而且没有必要 "撕毁文本",整个句子是这样开始的。知道了交易类型,你可以决定分析交易账户中订单、头寸和交易的当前状态。你总是可以在帮助中找到更多的细节。我同意尤里奇 关于其他一切的看法。你也许也应该重新考虑你的计划。 Mikhail Filimonov 2013.12.10 19:19 #57 亲爱的同事们!非常感谢大家的意见!只有一条虫子在咬我:那平台是用来做什么的? Yury Kulikov 2013.12.10 23:56 #58 Mikalas: 那么你为什么需要一个平台呢?这可能是一个反问句 :)如果没有,答案已经在这个主题中给出了。 关于交易、自动交易系统和交易策略测试的论坛 开发人员!你甚至会测试你所创造的东西吗? C-4, 2013.12.10 12:08 我不建议这样做。与MQ一起修复这个错误要比你自己为广场建立一个新的终端容易得多。你会在无休止的错误修复和编写 "标准功能 "中陷入困境。我说的是我自己的经验。我在Stock#的基础上部分开发了这样一个自制的综合体--其结果是为特定任务提供了另一辆 "自行车"。你最好和支持服务部门打交道,这样会更容易、更便宜。 我对航站楼里的一切也不满意,例如 "最后价格 "的态度。但我希望,当股票经纪人聚集到一定数量时,MQ将开始倾听他们的需求。 Armen 2013.12.11 05:30 #59 好的。什么是MT5的真正替代品? Vasiliy Sokolov 2013.12.11 07:47 #60 Armen: 好的。什么是MT5的真正替代品?这正是你在创建此类主题之前需要问自己的问题。在MT5到来之前,要在FORTS上交易,你至少要编写自己的交易终端。如果你想在FORTS上进行交易,在这方面没有现成的解决方案,除了Quick,它对自动交易几乎毫无用处(那些曾经在QPile上写过超过1000行的程序的人将理解我在说什么)。有一套辅助性的Stock#库,但它还没有发展成为一个 "开箱即用 "的成熟交易终端(运行和交易)。实际上,一个技术水平一般或较高的程序员要用Stock#创建一个交易平台,需要6个月的时间。初级程序员 将被这个产品压倒。还有像Kofite、TSLab、WealthLab等终端。但你必须清楚地认识到,它们并不被经纪商直接支持,所以你必须处理快速+你的超级交易平台(通过DDE传输数据的所有相关问题)。如果你想通过协议PlazaII工作--每月3 000卢布,经纪人将为你提供这样的机会。在资产阶级部分,情况并没有好转。并非每个美国经纪商都提供有可能进行自动交易的交易平台。并非每一个美国经纪人都可以从俄罗斯进行合作。如果他们给你一个API,这是很好的。而我们又一次回到了为这个API编写自己的自行车。不仅如此,他们提供的平台也太不同了,面向不同的细分市场。只需将Wealth-Lab与ThinkOrSwim进行比较。没有标准,没有统一的接口。一般来说,如果你的座右铭是 "我只梦想和平 "或 "我交易是为了测试新软件和编写下一辆自行车" - 那么你真的应该寻找一些其他平台,而不是MetaTrader5。 12345678910111213...19 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你能告诉我,你如何控制一个订单是否被修改(没有服务器的响应)?
修改一个订单会触发几个事件,我控制所有这些事件,同时也控制待办任务在待办列表中的时间。
我有一个forts机器人,每节课做500-600个交易,到目前为止没有损失的事件,也就是说,等待列表中的所有任务都被执行,没有达到定时检查。
根据定义,事件模型不可能完全可靠;如果一个事件没有发生,并不意味着它没有发生。
修改一个订单会触发几个事件,我控制所有这些事件,我还控制一个等待名单任务在等待名单上的时间。
我有一个外汇机器人,每节课做500-600次交易,到目前为止没有损失事件,也就是说,等待列表中的所有任务都被执行,没有达到定时检查。
现在这更有趣了...那么,从来没有出现过预期事件没有到来的情况?
to:Michael.
一般来说,在情况以某种方式得到解决之前,你更容易做额外的检查。
这个实现没有冗余,因为只有一个 "新交易 "事件的实际处理程序。但它被以两种不同的方式调用:通过计时器和通过事件OnTradeTransaction。如果新的交易 由于某种原因没有调用 OnTradeTransaction 事件,将发生总金额和已处理交易金额的不同步。在这种情况下,所有未处理的交易仍将通过for循环到达DealChecking处理器。
这个方案可以对任何事件进行限制,而不仅仅是针对 TRADE_TRANSACTION_DEAL_ADD。...
P/S 而且没有必要 "撕毁文本",整个句子是这样开始的。
知道了交易类型,你可以决定分析交易账户中订单、头寸和交易的当前状态。
你总是可以在帮助中找到更多的细节。
我同意尤里奇 关于其他一切的看法。你也许也应该重新考虑你的计划。
亲爱的同事们!
非常感谢大家的意见!
只有一条虫子在咬我:那平台是用来做什么的?
Mikalas:
那么你为什么需要一个平台呢?这可能是一个反问句 :)如果没有,答案已经在这个主题中给出了。
关于交易、自动交易系统和交易策略测试的论坛
开发人员!你甚至会测试你所创造的东西吗?
C-4, 2013.12.10 12:08
我不建议这样做。与MQ一起修复这个错误要比你自己为广场建立一个新的终端容易得多。你会在无休止的错误修复和编写 "标准功能 "中陷入困境。我说的是我自己的经验。我在Stock#的基础上部分开发了这样一个自制的综合体--其结果是为特定任务提供了另一辆 "自行车"。你最好和支持服务部门打交道,这样会更容易、更便宜。好的。什么是MT5的真正替代品?
这正是你在创建此类主题之前需要问自己的问题。在MT5到来之前,要在FORTS上交易,你至少要编写自己的交易终端。如果你想在FORTS上进行交易,在这方面没有现成的解决方案,除了Quick,它对自动交易几乎毫无用处(那些曾经在QPile上写过超过1000行的程序的人将理解我在说什么)。有一套辅助性的Stock#库,但它还没有发展成为一个 "开箱即用 "的成熟交易终端(运行和交易)。实际上,一个技术水平一般或较高的程序员要用Stock#创建一个交易平台,需要6个月的时间。初级程序员 将被这个产品压倒。还有像Kofite、TSLab、WealthLab等终端。但你必须清楚地认识到,它们并不被经纪商直接支持,所以你必须处理快速+你的超级交易平台(通过DDE传输数据的所有相关问题)。如果你想通过协议PlazaII工作--每月3 000卢布,经纪人将为你提供这样的机会。
在资产阶级部分,情况并没有好转。并非每个美国经纪商都提供有可能进行自动交易的交易平台。并非每一个美国经纪人都可以从俄罗斯进行合作。如果他们给你一个API,这是很好的。而我们又一次回到了为这个API编写自己的自行车。不仅如此,他们提供的平台也太不同了,面向不同的细分市场。只需将Wealth-Lab与ThinkOrSwim进行比较。没有标准,没有统一的接口。
一般来说,如果你的座右铭是 "我只梦想和平 "或 "我交易是为了测试新软件和编写下一辆自行车" - 那么你真的应该寻找一些其他平台,而不是MetaTrader5。