FORTS:帮助初学者 - 页 4 1234567891011...14 新评论 [删除] 2016.04.14 12:01 #31 Sergey Chalyshev: 这与阿瓦有什么关系?他不能在论坛上写作,他被永久禁言了。 好吧,我不知道有一个 "部分 "禁令。这是一种耻辱。 Andrey Khatimlianskii 2016.04.14 14:24 #32 Sergey Chalyshev: 这和阿瓦有什么关系?他不能在论坛上写作,他被永远禁言了。不,他已经被解禁了。被禁止的用户是用划线写的。 Sergey Chalyshev 2016.04.14 15:36 #33 Andrey Khatimlianskii:不,他已经被解禁了。被禁止的用户是用划线写的。 我也这么想,你最好问问版主,他们肯定知道。 igorbel 2016.04.25 19:56 #34 Mikhail Filimonov:特点。在OrderSend()返回代码和订单票中收到确认(TRADE_RETCODE_PLACED )。而对于OnTradeTransaction()中的OrderSendAsync()函数,这完全不意味着该订单确实被暴露在一个交易所。所以需要对订单状态进行额外的检查(就像对订单的其他操作一样)。if ( OrderSend( request, result ) ) { if ( result.retcode == TRADE_RETCODE_PLACED ) { ticket = result.order; } }https://www.mql5.com/ru/docs/constants/structures/mqltraderesult它说,只有当交易类型 为TRADE_ACTION_PENDING 时,票据才会被填满。如果操作是TRADE_ACTION_DEAL,在result.order中是否会返回订单票? Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса www.mql5.com Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Sergei Vladimirov 2016.04.25 22:05 #35 是的。 igorbel 2016.04.27 19:53 #36 Sergei Vladimirov: 是的。响应OrderCheck()时,何时出现错误10013?以下是我的脚本的代码。 MqlTradeRequest m_request; MqlTradeCheckResult m_check_result; m_request.action =TRADE_ACTION_DEAL; m_request.symbol =Symbol(); m_request.magic =001; m_request.volume =1.00; m_request.type =ORDER_TYPE_SELL; m_request.type_filling=ORDER_FILLING_RETURN; if(!OrderCheck(m_request,m_check_result)) Print(__FUNCTION__+": order check failed."); else Print(__FUNCTION__+": order check passed."); Print(__FUNCTION__+": symbol=",m_request.symbol,", operation=",m_request.type,", volume=",m_request.volume); Print(__FUNCTION__+": retcode=",m_check_result.retcode,", balance=",m_check_result.balance,", equity=",m_check_result.equity,", profit=",m_check_result.profit, ", margin=",m_check_result.margin,", margin_free=",m_check_result.margin_free,", margin_level=",m_check_result.margin_level, ", comment=",m_check_result.comment);这是我得到的日志。Check (RTS-6.16,M30) OnStart: retcode=10013, balance=0.0, equity=0.0, profit=2.121995790965272 e-314, margin=0.0, margin_free=0.0, margin_level=0.0, comment=Invalid request Check (RTS-6.16,M30) OnStart: symbol=RTS-6.16, operation=1, volume=1.0 Check (RTS-6.16,M30) OnStart: order check failed. igorbel 2016.04.27 20:22 #37 igorbel:响应OrderCheck()时,何时出现错误10013?以下是我的脚本的代码。这是我得到的日志。在添加m_request.expiration =0时通过,尽管帮助中说。交流执行。在交易所执行模式下建立头寸的交易指令。需要指定5个字段。行动标志量类型Type_filling你还可以指定魔法和评论字段。 igorbel 2016.04.27 20:39 #38 但奇怪的事情并没有就此结束。1手购买。Check (RTS-6.16,M30) OnStart: retcode=0, balance=530863.24, equity=538989.4399999999, profit=2.121995790965272e-314, margin=211242.25, margin_free=319620.99, margin_level=255.1522907941001, comment=DoneCheck (RTS-6.16,M30) OnStart: symbol=RTS-6.16, operation=0, volume=1.0交易保证金211242.25,与当前保证金相同--都是正确的,因为RTS-6.16的当前空头头寸是2份合同。1份合约的初始保证金 RTS-6.16 17388.75我再加一个地段。2手买入。Check (RTS-6.16,M30) OnStart: retcode=0, balance=651428.4399999999, equity=659212.76, profit=2.121995790965272e-314, margin=211242.25, margin_free=440186.19, margin_level=312.0648260468727, comment=DoneCheck (RTS-6.16,M30) OnStart: symbol=RTS-6.16, operation=0, volume=2.0一切正常,因为目前的位置是2塞尔,保证金保持不变。现在是3个购买合同。2016.04.28 01:26:47.319 Check (RTS-6.16,M30) OnStart: retcode=0, balance=651428.4399999999, equity=658739.4, profit=2.121995790965272e-314, margin=246019.75, margin_free=405408.69, margin_level=267.7587470111648, comment=Done2016.04.28 01:26:47.319 Check (RTS-6.16,M30) OnStart: symbol=RTS-6.16, operation=0, volume=3.0保证金价值在一次246019.75。怎么会呢?1个合同只需17000。那其他的价值呢(在以前的案例中也是如此)?这种公平和平衡从何而来?我的账户里甚至没有那么多钱。margin_free也是错的,没有说到利润。谁能帮我检查一下,也许我做错了什么? FORTS: To help beginners 反向交易: 减少最大回撤以及在其它市场上测试 MQL5 中的统计分布 - 充分利用 Sergei Vladimirov 2016.04.28 03:01 #39 igorbel:当我添加m_request.expiration =0时,通过了,尽管帮助中是这么说的。在声明之后总是立即用零来初始化所有的变量和结构。你在过期栏里有一些垃圾,所以你得到一个错误。MqlTradeRequest m_request; MqlTradeCheckResult m_check_result; ZeroMemory(m_request); ZeroMemory(m_check_result); // теперь заполняйте нужные поля igorbel 2016.04.28 08:35 #40 Sergei Vladimirov:所有的变量和结构在声明后总是立即用零来初始化。你在过期栏中有一些垃圾,这就是为什么你会出现错误。 谢谢你。但我已经放弃了OrderCheck(),至少在FORTS上它几乎是无用的功能。首先,它给出的结果不明确。但即使这些数值或多或少是正确的,也总有一种可能性,即订单在交易所被拒绝。这就是为什么我们要看订单状态ORDER_STATE_REJECTED,还要看注释。然后我们必须减少订单中的数量并再次发送。当然,所有这些并不能使交易变得更快,但我们能做什么? 1234567891011...14 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这与阿瓦有什么关系?他不能在论坛上写作,他被永久禁言了。
这和阿瓦有什么关系?他不能在论坛上写作,他被永远禁言了。
不,他已经被解禁了。
被禁止的用户是用划线写的。
不,他已经被解禁了。
被禁止的用户是用划线写的。
特点。
在OrderSend()返回代码和订单票中收到确认(TRADE_RETCODE_PLACED )。
而对于OnTradeTransaction()中的OrderSendAsync()函数,这完全不意味着
该订单确实被暴露在一个交易所。
所以需要对订单状态进行额外的检查(就像对订单的其他操作一样)。
https://www.mql5.com/ru/docs/constants/structures/mqltraderesult
它说,只有当交易类型 为TRADE_ACTION_PENDING 时,票据才会被填满。
如果操作是TRADE_ACTION_DEAL,在result.order中是否会返回订单票?
是的。
响应OrderCheck()时,何时出现错误10013?
以下是我的脚本的代码。
这是我得到的日志。
响应OrderCheck()时,何时出现错误10013?
以下是我的脚本的代码。
这是我得到的日志。
在添加m_request.expiration =0时通过,尽管帮助中说。
交流执行。
在交易所执行模式下建立头寸的交易指令。需要指定5个字段。
你还可以指定魔法和评论字段。
但奇怪的事情并没有就此结束。
1手购买。
Check (RTS-6.16,M30) OnStart: retcode=0, balance=530863.24, equity=538989.4399999999, profit=2.121995790965272e-314, margin=211242.25, margin_free=319620.99, margin_level=255.1522907941001, comment=Done
Check (RTS-6.16,M30) OnStart: symbol=RTS-6.16, operation=0, volume=1.0
交易保证金211242.25,与当前保证金相同--都是正确的,因为RTS-6.16的当前空头头寸是2份合同。1份合约的初始保证金 RTS-6.16 17388.75
我再加一个地段。
2手买入。
Check (RTS-6.16,M30) OnStart: retcode=0, balance=651428.4399999999, equity=659212.76, profit=2.121995790965272e-314, margin=211242.25, margin_free=440186.19, margin_level=312.0648260468727, comment=Done
Check (RTS-6.16,M30) OnStart: symbol=RTS-6.16, operation=0, volume=2.0
一切正常,因为目前的位置是2塞尔,保证金保持不变。
现在是3个购买合同。
2016.04.28 01:26:47.319 Check (RTS-6.16,M30) OnStart: retcode=0, balance=651428.4399999999, equity=658739.4, profit=2.121995790965272e-314, margin=246019.75, margin_free=405408.69, margin_level=267.7587470111648, comment=Done
2016.04.28 01:26:47.319 Check (RTS-6.16,M30) OnStart: symbol=RTS-6.16, operation=0, volume=3.0
保证金价值在一次246019.75。怎么会呢?1个合同只需17000。那其他的价值呢(在以前的案例中也是如此)?这种公平和平衡从何而来?我的账户里甚至没有那么多钱。margin_free也是错的,没有说到利润。
谁能帮我检查一下,也许我做错了什么?
当我添加m_request.expiration =0时,通过了,尽管帮助中是这么说的。
在声明之后总是立即用零来初始化所有的变量和结构。你在过期栏里有一些垃圾,所以你得到一个错误。
所有的变量和结构在声明后总是立即用零来初始化。你在过期栏中有一些垃圾,这就是为什么你会出现错误。