错误、漏洞、问题 - 页 148 1...141142143144145146147148149150151152153154155...3184 新评论 Prival 2010.09.25 14:39 #1471 EQU:再说一遍--密码......密码......。代码是好的......但它也是--战术、周期......;)图表没有收到创建新条形图的信息吗?我不相信......)))。把它做成一个事件有问题吗? 它至少是一个预定义的变量吗?一般来说,处理事件要比填写堆积如山的代码要容易。此外--有错误(无错误的程序永远不会!!!)))))我绝对同意你的观点,新酒吧是一个事件,它可以(也应该)被编程。有一个分支,https://www.mql5.com/ru/forum/1031,在你的闲暇时间阅读,但我已经挣扎了多年...Z.I.我想看完这个,你会发现,新的酒吧可能永远不会出现......一个洞......。 Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5" www.mql5.com Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5". Валерий 2010.09.25 16:14 #1472 EQU:再次,代码......代码......。代码是好的......但战术也是好的,循环......。;)图表没有收到创建新条形图 的信息吗?我不相信......)))。把它变成一个事件有问题吗? 或者至少是一个预定义的变量?一般来说,处理事件要比填写堆积如山的代码要容易。此外--有错误(无错误的程序永远不会!!!))))) 一般来说,你如何看待这个问题?20个时间段x "市场观察 "中的符号数量,并为每个符号生成OnNewBar事件? 你必须处理每个事件,以确定它指的是哪个符号和时间段?现在你可以选择:编写你自己的函数NewBar,并在其中定义你想要接收的新条形图:一个符号的所有周期,当前周期的所有符号或一些特殊情况。这使一个简单的函数。这比有许多检查的通用OnNewBar函数好。 Konstantin Chernov 2010.09.25 16:37 #1473 在测试时,会产生一个错误 CTrade::PositionClose::OrderCheck: 无效止损请求 在我的专家顾问中,有以下几行 变量描述(程序中) CTrade m_trade。 .................. 关闭位置 m_trade.PositionClose(_Symbol, eSlippage); 为什么它显示错误?CTrade::PositionClose::OrderCheck: 无效止损请求 错误的SL和/或TP交易_retcode_invalid_stops 止损与平仓有什么关系? 或者我错过了什么? Документация по MQL5: Основы языка / Переменные www.mql5.com Основы языка / Переменные - Документация по MQL5 [删除] 2010.09.25 16:55 #1474 Prival:我绝对同意你的观点,新酒吧是一个事件,它可以(而且应该)被编程。在https://www.mql5.com/ru/forum/1031,有一个主题,你可以在闲暇时阅读,但我已经争取了多年...Z.U.我想看完后你就会明白,新的酒吧可能永远不会出现......一个洞......我冒着风险看了一下这个链接...我想这真的值得一读......在你闲暇时......;)这就是希望有这样一个活动的原因......没有酒吧,就没有活动。 [删除] 2010.09.25 17:01 #1475 Valmars: 实际上,你是如何想象的呢?20个时间段x "市场观察 "中的符号数量,每个符号都会产生OnNewBar事件? 你必须处理每个事件,以确定它指的是哪个符号和时间段?现在你可以选择:编写你自己的函数NewBar,并在其中定义你想要接收的新条形图: 一个符号的所有周期,当前周期的所有符号或一些特殊情况。这导致了一个具体而不复杂的功能。它比有许多检查的通用OnNewBar函数要好。20个时间段......这不是一个长参数的极限......在一分钟内填补整个变量是正确的,不难......。为什么,OnTick看的是"'市场观察'中的x个字符,并为每个字符生成一个事件..."?????。而且,相信我,比特检查是一个相当快的事情......。而且,即使有一个事件 - 没有人要让我处理它--没有必要...- 即使你有一个事件,也没有什么能阻止你添加或替代 "写你自己的NewBar函数并定义是否要获得新条"--如果有必要的话... Vladimir Kustikov 2010.09.25 17:28 #1476 Interesting:即使是现在,如果你知道怎么做,也很容易做到。开发人员承诺将重写OnTrade(),并在那里添加必要的参数。没有人阻止这种情况在本地处理,在OnTick()或OnTime()中--在交易操作 的地方;或者在OnTrade()中,如果你需要捕捉用户行为或不直接由代码控制的交易操作。轻度是一个相对的概念,对一个人来说是以克为单位,对另一个人来说是以吨为单位。在我的专家顾问中,我不得不这样做(如果我的代码可以被称为这样的话),因为现在我的语言中没有PROSTO的变体,而它们很可能存在,我认为。而且我对代码变长一百行并使其看起来更复杂并不是特别高兴。这里是一般的问题。嘀嗒一声,指标显示需要关闭,我就关闭。当下一个刻度线到来时,指标显示必须关闭,我不知道该怎么做--头寸已经定位,当然不可能发现此刻正在发生的事情,但我不知道。 我不明白为什么这种复杂性在这里仍然存在?我不明白为什么我们要在onTrade()事件中写一大堆代码来了解发生了什么?我支持简单,当它不存在时,我就会感到悲伤。 Дмитрий 2010.09.25 17:47 #1477 Vladix: 轻度是一个相对的概念,对一个人来说是以克为单位,对另一个人来说是以吨为单位。我不得不用EA来做(如果我的代码可以被称为这样的话),因为现在语言中没有PROSTO的变体,而它们很可能存在,我认为。而且我对代码变长一百行并使其看起来更复杂并不是特别高兴。 这里是一般的问题。 嘀嗒一声,指标显示需要关闭,我就关闭。 当下一个刻度线到来时,指标显示应该关闭,我不知道该怎么做--头寸已经挂了,当然我可以找出此刻发生了什么,但我不知道。 我不明白为什么这种复杂性在这里仍然存在?我不明白为什么在onTrade()事件中建议我们写一大堆代码来了解发生了什么? 我支持简单,当它不存在时,我就会感到悲伤。 我这样做了,代码不到一百行......:)该解决方案是可靠的,并可立即用于多货币。//+----------------------------------------------------------------------------+ // Функция контроля открытия ордера на текущем баре MQL5 | //-----------------------------------------------------------------------------+ bool ЕстьОрдернаТекущемБаре(ENUM_ORDER_TYPE тип) { ulong тикет; HistorySelect(SeriesInfoInteger(СИМВОЛ,Period(),SERIES_LASTBAR_DATE),TimeCurrent()); for(int i=0;i<HistoryDealsTotal();i=i+1) { тикет=HistoryDealGetTicket(i); if(HistoryDealGetString(тикет,DEAL_SYMBOL)!=СИМВОЛ || HistoryDealGetInteger(тикет,DEAL_ENTRY)==DEAL_ENTRY_STATE)// || HistoryDealGetInteger(тикет,DEAL_MAGIC)!=MAGIC continue; if(HistoryDealGetInteger(тикет,DEAL_TYPE)==тип || HistoryDealGetInteger(тикет,DEAL_TYPE)==DEAL_ENTRY_INOUT) return(true); } return(false); } 你可以指定任何想要的时期,而不是EA徘徊的时期。即每期下的订单不超过一次 而在任何交易请求 之后,我们应该做一个延迟,在30秒内禁止交易请求(例如)。否则,该订单可能不会出现在下一个tick的历史中。 Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса www.mql5.com Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5 [删除] 2010.09.25 18:06 #1478 Valmars: 一般来说,你是如何想象的?一般来说,想法是有20个时间段x "市场观察 "中的符号数量,并为每个符号生成OnNewBar事件? 而你必须处理每个符号和时间段,以确定它指的是哪一个?现在你可以选择:编写你自己的函数NewBar,并在其中定义你想要接收的新条形图:一个符号的所有周期,当前周期的所有符号或一些特殊情况。这导致了一个具体而不复杂的功能。这比一个有很多检查的通用OnNewBar函数要好。就一个标准的解决方案而言,它应该是这样的1.该事件应与开放的图表、其周期和符号绑定。该事件必须发生在一个新条形图出现的时候(孔被忽略)。事件必须在一个单独的终端线程(或线程)中处理。PS如此下去。当然,这只是一个粗略的近似值,没有考虑到许多具体情况......。 Документация по MQL5: Основы языка / Функции / Функции обработки событий www.mql5.com Основы языка / Функции / Функции обработки событий - Документация по MQL5 [删除] 2010.09.25 18:22 #1479 Vladix:其实问题本身是这样的。一个嘀嗒声传来,指标显示它需要关闭,我就进行关闭。当下一个刻度线到来时,指标显示必须关闭,我不知道该怎么做--头寸已经挂了,人们当然可以知道此刻发生了什么,但却不知在哪里。 我不明白为什么这种复杂性在这里仍然存在?我不明白为什么在onTrade()事件中建议我们写一大堆代码来了解发生了什么?我支持简单,当你没有它的时候,它就会变得很悲伤 也许,开发人员会在OnTrade()中添加参数,至少他们在考虑这个问题。据我所知,甚至有一些关于它的声明。 Vladimir Kustikov 2010.09.25 18:48 #1480 Dmitriy2: 这样做,代码比一百行还少......:)解决方案是可靠的,并立即用于多货币 我们可以指定任何想要的期限,而不是EA休眠的期限。这意味着每期下单的频率将不超过一次。 在任何交易请求 之后,我们应该做一个延迟,使交易请求在30秒内失效(例如)。否则,该订单可能不会出现在下一个tick的历史中。放一个延迟--是的,我接受,这需要多少行代码?而如果我们谈论的是多货币,就有必要对每一种货币的延迟进行说明,不是吗?我写了解决这个问题的代码。只是我不喜欢它,就像,对不起,我不喜欢你的。而且这与偏见无关,关键是没有其他选择,简单而优雅。 1...141142143144145146147148149150151152153154155...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
再说一遍--密码......密码......。代码是好的......但它也是--战术、周期......;)
图表没有收到创建新条形图的信息吗?我不相信......)))。
把它做成一个事件有问题吗? 它至少是一个预定义的变量吗?
一般来说,处理事件要比填写堆积如山的代码要容易。此外--有错误(无错误的程序永远不会!!!)))))
我绝对同意你的观点,新酒吧是一个事件,它可以(也应该)被编程。有一个分支,https://www.mql5.com/ru/forum/1031,在你的闲暇时间阅读,但我已经挣扎了多年...
Z.I.我想看完这个,你会发现,新的酒吧可能永远不会出现......一个洞......。
再次,代码......代码......。代码是好的......但战术也是好的,循环......。;)
图表没有收到创建新条形图 的信息吗?我不相信......)))。
把它变成一个事件有问题吗? 或者至少是一个预定义的变量?
一般来说,处理事件要比填写堆积如山的代码要容易。此外--有错误(无错误的程序永远不会!!!)))))
在测试时,会产生一个错误
CTrade::PositionClose::OrderCheck: 无效止损请求
在我的专家顾问中,有以下几行
变量描述(程序中)
CTrade m_trade。
..................
关闭位置
m_trade.PositionClose(_Symbol, eSlippage);
为什么它显示错误?CTrade::PositionClose::OrderCheck: 无效止损请求
错误的SL和/或TP
交易_retcode_invalid_stops
止损与平仓有什么关系? 或者我错过了什么?
我绝对同意你的观点,新酒吧是一个事件,它可以(而且应该)被编程。在https://www.mql5.com/ru/forum/1031,有一个主题,你可以在闲暇时阅读,但我已经争取了多年...
Z.U.我想看完后你就会明白,新的酒吧可能永远不会出现......一个洞......
我冒着风险看了一下这个链接...我想这真的值得一读......在你闲暇时......;)
这就是希望有这样一个活动的原因......没有酒吧,就没有活动。
实际上,你是如何想象的呢?20个时间段x "市场观察 "中的符号数量,每个符号都会产生OnNewBar事件? 你必须处理每个事件,以确定它指的是哪个符号和时间段?现在你可以选择:编写你自己的函数NewBar,并在其中定义你想要接收的新条形图: 一个符号的所有周期,当前周期的所有符号或一些特殊情况。这导致了一个具体而不复杂的功能。它比有许多检查的通用OnNewBar函数要好。
20个时间段......这不是一个长参数的极限......在一分钟内填补整个变量是正确的,不难......。
为什么,OnTick看的是"'市场观察'中的x个字符,并为每个字符生成一个事件..."?????。
而且,相信我,比特检查是一个相当快的事情......。
而且,即使有一个事件
- 没有人要让我处理它--没有必要...
- 即使你有一个事件,也没有什么能阻止你添加或替代 "写你自己的NewBar函数并定义是否要获得新条"--如果有必要的话...
即使是现在,如果你知道怎么做,也很容易做到。开发人员承诺将重写OnTrade(),并在那里添加必要的参数。
没有人阻止这种情况在本地处理,在OnTick()或OnTime()中--在交易操作 的地方;或者在OnTrade()中,如果你需要捕捉用户行为或不直接由代码控制的交易操作。
轻度是一个相对的概念,对一个人来说是以克为单位,对另一个人来说是以吨为单位。在我的专家顾问中,我不得不这样做(如果我的代码可以被称为这样的话),因为现在我的语言中没有PROSTO的变体,而它们很可能存在,我认为。而且我对代码变长一百行并使其看起来更复杂并不是特别高兴。
这里是一般的问题。
嘀嗒一声,指标显示需要关闭,我就关闭。
当下一个刻度线到来时,指标显示必须关闭,我不知道该怎么做--头寸已经定位,当然不可能发现此刻正在发生的事情,但我不知道。
我不明白为什么这种复杂性在这里仍然存在?我不明白为什么我们要在onTrade()事件中写一大堆代码来了解发生了什么?
我支持简单,当它不存在时,我就会感到悲伤。
轻度是一个相对的概念,对一个人来说是以克为单位,对另一个人来说是以吨为单位。我不得不用EA来做(如果我的代码可以被称为这样的话),因为现在语言中没有PROSTO的变体,而它们很可能存在,我认为。而且我对代码变长一百行并使其看起来更复杂并不是特别高兴。
这里是一般的问题。
嘀嗒一声,指标显示需要关闭,我就关闭。
当下一个刻度线到来时,指标显示应该关闭,我不知道该怎么做--头寸已经挂了,当然我可以找出此刻发生了什么,但我不知道。
我不明白为什么这种复杂性在这里仍然存在?我不明白为什么在onTrade()事件中建议我们写一大堆代码来了解发生了什么?
我支持简单,当它不存在时,我就会感到悲伤。
我这样做了,代码不到一百行......:)该解决方案是可靠的,并可立即用于多货币。
你可以指定任何想要的时期,而不是EA徘徊的时期。即每期下的订单不超过一次而在任何交易请求 之后,我们应该做一个延迟,在30秒内禁止交易请求(例如)。否则,该订单可能不会出现在下一个tick的历史中。
一般来说,你是如何想象的?一般来说,想法是有20个时间段x "市场观察 "中的符号数量,并为每个符号生成OnNewBar事件? 而你必须处理每个符号和时间段,以确定它指的是哪一个?现在你可以选择:编写你自己的函数NewBar,并在其中定义你想要接收的新条形图:一个符号的所有周期,当前周期的所有符号或一些特殊情况。这导致了一个具体而不复杂的功能。这比一个有很多检查的通用OnNewBar函数要好。
就一个标准的解决方案而言,它应该是这样的
1.该事件应与开放的图表、其周期和符号绑定。该事件必须发生在一个新条形图出现的时候(孔被忽略)。
事件必须在一个单独的终端线程(或线程)中处理。
PS
如此下去。当然,这只是一个粗略的近似值,没有考虑到许多具体情况......。
Vladix:
其实问题本身是这样的。
一个嘀嗒声传来,指标显示它需要关闭,我就进行关闭。
当下一个刻度线到来时,指标显示必须关闭,我不知道该怎么做--头寸已经挂了,人们当然可以知道此刻发生了什么,但却不知在哪里。
我不明白为什么这种复杂性在这里仍然存在?我不明白为什么在onTrade()事件中建议我们写一大堆代码来了解发生了什么?
我支持简单,当你没有它的时候,它就会变得很悲伤
这样做,代码比一百行还少......:)解决方案是可靠的,并立即用于多货币
我们可以指定任何想要的期限,而不是EA休眠的期限。这意味着每期下单的频率将不超过一次。在任何交易请求 之后,我们应该做一个延迟,使交易请求在30秒内失效(例如)。否则,该订单可能不会出现在下一个tick的历史中。
放一个延迟--是的,我接受,这需要多少行代码?而如果我们谈论的是多货币,就有必要对每一种货币的延迟进行说明,不是吗?
我写了解决这个问题的代码。只是我不喜欢它,就像,对不起,我不喜欢你的。而且这与偏见无关,关键是没有其他选择,简单而优雅。