尤金,谢谢你的文章!我在货币市场知识方面的许多空白几乎都被填补了。
还有一个细微差别:如果测试的货币对有后缀或前缀,您文章的一些读者 可能 无法 在策略测试器中启动 智能交易系统。他们应该考虑到这一点,并在 Expert Advisor 参数设置中加以说明。
不过如此--一切都是超级棒的!.....!
再见,弗拉基米尔。
尤金,昨天我没有仔细查看 "智能交易系统 "的代码,因为我对文章的文字部分更感兴趣,所以没有就黄色标注的代码部分提出问题:
//+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ int CountOrders(string symb,ENUM_ORDER_TYPE type) { int count=0; for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(OrderGetTicket(i))) { if(OrderGetInteger(ORDER_TYPE)==type && PositionGetString(POSITION_SYMBOL)==symb && PositionGetInteger(POSITION_MAGIC)==Magic) count++; } } return(count); }
我立即注意到了您的警告:以下是计算未结订单和未结头寸的 函数。CountOrders 和 CountTrades 用于计算某个符号的未结订单和头寸,同时考虑到神奇的 EA 数字。它们在代码中尚未实际使用,但将在未来版本中使用,届时我将最终编写一个正常函数,用于集中限价之间的价差....。
但我不太明白--这是您的想法还是应该有所不同?
弗拉基米尔
但我不太明白--这是您的想法还是应该有所不同?
弗拉基米尔
这是我的本意--否则,"智能交易系统 "就会开始将其 "魔术师 "的订单与其他订单混淆)Symb 打算在将来制作一个多货币版本的 "智能交易系统"。我还没有设法做到这一点)))))。
这是 MQ 的耻辱,而不是一篇文章。怎么能允许发表这样的文章?
//+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ int CountTrades(string symb) { int count=0; for(int i=PositionsTotal()-1; i>=0; i--) { if(PositionSelectByTicket(PositionGetTicket(i))) { if(PositionGetString(POSITION_SYMBOL)==symb && PositionGetInteger(POSITION_MAGIC)==Magic) { count++; } } } return(count); }
根据文档,PositionGetTicket(i)"该函数按未结 头寸列表中的索引返回头寸的票据,并自动选择该头寸以便进一步处理......"。如果一个仓位已被选中,为什么还要使用PositionSelectByTicket 函数通过其交易票据来选择该仓位?你们是在教新人如何不这样做吗?
弗拉基米尔的话很中肯。而您的回答与此完全无关......如果我们使用订单????,为什么还要检查符号和位置 魔法?
除了代码,我也不喜欢文本部分。
它是垃圾,不过是一纸空文。
这是一个有趣的话题,没有争议。
我们在创造什么样的市场,有什么意义?
无法创造是事实,因为作者缺乏矩阵。
而外面有很多这样的矩阵。
我们有必要至少再考虑......十年,也许我们会成功的。
作为一个开始和改进的方法--好吧,我支持这一点。
嗨,阿列克谢,谢谢你的解释。))当我写这封信时,我依据的是相同的文档(用黄色标出):
Функция возвращает тикет позиции по индексу в списке открытых позиций и автоматически выбирает эту позицию для дальнейшей работы с ней при помощи функций PositionGetDouble, PositionGetInteger, PositionGetString. ulong PositionGetTicket( int index // 项目列表中的编号 ); Параметры index [in] Индекс позиции в списке открытых позиций, начиная с 0. Возвращаемое значение Тикет позиции. В случае неудачного выполнения возвращает 0.
敬上,弗拉基米尔。
新文章 在 MQL5 中创建做市商算法已发布:
做市商是如何运作的?让我们探讨一下这个问题,创建一个初级的做市商算法。
很多人认为做市商根本不承担任何风险。然而,情况并非如此。做市商的主要风险是库存风险。这种风险在于头寸可能朝一个方向急剧变动,而无法关闭头寸并从价差中获利。例如,当疯狂的人群抛售某种资产时,做市商被迫买断全部供应。结果,价格变成负数,导致做市商蒙受损失。
公司会试图通过使用特殊的价差居中公式和确定最佳买卖价格来避免这种风险。但这并非总能实现。即使价格不是最优的,做市商的工作也是为市场提供流动性,即使暂时亏损,他们也必须完成这项工作。
作者:Yevgeniy Koshtenko