在贸易交易中的处理 - 页 2 12345678910 新评论 Ilya Rebenok 2019.02.07 21:16 #11 fxsaber:我们可以同时有>=2个接受和停止指令吗?是的,没错,我们做了一个初始进场,设置了一个TP和一个止损单。然后一段时间后,我们可能会增加更多的条目,设置更多的TP和止损。 JRandomTrader 2019.02.07 22:55 #12 在发生丢失事件的情况下,我记住了所下的订单、最后一笔记账交易的票据、最后记录(改变)状态的时间,并定期以及在启动期间,同步订单列表,检查未记账的交易。 事件的发生是随机的,在订单和历史中没有(临时)订单的情况并不罕见,在交易发生之前和之后都可能发生。 一个仓位在净值化时收到第一笔订单的票据,在进一步的交易(变化)中保存它,直到它被关闭(即变成0.0)。 那么,根据订单的数量,它可能会产生几个交易。 prostotrader 2019.02.08 00:09 #13 Илья Ребенок: 请分享你的经验和想法。你从一开始就做得不对。 为什么魔术师和各种检查? 一个订单的票据是一个唯一的标识符。 如果你发送一个同步订单,你将收到一个票据作为功能的结果。 如果你发送一个异步订单,我们在OnTradeTransaction 中获得票据。 添加 而在这里https://www.mql5.com/ru/forum/67298/page2#comment_2089220 是一个很好的函数,可以用来检查顺序 ФОРТС: В помощь начинающим 2015.11.25www.mql5.com Установка отложенного ордера командой OrderSend(). fxsaber 2019.02.08 07:40 #14 Илья Ребенок:是的,没错,我们做了一个初始进场,设置了一个TP和一个止损单。然后,在一段时间后,我们可以进行补仓,再下一个TP和止损单。需要TP/SL的限价订单可以部分执行。同时,限价单形式的TP也将以同样的方式执行。例如,TP被执行三分之一的量 - SL应该减少相同的量。 总而言之,相当不愉快的逻辑是为了抓住所有的窍门。 该任务应在OnTrade中实施。这应该不难实施。 Ilya Rebenok 2019.02.08 09:36 #15 prostotrader:你从一开始就做错了。 为什么魔术师和各种检查? 一个订单的票据是一个唯一的标识符。 如果你发送的是一个同步订单,那么票据是作为函数的结果被接收的。 如果你发送一个异步订单,我们在OnTradeTransaction 中获得票据。 添加 而在这里https://www.mql5.com/ru/forum/67298/page2#comment_2089220 是一个很好的函数,可以用来检查顺序 谢谢你,我将阅读。JRandomTrader。在事件丢失的情况下,我记住了已下的订单、最后入账交易的票据、最后进入(改变)状态的时间,并定期以及当它发生时,我同步订单列表并检查未记录的交易。 事件的发生是随机的,在订单和历史中没有(临时)秩序的情况并不罕见,在交易发生之前和之后都可能发生。 净值化的头寸得到第一笔订单的票据,在进一步的交易(变化)中,它保存它,直到它关闭(即变成0.0)。 那么,根据订单的数量,它可能会产生多个交易。该机器人的目标之一是摆脱对本地的依赖。换句话说,它只接收来自市场的数据,而不与终端或PC的变量绑定。这意味着,在有紧急需求的情况下,我必须切换到另一台电脑,而机器人会接过所有东西。 现在我又看到了一个有趣的错误。我收到2个相同的TRADE_TRANSACTION_DEAL_ADD交易。对不起,这到底是什么?)机器人最后在一笔交易上设置了2个停顿。 2019.02.08 10:55:29 [INFO]: ( PChBreak_RTS-3.19_22 ) TRADE_TRANSACTION_DEAL_ADD 贸易_交易_交易_添加 符号:RTS-3.19 交易票据: 12674810 交易类型: DEAL_TYPE_BUY 订购票:82646001 订单类型: ORDER_TYPE_BUY 订单状态:ORDER_STATE_STARTED 订单时间类型: ORDER_TIME_GTC 订单到期时间:1970.01.01 00:00 价格:119700 价格触发:0 止损:0 获利: 0 卷:1 职位:82646001 位置:0 2019.02.08 10:55:32 [INFO]: ( PChBreak_RTS-3.19_22 ) TRADE_TRANSACTION_DEAL_ADD 贸易_交易_交易_添加 符号:RTS-3.19 交易票据: 12674810 交易类型: DEAL_TYPE_BUY 订购票:82646001 订单类型: ORDER_TYPE_BUY 订单状态:ORDER_STATE_STARTED 订单时间类型: ORDER_TIME_GTC 订单到期时间:1970.01.01 00:00 价格:119700 价格触发:0 止损:0 获利: 0 卷:1 职位:82646001 位置:0 OnTradeTransaction processing 交易事务. 请求和响应结构、描述和记录 Ilya Baranov 2019.02.08 09:39 #16 交易事件(TRADE_TRANSACTION_DEAL_AD) 定期出现几次。 幸运的是,只有最近的一个重复出现(至少我没有赶上更早的)。 要进行过滤,只需检查交易票据是否与前一个相同。 prostotrader 2019.02.08 10:06 #17 Ilya Baranov:交易事件(TRADE_TRANSACTION_DEAL_AD) 定期出现几次。 幸运的是,只有最近的一个重复出现(至少我没有赶上更早的)。 要过滤它,只需检查该交易票据是否与前一个相同。不是多次,而是按目前在终端工作的EA的数量。 因此,每个EA应该处理自己的订单 case TRADE_TRANSACTION_DEAL_ADD: if((BuyOrder.ticket > 0) && (trans.order == BuyOrder.ticket)) // Buy order { //Сделка этого советника } break; Ilya Baranov 2019.02.08 10:14 #18 prostotrader:不是多次,而是按目前在终端工作的EA的数量。 因此,每个EA必须处理自己的订单 你的代码可以防止它是这个EA的交易的事实。 我和TS说的是当具有TRADE_TRANSACTION_DEAL_AD 类型的OnTradeTransaction为一个交易被多次调用 的情况,即MqlTradeTransaction的 其他字段包含完全相同的数据。 这意味着在你的情况下,处理代码可以被多次执行。 也许,这不是所有经纪人的情况。但这种情况在我工作过的所有股票经纪人中经常发生。 prostotrader 2019.02.08 10:23 #19 Ilya Baranov:你的代码可以防止是这个EA的交易。 我和TS说的是当具有TRADE_TRANSACTION_DEAL_AD 类型的OnTradeTransaction为一个交易调用几次 的情况,即MqlTradeTransaction的 其他字段有完全相同的数据。 这意味着在你的情况下,处理代码可以被多次执行。 也许,这不是所有经纪人的情况。但这种情况经常发生在与我合作的所有经纪人身上。我在Otkryvashka进行真实交易,并在演示中测试,但我没有多个触发器。 发布你的TRADE_TRANSACTION_DEAL_ADD 的代码。 Ilya Rebenok 2019.02.08 10:31 #20 Ilya Baranov:交易事件(TRADE_TRANSACTION_DEAL_AD) 定期出现几次。 幸运的是,只有最近的一个重复出现(至少我没有赶上更早的)。 为了过滤,只需检查交易票据是否与前一个相同。是的,谢谢!我看到后就这么做了。 至于原来的问题,我放了一张单子,以便有时间抽出删除订单并将其加入历史记录的交易。观察到的。 平台在这方面的不完善是非常可悲的。应该捆绑在一起的东西却变成了单独的。 嫖 娼者。不是几次,而是按目前在终端工作的EA的数量。 这就是为什么每个EA必须处理自己的订单 在这种情况下,我仍然需要在某个地方存储来自请求者的订单票据,以便与来自交易的票据进行比较。而我只是想摆脱本地变量 的所有存储,只从市场/终端获取信息,以平息本地基础设施的风险。 12345678910 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我们可以同时有>=2个接受和停止指令吗?
是的,没错,我们做了一个初始进场,设置了一个TP和一个止损单。然后一段时间后,我们可能会增加更多的条目,设置更多的TP和止损。
在发生丢失事件的情况下,我记住了所下的订单、最后一笔记账交易的票据、最后记录(改变)状态的时间,并定期以及在启动期间,同步订单列表,检查未记账的交易。
事件的发生是随机的,在订单和历史中没有(临时)订单的情况并不罕见,在交易发生之前和之后都可能发生。
一个仓位在净值化时收到第一笔订单的票据,在进一步的交易(变化)中保存它,直到它被关闭(即变成0.0)。
那么,根据订单的数量,它可能会产生几个交易。请分享你的经验和想法。
你从一开始就做得不对。
为什么魔术师和各种检查?
一个订单的票据是一个唯一的标识符。
如果你发送一个同步订单,你将收到一个票据作为功能的结果。
如果你发送一个异步订单,我们在OnTradeTransaction 中获得票据。
添加
而在这里https://www.mql5.com/ru/forum/67298/page2#comment_2089220
是一个很好的函数,可以用来检查顺序
是的,没错,我们做了一个初始进场,设置了一个TP和一个止损单。然后,在一段时间后,我们可以进行补仓,再下一个TP和止损单。
需要TP/SL的限价订单可以部分执行。同时,限价单形式的TP也将以同样的方式执行。例如,TP被执行三分之一的量 - SL应该减少相同的量。
总而言之,相当不愉快的逻辑是为了抓住所有的窍门。
该任务应在OnTrade中实施。这应该不难实施。
你从一开始就做错了。
为什么魔术师和各种检查?
一个订单的票据是一个唯一的标识符。
如果你发送的是一个同步订单,那么票据是作为函数的结果被接收的。
如果你发送一个异步订单,我们在OnTradeTransaction 中获得票据。
添加
而在这里https://www.mql5.com/ru/forum/67298/page2#comment_2089220
是一个很好的函数,可以用来检查顺序
在事件丢失的情况下,我记住了已下的订单、最后入账交易的票据、最后进入(改变)状态的时间,并定期以及当它发生时,我同步订单列表并检查未记录的交易。
事件的发生是随机的,在订单和历史中没有(临时)秩序的情况并不罕见,在交易发生之前和之后都可能发生。
净值化的头寸得到第一笔订单的票据,在进一步的交易(变化)中,它保存它,直到它关闭(即变成0.0)。
那么,根据订单的数量,它可能会产生多个交易。该机器人的目标之一是摆脱对本地的依赖。换句话说,它只接收来自市场的数据,而不与终端或PC的变量绑定。这意味着,在有紧急需求的情况下,我必须切换到另一台电脑,而机器人会接过所有东西。
现在我又看到了一个有趣的错误。我收到2个相同的TRADE_TRANSACTION_DEAL_ADD交易。对不起,这到底是什么?)机器人最后在一笔交易上设置了2个停顿。
2019.02.08 10:55:29 [INFO]: ( PChBreak_RTS-3.19_22 ) TRADE_TRANSACTION_DEAL_ADD
贸易_交易_交易_添加
符号:RTS-3.19
交易票据: 12674810
交易类型: DEAL_TYPE_BUY
订购票:82646001
订单类型: ORDER_TYPE_BUY
订单状态:ORDER_STATE_STARTED
订单时间类型: ORDER_TIME_GTC
订单到期时间:1970.01.01 00:00
价格:119700
价格触发:0
止损:0
获利: 0
卷:1
职位:82646001
位置:0
2019.02.08 10:55:32 [INFO]: ( PChBreak_RTS-3.19_22 ) TRADE_TRANSACTION_DEAL_ADD
贸易_交易_交易_添加
符号:RTS-3.19
交易票据: 12674810
交易类型: DEAL_TYPE_BUY
订购票:82646001
订单类型: ORDER_TYPE_BUY
订单状态:ORDER_STATE_STARTED
订单时间类型: ORDER_TIME_GTC
订单到期时间:1970.01.01 00:00
价格:119700
价格触发:0
止损:0
获利: 0
卷:1
职位:82646001
位置:0
交易事件(TRADE_TRANSACTION_DEAL_AD) 定期出现几次。
幸运的是,只有最近的一个重复出现(至少我没有赶上更早的)。
要进行过滤,只需检查交易票据是否与前一个相同。
交易事件(TRADE_TRANSACTION_DEAL_AD) 定期出现几次。
幸运的是,只有最近的一个重复出现(至少我没有赶上更早的)。
要过滤它,只需检查该交易票据是否与前一个相同。
不是多次,而是按目前在终端工作的EA的数量。
因此,每个EA应该处理自己的订单
不是多次,而是按目前在终端工作的EA的数量。
因此,每个EA必须处理自己的订单
你的代码可以防止它是这个EA的交易的事实。
我和TS说的是当具有TRADE_TRANSACTION_DEAL_AD 类型的OnTradeTransaction为一个交易被多次调用 的情况,即MqlTradeTransaction的 其他字段包含完全相同的数据。
这意味着在你的情况下,处理代码可以被多次执行。
也许,这不是所有经纪人的情况。但这种情况在我工作过的所有股票经纪人中经常发生。
你的代码可以防止是这个EA的交易。
我和TS说的是当具有TRADE_TRANSACTION_DEAL_AD 类型的OnTradeTransaction为一个交易调用几次 的情况,即MqlTradeTransaction的 其他字段有完全相同的数据。
这意味着在你的情况下,处理代码可以被多次执行。
也许,这不是所有经纪人的情况。但这种情况经常发生在与我合作的所有经纪人身上。
我在Otkryvashka进行真实交易,并在演示中测试,但我没有多个触发器。
发布你的TRADE_TRANSACTION_DEAL_ADD 的代码。
交易事件(TRADE_TRANSACTION_DEAL_AD) 定期出现几次。
幸运的是,只有最近的一个重复出现(至少我没有赶上更早的)。
为了过滤,只需检查交易票据是否与前一个相同。
是的,谢谢!我看到后就这么做了。
至于原来的问题,我放了一张单子,以便有时间抽出删除订单并将其加入历史记录的交易。观察到的。
平台在这方面的不完善是非常可悲的。应该捆绑在一起的东西却变成了单独的。
不是几次,而是按目前在终端工作的EA的数量。
这就是为什么每个EA必须处理自己的订单