新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1258 1...125112521253125412551256125712581259126012611262126312641265...1953 新评论 Valerius 2020.09.19 11:15 #12571 VIX XIV: 晚上好。找到最后关闭的订单的代码应该是什么样子?它看起来像这样:"OrderSelect(OrdersHistoryTotal, SELECT_BY_POS, MODE_HISTORY"? 这就是你的区块应该大致上是什么样子。 int a=-1; for(int is=OrdersHistoryTotal(); is>=0; is--) { 如果(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY)) { 如果(OrderType()==OP_BUY){a=OrderType(); break;} 如果(OrderType()==OP_SELL){a=OrderType(); break; } } } if(a==OP_BUY) Comment("发现列表中最后一个关闭的买入订单;) if(a==OP_SELL) Comment("发现列表中最后一个关闭的卖出 订单;) Aleksei Stepanenko 2020.09.19 12:33 #12572 我很久以前读到过,OrdersHistoryTotal中的订单按时间顺序排列是没有保证的,你必须按截止日期检查。 [删除] 2020.09.19 13:10 #12573 @Valerius,你不能把它作为代码插入吗?或者缺少什么? Valerius 2020.09.19 15:59 #12574 Сергей Таболин:@Valerius,你不能把它作为代码插入吗?或者缺少什么? 你能不能让人在MT编辑器中把代码作为代码插入? 你的按钮都不能按我需要的方式工作。 Valeriy Yastremskiy 2020.09.19 16:24 #12575 Valerius:你能不能让人在MT编辑器中把代码作为代码插入?你的按钮没有一个能按我想要的方式工作。 有一个棘手的方法。从任何代码中复制和粘贴任何你喜欢的东西。并将你的代码粘贴在那里。减去高亮显示的方式不工作)))) if(OrderSelect(is,SELECT_BY_POS,MODE_TRADES)) Это чужой код и его можно править)))) Yerkin Sagandykov 2020.09.19 16:51 #12576 Valerius:对于第一个问题,你需要做一个这样的函数。 for(int is=OrdersTotal()-1; is>=0; is--) { 如果(OrderSelect(is,SELECT_BY_POS,MODE_TRADES)) {//关闭已在非本周的周五开出的订单。在这种情况下,我们不会在本周的周五关闭订单。 if(OrderMagicNumber()==Magic &&TimeDayOfWeek(TimeCurrent())==5 &&TimeDayOfWeek(OrderOpenTime())==5 &&TimeDayOfYear(OrderOpenTime())<TimeDayOfYear(TimeCurrent() ) { 如果(OrderType()==OP_BUY) result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(nameSym,MODE_BID), MarketInfo(nameSym,MODE_DIGITS)),3,CLR_NONE)。 如果(OrderType()==OP_SELL) result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(nameSym,MODE_ASK), MarketInfo(nameSym,MODE_DIGITS)),3,CLR_NONE) if(!result) {error=GetLastError(); Print("LastError = ",error, ",Symbol()); } else {error=0;} 否则 {Print("NoMagic",OrderMagicNumber();} // for Debug 否则 {Print("Error when order select", GetLastError();}。 对于第二个问题,应该有以下条目。 OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(MarketInfo(nameSym,MODE_ASK)), 3, clrNONE)。 好运。 谢谢你!在第一个问题上如愿以偿地成功了。 关于第二个问题--参数数量不正确。修正了它 - OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE)。 只是现在我不太理解我的第一个变体的编辑(我从某个地方复制了它)...... Aleksei Lesnikov 2020.09.19 17:55 #12577 你好谁能解释一下尾随收购的工作原理?在MT5帮助中,有一些关于追踪止损的信息,但没有关于追踪利润的信息。当我在我的专家顾问中设置 "止损追踪水平(点)"时,例如,设置为100,我理解追踪利润将被激活,当价格超过所需方向的100点。但 "获利 追踪水平(单位:点)"=10是什么意思? Valerius 2020.09.20 05:23 #12578 altec3: 你好!谁能解释一下尾随收购的原理?我在MT5参考资料中找不到任何关于追踪止损的信息。当我在我的专家顾问中设置 "止损追踪水平(点)"时,例如,设置为100,我理解追踪利润将被激活,当价格在所需方向上超过100点。但 "获利 追踪水平(单位:点)"=10是什么意思? 止盈以点计算,追踪止盈以入金货币计算。追踪获利(Trailing TakeProfit)是以一个或多个订单的存款货币计算的利润,并将订单的止损放在设置中指定的金额,即在一个计算的距离。 例如,在设置中指定跟踪获利为100美元。一旦价格达到100美元的利润并进一步发展,程序会计算出100美元的距离,并将所有订单的止损放在计算出的现货中,如果它允许的话。一旦价格回滚至止损点,所有订单将被关闭。原则上,这与追踪止损是一样的,只是它是以贬值货币计算的,并追踪利润。我可能在某处犯了一个错误,但这是原则问题。我希望我已经解释了。 Roman Sharanov 2020.09.20 05:43 #12579 我如何使用python从指定时间框架的终端请求所有的条形图? Yevhenii Levchenko 2020.09.20 10:34 #12580 我的理解是否正确,在mt5中,应该关注POSITION_TIME_UPDATE 而不是收盘时间? 1...125112521253125412551256125712581259126012611262126312641265...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
晚上好。找到最后关闭的订单的代码应该是什么样子?它看起来像这样:"OrderSelect(OrdersHistoryTotal, SELECT_BY_POS, MODE_HISTORY"?
这就是你的区块应该大致上是什么样子。
int a=-1;
for(int is=OrdersHistoryTotal(); is>=0; is--)
{
如果(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY))
{
如果(OrderType()==OP_BUY){a=OrderType(); break;}
如果(OrderType()==OP_SELL){a=OrderType(); break; }
}
}
if(a==OP_BUY) Comment("发现列表中最后一个关闭的买入订单;)
if(a==OP_SELL) Comment("发现列表中最后一个关闭的卖出 订单;)
我很久以前读到过,OrdersHistoryTotal中的订单按时间顺序排列是没有保证的,你必须按截止日期检查。
@Valerius,你不能把它作为代码插入吗?或者缺少什么?
@Valerius,你不能把它作为代码插入吗?或者缺少什么?
你能不能让人在MT编辑器中把代码作为代码插入?
你的按钮都不能按我需要的方式工作。
你能不能让人在MT编辑器中把代码作为代码插入?
你的按钮没有一个能按我想要的方式工作。
有一个棘手的方法。从任何代码中复制和粘贴任何你喜欢的东西。并将你的代码粘贴在那里。减去高亮显示的方式不工作))))
对于第一个问题,你需要做一个这样的函数。
{Print("Error when order select", GetLastError();}。
对于第二个问题,应该有以下条目。
OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(MarketInfo(nameSym,MODE_ASK)), 3, clrNONE)。
好运。
谢谢你!在第一个问题上如愿以偿地成功了。
关于第二个问题--参数数量不正确。修正了它 - OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE)。
只是现在我不太理解我的第一个变体的编辑(我从某个地方复制了它)......
谁能解释一下尾随收购的工作原理?在MT5帮助中,有一些关于追踪止损的信息,但没有关于追踪利润的信息。当我在我的专家顾问中设置 "止损追踪水平(点)"时,例如,设置为100,我理解追踪利润将被激活,当价格超过所需方向的100点。但 "获利 追踪水平(单位:点)"=10是什么意思?
你好!
谁能解释一下尾随收购的原理?我在MT5参考资料中找不到任何关于追踪止损的信息。当我在我的专家顾问中设置 "止损追踪水平(点)"时,例如,设置为100,我理解追踪利润将被激活,当价格在所需方向上超过100点。但 "获利 追踪水平(单位:点)"=10是什么意思?
止盈以点计算,追踪止盈以入金货币计算。追踪获利(Trailing TakeProfit)是以一个或多个订单的存款货币计算的利润,并将订单的止损放在设置中指定的金额,即在一个计算的距离。
例如,在设置中指定跟踪获利为100美元。一旦价格达到100美元的利润并进一步发展,程序会计算出100美元的距离,并将所有订单的止损放在计算出的现货中,如果它允许的话。一旦价格回滚至止损点,所有订单将被关闭。原则上,这与追踪止损是一样的,只是它是以贬值货币计算的,并追踪利润。我可能在某处犯了一个错误,但这是原则问题。我希望我已经解释了。